elasticsearch logstash elastic

Feedback on Feeding Spring Boot metrics to Elasticsearch

Some weeks ago, I wrote a post detailing how to send JMX metrics from a Spring Boot app to Elasticsearch by developing another Spring Boot app. Getting to create such an app is not always the right idea but developers are makers - software makers, and developing new apps is quite alluring to them. However, in the overall scheme of things, this means time is not only spent in development, but also for maintenance during the entire lifetime of the app. Before going the development path, one shoul

agile infrastructure ops devops

Exploratory Infrastructure projects

Nowadays, most companies use one or another Agile methodology for their software development projects. That makes people involved in software development projects at least aware of agile principles - whether they truly try to follow agile practices or just pay lip service to them for a variety of reasons remains debatable. To avoid any association with tainted practices, I’d rather use the name 'Exploratory Development'. As with software development, exploration has a vague feeling of the f

Logstash Elasticsearch Beat Go

Starting Beats for Java developers

Last week, I wrote about how one could start developing one’s Logstash plugin coming from a Java developer background. However, with the acquisition of Packetbeat, Logstash now has help from Beats to push data to Elasticsearch. Beats are developed in Go, another challenge for traditional Java developers. This week, I tried porting my Logstash Reddit plugin to a dedicated Beat. This post documents my findings (spoiler: I found it much easier than with Ruby). Setting up the environment On

Elasticsearch metrics Spring Boot monitoring devops JMX jest jolokia

Feeding Spring Boot metrics to Elasticsearch

This week’s post aims to describe how to send JMX metrics taken from the JVM to an Elasticsearch instance. Business app requirements The business app(s) has some minor requirements. The easiest use-case is to start from a Spring Boot application. In order for metrics to be available, just add the Actuator dependency to it: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency&

elk logstash elastic parsing data

Structuring data with Logstash

Given the trend around microservices, it has become mandatory to be able to follow a transaction across multiple microservices. Spring Cloud Sleuth is such a distributed tracing system fully integrated into the Spring Boot ecosystem. By adding the spring-cloud-starter-sleuth into a project’s POM, it instantly becomes Sleuth-enabled and every standard log call automatically adds additional data, such as spanId and traceId to the usual data. 2016-11-25 19:05:53.221 INFO [demo-app,b4d33156

elk logstash elastic debugging

Debugging hints for Logstash

As a Java developer, when you are first shown how to run the JVM in debug mode, attach to it and then set a breakpoint, you really feel like you’ve reached a step on your developer journey. Well, at least I did. Now the world is going full microservice and knowing that trick means less and less in it everyday. This week, I was playing with Logstash to see how I could send all of an application exceptions to an Elasticsearch instance, so I could display them on a Kibana dashboard for analy

spring boot spring framework spring cloud sleuth post-processor convention over configuration

Another post-processor for Spring Boot

Most Spring developers know about the BeanPostProcessor and the BeanFactoryPostProcessor classes. The former enables changes to new bean instances before they can be used, while the latter lets you modify bean definitions - the metadata to create the bean. Commons use-cases include: Bootstrapping processing of @Configuration classes, via ConfigurationClassPostProcessorResolving ${…​} placeholders, through PropertyPlaceholderConfigurerAutowiring of annotated fields, setter methods and

continous integration travis github code coverage codecov

Travis CI tutorial Java projects

As a consultant, I’ve done a lot of Java projects in different 'enterprise' environments. In general, the Continuous Integration stack - when there’s one, is comprised of: Github Enterprise or Atlassian Stash for source version control, Jenkins as the Continuous Integration server, sometimes but rarely Atlassian Bamboo, Maven for the build tool, JaCoCo for code coverage, or even Artifactory as the artifacts repository - once I had Nexus. Recently, I started to develop Kaadin, a Kotlin