• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

Agente de Java: instrumento Kafka cola de mensajes

El agente de Java New Relic recopila automáticamente datos de la biblioteca de clientes Java de Kafka. Debido a que Kafka es un sistema de mensajería de alto rendimiento que genera una gran cantidad de datos, puede personalizar el agente para el rendimiento y los casos de uso específicos de su aplicación.

Este documento explica cómo recopilar y ver tres tipos de datos de Kafka:

Sugerencia

También tenemos una integración de Kafka. Para obtener detalles al respecto, consulte Integración de monitoreo de Kafka.

Requisitos

La instrumentación de los clientes Kafka está disponible en las versiones 4.12.0 o superiores del agente de Java. La instrumentación de Kafka Streams está disponible en las versiones 8.1.0 del agente de Java. o mas alto. Para ver todas las bibliotecas de Kafka compatibles, consulte la página de requisitos y compatibilidad de Java. Tenga en cuenta que Kafka Streams se ejecuta sobre los clientes de Kafka, por lo que toda la instrumentación que se aplica a los clientes de Kafka también se aplica a Streams.

Ver Kafka métrica

Después de la instalación, el agente informa automáticamente Kafka métrica enriquecido con información sobre tasas de mensajería, latencia, retraso y más. El agente de Java recopila todas las métricas de consumidores y productores de Kafka (pero no conecta ni transmite métricas).

Para ver estas métricas, crea un panel personalizado:

  1. Vaya al explorador métrico de New Relic.

  2. Utilice el explorador de métricas para localizar su métrica. Aquí te dejamos algunas carpetas donde puedes encontrar métrica:

    • Kafka métrica:

      MessageBroker/Kafka/Internal/KafkaMetricName

      Por ejemplo, request-rate métrica:

      MessageBroker/Kafka/Internal/consumer-metrics/request-rate
    • Corrientes de Kafka:

      Kafka/Streams/KafkaStreamsMetricName

      Por ejemplo, poll-latency-avg métrica:

      Kafka/Streams/stream-thread-metrics/poll-latency-avg
    • Conexión Kafka:

      Kafka/Connect/KafkaConnectMetricName

      Por ejemplo, connector-count métrica:

      Kafka/Connect/connect-worker-metrics/connector-count
  3. Agregue la métrica que desea monitor a un dashboard haciendo clic en Add to dashboard.

Sugerencia

Para obtener una lista completa de consumidores, productores y transmisiones métricas de Kafka, consulte los documentos de Kafka. Las métricas en esos documentos se pueden buscar a través de JMX. Tenga en cuenta que no todas las métricas mencionadas en los documentos se exportarán a New Relic. Esto podría deberse a una de estas razones:

  • En realidad, la métrica no la generan los clientes de Kafka ni Kafka Streams. Esto puede deberse al uso de una versión anterior de clientes o Streams o a cómo configura y usa su biblioteca Kafka.
  • La métrica no es numérica o su valor es NaN. New Relic solo acepta métricas con valor numérico.

Habilitar la colección de eventos de Kafka

Puede configurar el agente para que recopile datos de eventos en lugar de datos de intervalo de tiempo de métrica (para conocer la diferencia entre intervalo de tiempo de métrica y datos de eventos, consulte recopilación de datos). Esto le permite utilizar NRQL para filtrar y facetar la métrica Kafka predeterminada. Cuando está habilitado, el agente recopila un evento de Kafka cada 30 segundos. Este evento contiene todos los datos de consumo y producción de Kafka métrica capturados desde el evento anterior.

Si está utilizando Kafka Streams, el agente genera un evento separado que contiene todos los datos de Kafka Stream métrica capturados desde el evento anterior. El evento también se recopila cada 30 segundos.

Importante

El agente registra hasta 2000 eventos por ciclo de recolección, aunque puede cambiar este valor con max_samples_stored. Los datos de eventos de Kafka están incluidos en este grupo. Si usas la llamada API recordCustomEvent() para enviar evento personalizado a New Relic y envías más de 2000 eventos, el agente descartará algún Kafka o evento personalizado.

Para habilitar la colección de eventos de Kafka:

  1. Agregue el elemento kafka.metrics.as_events.enabled a su archivo de configuración newrelic.yml :

    kafka.metrics.as_events.enabled: true
  2. Reinicie su JVM.

  3. Utilice el explorador de eventos para ver sus eventos de Kafka, ubicados en el tipo de evento KafkaMetrics . O utilice NRQL para consultar su evento directamente. Por ejemplo:

    SELECT average('producer-metrics.record-send-rate') from KafkaMetrics SINCE 30 minutes ago timeseries

    Si está consultando métricas de Kafka Streams, utilice el tipo de evento KafkaStreamsMetrics para acceder a métricas específicas de las secuencias.

Importante

Tenga en cuenta que las limitaciones sobre qué tipo de métrica Kafka puede enviar a New Relic como métrica de segmento de tiempo también se aplican al evento. Es decir, no numéricos y NaN métricos no se incluyen como atributo de evento.

Habilitar nodo Kafka métrica

Existe un módulo de instrumentación alternativo para clientes de Kafka que brindará más granularidad a Kafka métrica. Este módulo de instrumentación está disponible desde el agente 8.6.0 y está deshabilitado de forma predeterminada.

Para habilitar este módulo de instrumentación, debe deshabilitar el módulo de instrumentación existente y habilitar el nuevo agregando lo siguiente a su archivo de configuración newrelic.yml :

class_transformer:
kafka-clients-metrics:
enabled: false
kafka-clients-node-metrics:
enabled: true

Habilitar evento de configuración de Kafka

El módulo de instrumentación kafka-clients-config enviará periódicamente un evento con el contenido de la configuración de su cliente Kafka. Este módulo está disponible desde el agente 8.6.0 y está deshabilitado de forma predeterminada.

Para habilitar kafka-clients-config agregue lo siguiente a su archivo de configuración newrelic.yml :

class_transformer:
kafka-clients-config:
enabled: true

Habilitar la transacción de Kafka Streams

Si está utilizando Kafka Streams, de forma predeterminada no habilitamos la transacción. Esto es para evitar gastos generales innecesarios porque las aplicaciones Kafka tienden a tener un alto rendimiento.

A diferencia de las transacciones JMS, las transacciones de Kafka Streams no se procesan por registro. En cambio, una transacción comienza cuando un consumidor de Kafka sondea los registros y luego se procesan los datos resultantes.

Si desea crear una transacción, debe habilitar un módulo kafka-streams-spans :

class_transformer:
kafka-streams-spans:
enabled: true

Transacción Kafka Connect habilitada

Si estás utilizando Kafka Connect, de forma predeterminada no habilitamos la transacción. Esto es para evitar gastos generales innecesarios porque las aplicaciones Kafka tienden a tener un alto rendimiento.

Las transacciones de Kafka Connect se registran para cada iteración de la tarea receptor/fuente. Para una tarea receptora, una transacción consiste en sondear a un consumidor de Kafka, convertir cada mensaje y enviar datos al objetivo. Para una tarea fuente, una transacción consiste en leer del objetivo, convertir los datos en mensajes y enviar cada mensaje con un productor Kafka.

Si desea recopilar estas transacciones, debe habilitar un módulo kafka-connect-spans :

class_transformer:
kafka-connect-spans:
enabled: true

Habilitar Kafka rastreo distribuido

El agente de Java también puede recopilar rastreo distribuido desde clientes Kafka. Debido a que Kafka Streams se ejecuta sobre clientes Kafka, también se aplican los pasos para administrar rastreo distribuido. Habilitar traza no afecta las operaciones normales del agente; seguirá reportando datos métricos o de eventos de Kafka.

Impactos y requisitos a considerar antes de habilitar:

  • The instrumentation adds a 150 to 200 byte payload to message headers.

    Si sus mensajes Kafka son muy pequeños, traza puede agregar una importante sobrecarga de procesamiento y almacenamiento. Este tamaño de carga útil adicional podría hacer que Kafka descarte mensajes si exceden el límite de tamaño de mensajes de Kafka. Por este motivo, recomendamos probar Kafka rastreo distribuido en un entorno de desarrollo antes de habilitarlos en producción.

  • Rastreo distribuido sólo está disponible para las versiones del cliente Kafka 0.11.0.0 o superiores.

  • Si no ha habilitado rastreo distribuido para su aplicación antes, lea la guía de transición antes de habilitarlo.

  • Para propagar W3C Trace Context a través de encabezados de mensajes de Kafka, consulte la guía de uso API distribuida por rastreo para obtener detalles sobre las API que se lanzaron en agente de Java 6.4.0. Tenga en cuenta que agregar encabezados adicionales a los mensajes de Kafka aumentará aún más el tamaño de la carga útil. Para ver estas API en acción, consulte Uso de las API del agente de Java traza con Kafka.

  • Si está utilizando Kafka Streams, debe habilitar un módulo de instrumentación de tramo (consulte la sección Transacción de Kafka Streams). Debido a que una transacción no se registra por registro, aceptar encabezados de rastreo distribuido solo funcionará para un registro.

El proceso completo para habilitar esto se describe a continuación, pero en un nivel alto implica estos pasos básicos: 1) habilitar el rastreo a través de la configuración del agente y 2) llamar a la API del agente de Java para la transacción de instrumentos tanto en el lado del productor como en el del consumidor.

Para recopilar el rastreo distribuido de Kafka:

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.