I have a Spring boot application based on CommandLineRunner
, when it starts it does some calculations, sends the metrics to Prometheus and shuts down.
I am using Prometheus Push Gateway with Micrometer, mainly based on this tutorial: https://luramarchanjo.tech/2020/01/05/spring-boot-2.2-and-prometheus-pushgateway-with-micrometer.html
This works fine if I leave the application running however with my particular Spring boot application, it looses the metrics sent just before the shutdown.
I have had similar issue with CloudWatch however it was clear with the Registry implementation CloudWatchMeterRegistry
, that it starts a thread in the background and it uses the property cloudwatch.step
to schedule the dispatch of the collected metrics. I am struggling to see how PrometheusMeterRegistry
is working and not sending the metrics before the application shutsdown.
I have tried to add meterRegistry.close();
just before the shutdown, however it still has the same issue!