Configurar Data Streams Monitoring para Java

Requisitos previos

Bibliotecas compatibles

TecnologíaBibliotecaVersión mínima del rastreadorVersión de rastreador recomendada
Kafkakafka-clients (v3.7 no es totalmente compatible)1.9.01.43.0 o posterior
RabbitMQamqp-client1.9.01.42.2 o posterior
Amazon SQSaws-java-sdk-sqs (v1)1.27.01.42.2 o posterior
Amazon SQSsqs (v2)1.27.01.42.2 o posterior
Amazon KinesisKinesis (v1)1.22.01.42.2 o posterior
Amazon KinesisKinesis (v2)1.22.01.42.2 o posterior
Amazon SNSSNS (v1)1.31.01.42.2 o posterior
Amazon SNSSNS (v2)1.31.01.42.2 o posterior
Google PubSubGoogle Cloud Pub/Sub1.25.01.42.2 or later

Instalación

Java utiliza la instrumentación automática para inyectar y extraer metadatos adicionales requeridos por Data Streams Monitoring para medir latencias de extremo a extremo y la relación entre colas y servicios. Para habilitar Data Streams Monitoring, configura la variable de entorno DD_DATA_STREAMS_ENABLED en true en servicios que envían mensajes a (o que consumen mensajes de) Kafka, SQS o RabbitMQ.

Además, configura la variable DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED en true de modo que DD_SERVICE se utilice como nombre de servicio en trazas (traces).

Por ejemplo:

entorno:
  - DD_DATA_STREAMS_ENABLED: "true"
  - DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED: "true"

Como alternativa, puedes configurar la propiedad del sistema -Ddd.data.streams.enabled=true ejecutando lo siguiente cuando inicies tu aplicación Java:

java -javaagent:/path/to/dd-java-agent.jar -Ddd.data.streams.enabled=true -Ddd.trace.remove.integration-service-names.enabled=true -jar path/to/your/app.jar

Instalación con un solo clic

Para configurar Data Streams Monitoring desde la interfaz de usuario Datadog sin necesidad de reiniciar tu servicio, utiliza la configuración en tiempo de ejecución. Ve a la página de servicios APM y Enable DSM.

Habilita Data Streams Monitoring desde la sección Dependencias de la página de servicios de APM

Monitorización de pipelines de SQS

Data Streams Monitoring utiliza un atributo de mensaje para rastrear la ruta de un mensaje a través de una cola SQS. Como Amazon SQS tiene un límite máximo de 10 atributos de mensaje permitidos por mensaje, todos los mensajes transmitidos a través de los pipelines de datos deben tener 9 o menos atributos de mensaje definidos, lo que permite que el atributo restante sea para Data Streams Monitoring.

Monitorización de pipelines SNS a SQS

Para monitorizar un pipeline de datos en el que Amazon SNS habla directamente con Amazon SQS, debes realizar los siguientes pasos adicionales de configuración:

  • Establece la variable de entorno DD_TRACE_SQS_BODY_PROPAGATION_ENABLED en true.

    Por ejemplo:

    environment:
      - DD_DATA_STREAMS_ENABLED: "true"
      - DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED: "true"
      - DD_TRACE_SQS_BODY_PROPAGATION_ENABLED: "true"
    
  • Asegúrate de que estás utilizando la versión 1.44.0o posterior del rastreador de Java.

Monitorización de pipelines de Kinesis

No existen atributos de mensaje en Kinesis para propagar el contexto y seguir la ruta completa de un mensaje a través de un flujo (stream) de Kinesis. Como resultado, las métricas de latencia de extremo a extremo de Data Streams Monitoring se aproximan sumando la latencia en segmentos de la ruta de un mensaje, desde el servicio productor, a través del flujo de Kinesis, hasta un servicio consumidor. Las métricas de rendimiento se basan en segmentos desde el servicio productor, a través de un flujo de Kinesis, hasta el servicio consumidor. La topología completa de los flujos de datos puede seguir visualizándose a través de los servicios de instrumentación.

Instrumentación manual

Data Streams Monitoring propaga el contexto a través de las cabeceras de los mensajes. Si utilizas una tecnología de cola de mensajes no compatible con DSM, una tecnología sin cabeceras (como Kinesis) o Lambda, utiliza la instrumentación manual para configurar DSM.

Para leer más

Más enlaces, artículos y documentación útiles: