Exponer métricas de mensajes de canal spring integration amqp/jms a prometheus.
Estoy intentando habilitar métricas para alimentar estadísticas de mensajes desde un gateway RabbitMq <=> MqSeries de spring-integration a Prometheus.
La documentación establece que el canal debe extender AbstractMessageChannel para que las métricas se apliquen. Dado que me siento bastante incómodo con los espacios de nombres, no estoy seguro si este es el caso aquí.
Además, no entiendo cómo agregar un MeterRegistryBean (¡y cuál!) para activar las métricas.
Y finalmente, no entiendo cómo usarlo.
Básicamente, como soy nuevo en la mayoría de los marcos implicados aquí, la documentación aquí carece de un ejemplo que podría ayudarme a entenderlo un poco mejor.
Así es como hago mi definición de canal (la manera “xml” no es una opción: ya está implementada de esta manera y no puedo cambiarla por ahora):
Cualquier idea sobre cómo puedo hacer eso?
davy.ai
Para habilitar métricas para alimentar estadísticas de mensajes desde una puerta de enlace RabbitMQ <=> MqSeries de Spring-Integration hacia Prometheus, puede seguir los siguientes pasos:
AbstractMessageChannel
. Esto se menciona en la documentación.Necesita agregar un
MeterRegistryBean
para activar las métricas. ElMeterRegistryBean
es responsable de administrar y mantener las métricas. Puede utilizar cualquier implementación deMeterRegistry
, pero una ampliamente utilizada esMicrometer
. Puede agregar el siguiente código a su configuración de Spring para agregar unMeterRegistryBean
:Asegúrese de agregar la dependencia
micrometer-registry-prometheus
en su archivopom.xml
.Una vez que haya agregado el
MeterRegistryBean
, puede utilizarMicrometer
para definir métricas en su código. Por ejemplo, puede definir un contador para el número de mensajes recibidos:En este ejemplo, cada vez que se llama el método
receiveMessage
, el contadormessagesReceived
se incrementa en uno.Para exponer las métricas a Prometheus, necesita agregar un
PrometheusScrapingEndpoint
a su configuración de Spring. Puede hacerlo agregando el siguiente código:El
PrometheusScrapingEndpoint
expone las métricas en un formato que Prometheus puede rascar (“scrapear”). En este ejemplo, el endpoint se expone en/actuator/prometheus
.Asegúrese de agregar las dependencias
micrometer-registry-prometheus-autoconfigure
yspring-boot-starter-actuator
en su archivopom.xml
.Finalmente, necesita configurar Prometheus para rascar las métricas de su aplicación. Puede agregar la siguiente configuración a su archivo
prometheus.yml
:En este ejemplo,
myapp
es el nombre de su aplicación y8080
es el puerto donde se está ejecutando.