Spring Boot and Micrometer with InlfuxDB Part 2: Adding InfluxDB
Since we added our base application it is time for us to spin up an InfluxDB instance.
We shall follow a previous tutorial and add a docker instance.
docker run –rm -p 8086:8086 –name influxdb-local influxdb
Time to add the micrometer InfluxDB dependency on our pom
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | < dependencies > ... < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-actuator</ artifactId > </ dependency > < dependency > < groupId >io.micrometer</ groupId > < artifactId >micrometer-core</ artifactId > < version >1.3.2</ version > </ dependency > < dependency > < groupId >io.micrometer</ groupId > < artifactId >micrometer-registry-influx</ artifactId > < version >1.3.2</ version > </ dependency > ... </ dependencies > |
Time to add the configuration through the application.yaml
01 02 03 04 05 06 07 08 09 10 | management: metrics: export: influx: enabled: true db: devjobsapi uri: http: / / 127.0 . 0.1 : 8086 endpoints: web: expose: "*" |
Let’s spin up our application and do some requests.
After some time we can check the database and the data contained.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | docker exec -it influxdb- local influx > SHOW DATABASES; name: databases name ---- _internal devjobsapi > use devjobsapi Using database devjobsapi > SHOW MEASUREMENTS name: measurements name ---- http_server_requests jvm_buffer_count jvm_buffer_memory_used jvm_buffer_total_capacity jvm_classes_loaded jvm_classes_unloaded jvm_gc_live_data_size jvm_gc_max_data_size jvm_gc_memory_allocated jvm_gc_memory_promoted jvm_gc_pause jvm_memory_committed jvm_memory_max jvm_memory_used jvm_threads_daemon jvm_threads_live jvm_threads_peak jvm_threads_states logback_events process_cpu_usage process_files_max process_files_open process_start_time process_uptime system_cpu_count system_cpu_usage system_load_average_1m |
That’s pretty awesome. Let’s check the endpoints accessed.
1 2 3 4 5 6 | > SELECT*FROM http_server_requests; name: http_server_requests time count exception mean method metric_type outcome status sum upper uri ---- ----- --------- ---- ------ ----------- ------- ------ --- ----- --- 1582586157093000000 1 None 252.309331 GET histogram SUCCESS 200 252.309331 252.309331 /actuator 1582586157096000000 0 None 0 GET histogram SUCCESS 200 0 2866.531375 /jobs/github/{page} |
Pretty great! The next step would be to visualise those metrics.
Published on Java Code Geeks with permission by Emmanouil Gkatziouras, partner at our JCG program. See the original article here: Spring Boot and Micrometer with InlfuxDB Part 2: Adding InfluxDB Opinions expressed by Java Code Geeks contributors are their own. |
Thanks for the very helpful article.
Just for anyone else running into this: when I copy+pasted the above docker-run command apparently non-ascii unicode characters where copied, causing docker to fail with a rather unspecific error message. Here is the command in ascii characters: