Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().

Les types d’instrumentation suivants sont disponibles :

Prérequis

Pour implémenter la solution Data Streams Monitoring, vous devez avoir installé la dernière version de l’Agent Datadog et des bibliothèques Data Streams Monitoring.

Note: This documentation uses v2 of the Go tracer, which Datadog recommends for all users. If you are using v1, see the migration guide to upgrade to v2.

Data Streams Monitoring n’a pas été modifié entre les versions v1 et v2 du traceur.

Bibliothèques compatibles

TechnologiesBibliothèqueVersion minimale du traceurVersion recommandée du traceur
Kafkaconfluent-kafka-go1.56.11.66.0 or later
KafkaSarama1.56.11.66.0 or later
Kafkakafka-go1.63.01.63.0 or later

Installation

Monitoring Kafka Pipelines

Data Streams Monitoring uses message headers to propagate context through Kafka streams. If log.message.format.version is set in the Kafka broker configuration, it must be set to 0.11.0.0 or higher. Data Streams Monitoring is not supported for versions lower than this.

Monitoring RabbitMQ pipelines

The RabbitMQ integration can provide detailed monitoring and metrics of your RabbitMQ deployments. For full compatibility with Data Streams Monitoring, Datadog recommends configuring the integration as follows:

instances:
  - prometheus_plugin:
      url: http://<HOST>:15692
      unaggregated_endpoint: detailed?family=queue_coarse_metrics&family=queue_consumer_count&family=channel_exchange_metrics&family=channel_queue_exchange_metrics&family=node_coarse_metrics

This ensures that all RabbitMQ graphs populate, and that you see detailed metrics for individual exchanges as well as queues.

Instrumentation automatique

L’instrumentation automatique utilise Orchestrion pour installer dd-trace-go et prend en charge les bibliothèques Sarama et Confluent Kafka.

Pour instrumenter automatiquement votre service :

  1. Suivez le guide Prise en main d’Orchestrion pour compiler ou exécuter votre service avec Orchestrion.
  2. Définissez la variable d’environnement DD_DATA_STREAMS_ENABLED=true

Instrumentation manuelle

Client Sarama Kafka

Pour instrumenter manuellement le client Sarama Kafka avec Data Streams Monitoring :

  1. Importez la bibliothèque go ddsarama
import (
  ddsarama "github.com/DataDog/dd-trace-go/contrib/IBM/sarama/v2"
)

2. Wrap the producer with `ddsarama.WrapAsyncProducer`

...
config := sarama.NewConfig()
producer, err := sarama.NewAsyncProducer([]string{bootStrapServers}, config)

// ADD THIS LINE
producer = ddsarama.WrapAsyncProducer(config, producer, ddsarama.WithDataStreams())
Client Confluent Kafka

Pour instrumenter manuellement Confluent Kafka avec Data Streams Monitoring :

  1. Importez la bibliothèque go ddkafka
import (
  ddkafka "github.com/DataDog/dd-trace-go/contrib/confluentinc/confluent-kafka-go/kafka.v2/v2"
)
  1. Encapsulez la création du producteur avec ddkafka.NewProducer et utilisez la configuration ddkafka.WithDataStreams()
// CREATE PRODUCER WITH THIS WRAPPER
producer, err := ddkafka.NewProducer(&kafka.ConfigMap{
        "bootstrap.servers": bootStrapServers,
}, ddkafka.WithDataStreams())

Si un service consomme des données en un point et en produit en un autre point, propagez le contexte entre ces deux points à l’aide de la structure du contexte Go :

  1. Extrayez le contexte des en-têtes

    ctx = datastreams.ExtractFromBase64Carrier(ctx, ddsarama.NewConsumerMessageCarrier(message))
    
  2. Injectez-le dans l’en-tête avant la production des données en aval

    datastreams.InjectToBase64Carrier(ctx, ddsarama.NewProducerMessageCarrier(message))
    

Autres technologies de file d’attente ou protocoles

Vous pouvez également utiliser l’instrumentation manuelle. Par exemple, vous pouvez propager le contexte via Kinesis.

Instrumenter l’appel de production
  1. Assurez-vous que votre message prend en charge l’interface TextMapWriter.
  2. Injectez le contexte dans votre message et instrumentez l’appel de production comme suit :
ctx, ok := tracer.SetDataStreamsCheckpointWithParams(ctx, options.CheckpointParams{PayloadSize: getProducerMsgSize(msg)}, "direction:out", "type:kinesis", "topic:kinesis_arn")
if ok {
  datastreams.InjectToBase64Carrier(ctx, message)
}
Instrumenter l’appel de consommation
  1. Assurez-vous que votre message prend en charge l’interface TextMapReader.
  2. Extrayez le contexte de votre message et instrumentez l’appel de consommation comme suit :
    ctx, ok := tracer.SetDataStreamsCheckpointWithParams(datastreams.ExtractFromBase64Carrier(context.Background(), message), options.CheckpointParams{PayloadSize: payloadSize}, "direction:in", "type:kinesis", "topic:kinesis_arn")

Surveillance des connecteurs

Connecteurs Confluent Cloud

Data Streams Monitoring can automatically discover your Confluent Cloud connectors and visualize them within the context of your end-to-end streaming data pipeline.

Setup
  1. Install and configure the Datadog-Confluent Cloud integration.

  2. In Datadog, open the Confluent Cloud integration tile.

    The Confluent Cloud integration tile in Datadog, on the Configure tab. Under an Actions heading, a table titled '13 Resources autodiscovered' containing a list of resources and checkboxes for each resource.

    Under Actions, a list of resources populates with detected clusters and connectors. Datadog attempts to discover new connectors every time you view this integration tile.

  3. Select the resources you want to add.

  4. Click Add Resources.

  5. Navigate to Data Streams Monitoring to visualize the connectors and track connector status and throughput.

Pour aller plus loin