Documentation for a newer release is available. View Latest

Métricas

Cada Connector expone una serie de métricas que pueden usarse para monitorizar su estado y estadísticas.

Elección de MetricsAdapter

De forma predeterminada, las métricas se exponen usando Cinnamon (también conocido como Akka Insights o Lightbend Telemetry) sobre Prometheus.

Sin embargo, es posible usar un backend de métricas diferente especificando el MetricsAdapter al crear cualquier tipo de connector, con:

.withMetricsAdapter(myMetricsAdapter)

Las opciones disponibles para MetricsAdapter son:

  • CinnamonMetricsAdapter (predeterminado): usa Cinnamon/Lightbend Telemetry/Akka Insights

  • MicrometerMetricsAdapter: usa Micrometer, por ejemplo para la integración con métricas de Spring Boot

Tenga en cuenta que, por razones técnicas, los nombres de las métricas difieren según el tipo de implementación utilizada. Consulte la tabla siguiente para más detalles.

Dónde se exponen las métricas

Al usar el MetricsAdapter predeterminado, la ubicación por defecto donde se alojan las métricas de connector es localhost:9001. Si las estadísticas no se muestran, asegúrese de que el agente de Lightbend Telemetry esté en ejecución. Para más información, consulte la documentación del agente Cinnamon.

Al usar Micrometer, estarán disponibles como parte de Spring Boot Actuator Prometheus.

Desglose de métricas del Connector

Cada connector tiene su propio conjunto de métricas en la tabla siguiente. Cada métrica está etiquetada con el nombre del connector correspondiente. Para distinguir qué métricas se relacionan con qué connector, use la pista connector en el exportador de Prometheus.

Metric name (Cinnamon) Metric name (Micrometer) Type Description

application_ipf_requests_sent

ipf_requests_sent

Counter

Registra el número de mensajes enviados a través de un sending connector

application_ipf_requests_received

ipf_requests_received

Counter

Registra el número de mensajes recibidos a través de un receiving connector

application_ipf_correlations_saved

ipf_correlations_saved

Counter

El número de registros de correlación persistidos por el correlation service

application_ipf_correlations_found

ipf_correlations_found

Counter

El número de registros de correlación recuperados del correlation service

application_ipf_failed_correlations

ipf_failed_correlations

Histogram/Recorder

El número de búsquedas de correlación fallidas desde el correlation service

application_ipf_failed_requests

ipf_failed_requests

Counter

El número de solicitudes de mensaje fallidas a través de un sending connector

application_ipf_failed_receives

ipf_failed_receives

Counter

El número de recepciones de mensaje fallidas a través de un receiving connector

application_ipf_response_times

ipf_response_times

Histogram/Recorder

Un tipo Recorder complejo que registra min/máx/promedio y percentiles para los tiempos de respuesta de este connector

La métrica [application_]ipf_response_times se basa en los eventos del sistema CorrelationFound y RequestReplyCompleted para SendConnectors y RequestReplySendConnectors respectivamente. Por lo tanto, solo aplica para operaciones de request-reply asíncronas con un paso de correlación que tiene éxito, o para un request-reply síncrono completado.

Métricas de Circuit Breaker

Las métricas de circuit breaker usan implementaciones de MeterRegistry para publicar métricas. Esto puede configurarse a nivel de connector a través de ResiliencySettings:

ResiliencySettings.builder()
    .initialRetryWaitDuration(Duration.ofMillis(10))
    .maxAttempts(1)
    .resetTimeout(Duration.ofSeconds(1))
    .meterRegistry(SIMPLE_METER_REGISTRY)
    .build()

Alternativamente, esto puede establecerse a través de la interfaz SendingConnector. Esto permite establecer la implementación de meterRegistry a nivel de aplicación.

Por ejemplo, si queremos configurar todos los sendingConnectors para que tengan la misma implementación de meterRegistry, podemos iterar y establecerla con la API después de haber construido los connectors. Esto nos permite cambiar rápidamente de implementación sin necesidad de modificar cada definición de connector.