Cómo usar el complemento del agente Java para capturar métricas personalizadas sin cambiar el código de la aplicación

Por Jack Shirazi

El agente Java de Elastic APM realiza un seguimiento automático de muchas métricas , incluidas las generadas a través de Micrometer o la API de métricas de OpenTelemetry . Por lo tanto, si su aplicación (o las bibliotecas que contiene) ya expone métricas de una de estas API, instalar el agente Java de Elastic APM es el único paso necesario para capturarlas. Podrá visualizar y configurar umbrales, alertas y detección de anomalías, ¡y cualquier otra cosa para la que quiera usarlos!

La siguiente opción más fácil es generar métricas personalizadas directamente desde el código (por ejemplo, agregando código directamente a la aplicación mediante la API de métricas de OpenTelemetry ). La principal desventaja de este enfoque es que requiere la modificación de la aplicación, por lo que si no puede o no quiere hacer esto, puede generar fácilmente las métricas personalizadas requeridas agregando instrumentación al agente Java de Elastic APM a través de un complemento.

Este artículo analiza situaciones en las que la aplicación que está supervisando no emite las métricas personalizadas que desea y no puede cambiar directamente el código o la configuración para que lo haga. En su lugar, puede usar un complemento para instrumentar automáticamente su aplicación a través del agente Java de Elastic APM, que hará que la aplicación emita las métricas personalizadas que desee.

Análisis de telemería APM para varias medidas utilizando Elastic Kibana Lens

 

Conceptos básicos de los complementos

El artículo " Cree su propia instrumentación usando el complemento del agente Java " detalla los conceptos básicos del agente Java de Elastic APM y cómo conectar fácilmente la instrumentación. La generación de métricas a partir de complementos es solo otro tipo de instrumentación, y el artículo al que se hace referencia proporciona instrucciones detalladas paso a paso y un ejemplo práctico de cómo crear un complemento con instrumentación personalizada.

Para este artículo, asumo que comprende cómo crear un complemento con instrumentación personalizada basada en el artículo anterior y la aplicación de ejemplo (un servidor web simple, ExampleBasicHttpServer ) en nuestro repositorio de ejemplos de complementos .

indicador personalizado

Para nuestra aplicación de ejemplo, que es un servidor HTTP ( ExampleBasicHttpServer ), queremos agregar una métrica personalizada "page_views" que se incrementa cada vez que la aplicación ExampleBasicHttpServer procesa una solicitud . Esto significa que la instrumentación que agregaremos se activará con el mismo método ExampleBasicHttpServer.handleRequest() que se usó en " Uso del complemento Java Proxy para crear su propia instrumentación ".

Visualización de línea de 15 minutos de la métrica page_views con Elastic APM

 

Uso de complementos/API de OpenTelemetry

Esencialmente, la única diferencia con ese artículo es que para las métricas usaremos la API de métricas de OpenTelemetry en lugar de la API de seguimiento de OpenTelemetry .

Especialmente para los indicadores, el enfoque recomendado para el método handleRequest() es el siguiente código:

if (pageViewCounter == null) {
    pageViewCounter = GlobalOpenTelemetry
        .getMeter("ExampleHttpServer")
        .counterBuilder("page_views")
        .setDescription("Page view count")
        .build();
}
pageViewCounter.add(1);

Es decir, cree el indicador de forma perezosa la primera vez que lo necesite, luego incremente el contador de vistas de página cada vez que se llame al método ExampleBasicHttpServer.handleRequest().

Todo lo demás (configurar la detección, buscar métodos de detección, crear el complemento) es igual que en el artículo " Cree su propia detección con el complemento del agente Java ".

Un ejemplo de métricas completas se implementa en el repositorio de ejemplos de complementos , la implementación real de la instrumentación de métricas completas es ExampleMetricsInstrumentation .

Visualización de gráfico de barras de 15 minutos de la métrica page_views usando Elastic APM

¡intentalo!

¡Eso es todo! Para ejecutar un agente con un complemento, simplemente cree e incluya el jar como se describe en " Uso del complemento del agente de Java para crear su propia instrumentación " e inclúyalo en el directorio especificado por la opción de configuración plugins_dir. El repositorio de ejemplos de complementos proporciona una implementación completamente probada: solo clónelo e instale mvn para verlo en acción.

El mejor lugar para comenzar a usar Elastic APM es en la nube. ¡Comienza tu prueba gratuita de Elastic Cloud hoy mismo !

原文:Cómo capturar métricas personalizadas sin cambios en el código de la aplicación usando el complemento del agente de Java | Blog elástico

Supongo que te gusta

Origin blog.csdn.net/UbuntuTouch/article/details/131685760
Recomendado
Clasificación