Utilisation d'un pipeline OpenSearch d'ingestion avec OpenTelemetry Collector - Amazon OpenSearch Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation d'un pipeline OpenSearch d'ingestion avec OpenTelemetry Collector

Vous pouvez utiliser le OpenTelemetry Collector pour intégrer des journaux, des traces et des métriques dans des pipelines OpenSearch d'ingestion. Un pipeline unique peut être utilisé pour intégrer tous les journaux, traces et métriques dans différents indices d'un domaine ou d'une collection. Vous pouvez également utiliser des pipelines pour ingérer uniquement les journaux, les traces ou les métriques individuellement.

Conditions préalables

Lors de la OpenTelemetry configuration du fichier de configuration, vous devez configurer les éléments suivants pour que l'ingestion ait lieu :

  • Le rôle d'ingestion doit être osis:Ingest autorisé à interagir avec le pipeline. Pour plus d'informations, consultez la section Rôle d'ingestion.

  • La valeur du point de terminaison doit inclure le point de terminaison de votre pipeline. Par exemple, https://pipeline-endpoint.us-east-1.osis.amazonaws.com.

  • La valeur du service doit êtreosis.

  • L'option de compression pour l' OTLP/HTTP exportateur doit correspondre à l'option de compression de la source sélectionnée pour le pipeline.

extensions: sigv4auth: region: "region" service: "osis" exporters: otlphttp: logs_endpoint: "https://pipeline-endpoint.us-east-1.osis.amazonaws.com/v1/logs" metrics_endpoint: "https://pipeline-endpoint.us-east-1.osis.amazonaws.com/v1/metrics" traces_endpoint: "https://pipeline-endpoint.us-east-1.osis.amazonaws.com/v1/traces" auth: authenticator: sigv4auth compression: none service: extensions: [sigv4auth] pipelines: traces: receivers: [jaeger] exporters: [otlphttp]

Étape 1 : configurer le rôle du pipeline

Après avoir configuré la configuration du OpenTelemetry collecteur, configurez le rôle de pipeline que vous souhaitez utiliser dans la configuration de votre pipeline. Le rôle de pipeline n'a pas besoin d'autorisations spécifiques pour la source OTLP, mais uniquement d'autorisations pour accorder aux pipelines l'accès au OpenSearch domaine ou à la collection.

Étape 2 : Création du pipeline

Vous pouvez ensuite configurer un pipeline d' OpenSearch ingestion comme le suivant, qui spécifie OTLP comme source. Vous pouvez également configurer les OpenTelemetry journaux, les métriques et les traces en tant que sources individuelles.

Configuration du pipeline source OTLP :

version: 2 otlp-pipeline: source: otlp: logs_path: /otlp-pipeline/v1/logs traces_path: /otlp-pipeline/v1/traces metrics_path: /otlp-pipeline/v1/metrics sink: - opensearch: hosts: ["https://search-mydomain.region.es.amazonaws.com"] index: "ss4o_metrics-otel-%{yyyy.MM.dd}" index_type: custom aws: region: "region"

OpenTelemetry Configuration du pipeline de journaux :

version: 2 otel-logs-pipeline: source: otel_logs_source: path: /otel-logs-pipeline/v1/logs sink: - opensearch: hosts: ["https://search-mydomain.region.es.amazonaws.com"] index: "ss4o_metrics-otel-%{yyyy.MM.dd}" index_type: custom aws: region: "region"

OpenTelemetry Configuration du pipeline de métriques :

version: 2 otel-metrics-pipeline: source: otel_metrics_source: path: /otel-metrics-pipeline/v1/metrics sink: - opensearch: hosts: ["https://search-mydomain.region.es.amazonaws.com"] index: "ss4o_metrics-otel-%{yyyy.MM.dd}" index_type: custom aws: region: "region"

OpenTelemetry Configuration du pipeline de traces :

version: 2 otel-trace-pipeline: source: otel_trace_source: path: /otel-traces-pipeline/v1/traces sink: - opensearch: hosts: ["https://search-mydomain.region.es.amazonaws.com"] index: "ss4o_metrics-otel-%{yyyy.MM.dd}" index_type: custom aws: region: "region"

Vous pouvez utiliser un plan préconfiguré pour créer ce pipeline. Pour de plus amples informations, veuillez consulter Travailler avec des plans.

Connectivité entre comptes

OpenSearch Les pipelines d'ingestion avec OpenTelemetry des sources ont une capacité d'ingestion entre comptes. Amazon OpenSearch Ingestion vous permet de partager des pipelines entre Comptes AWS un cloud privé virtuel (VPC) et un point de terminaison de pipeline dans un VPC distinct. Pour de plus amples informations, veuillez consulter Configuration des pipelines OpenSearch d'ingestion pour l'ingestion entre comptes.

Limitations

Le pipeline OpenSearch d'ingestion ne peut recevoir aucune demande supérieure à 20 Mo. Cette valeur est configurée par l'utilisateur dans l'max_request_lengthoption. La valeur par défaut de cette option est de 10 Mo.

CloudWatch Alarmes recommandées pour les OpenTelemetry sources

Les CloudWatch mesures suivantes sont recommandées pour surveiller les performances de votre pipeline d'ingestion. Ces indicateurs peuvent vous aider à identifier la quantité de données traitées à partir des exportations, le nombre d'événements traités à partir des flux, les erreurs lors du traitement des exportations et des événements des flux, ainsi que le nombre de documents écrits vers la destination. Vous pouvez configurer des CloudWatch alarmes pour effectuer une action lorsque l'une de ces mesures dépasse une valeur spécifiée pendant une durée spécifiée.

Les CloudWatch métriques de la source OTLP sont formatées comme suit. {pipeline-name}.otlp.{logs | traces | metrics}.{metric-name} Par exemple, otel-pipeline.otlp.metrics.requestTimeouts.count.

Dans le cas de l'utilisation d'une OpenTelemetry source individuelle, les métriques seront formatées comme {pipeline-name}.{source-name}.{metric-name} suit. Par exemple, trace-pipeline.otel_trace_source.requestTimeouts.count.

OpenTelemetry Les trois types de données auront les mêmes métriques, mais par souci de concision, celles-ci ne seront répertoriées dans le tableau ci-dessous que pour les données de type journal source OTLP.

Métrique Description
otel-pipeline.BlockingBuffer.bufferUsage.value

Indique la quantité de mémoire tampon utilisée.

otel-pipeline.otlp.logs.requestTimeouts.count

Le nombre de demandes dont le délai a expiré.

otel-pipeline.otlp.logs.requestsReceived.count

Le nombre de demandes reçues par le OpenTelemetry collecteur.

otel-pipeline.otlp.logs.badRequests.count

Le nombre de demandes mal formées reçues par le OpenTelemetry collecteur.

otel-pipeline.otlp.logs.requestsTooLarge.count

Le nombre de demandes supérieures au maximum de 20 Mo reçues par le OpenTelemetry collecteur.

otel-pipeline.otlp.logs.internalServerError.count Le nombre d'erreurs HTTP 500 reçues du OpenTelemetry collecteur.
otel-pipeline.opensearch.bulkBadRequestErrors.count Nombre d'erreurs lors de demandes groupées dues à une demande mal formée.
otel-pipeline.opensearch.bulkRequestLatency.avg Latence moyenne pour les demandes d'écriture en masse adressées à OpenSearch.
otel-pipeline.opensearch.bulkRequestNotFoundErrors.count Nombre de demandes groupées qui ont échoué car les données cibles sont introuvables.
otel-pipeline.opensearch.bulkRequestNumberOfRetries.count Nombre de tentatives effectuées par les pipelines OpenSearch d'ingestion pour écrire un OpenSearch cluster.
otel-pipeline.opensearch.bulkRequestSizeBytes.sum Taille totale en octets de toutes les demandes groupées adressées à OpenSearch.
otel-pipeline.opensearch.documentErrors.count Nombre d'erreurs lors de l'envoi de documents à OpenSearch. Les documents à l'origine des erreurs seront envoyés à DLQ.
otel-pipeline.opensearch.documentsSuccess.count Nombre de documents écrits avec succès dans un OpenSearch cluster ou une collection.
otel-pipeline.opensearch.documentsSuccessFirstAttempt.count Nombre de documents indexés avec succès OpenSearch lors de la première tentative.

otel-pipeline.opensearch.documentsVersionConflictErrors.count

Nombre d'erreurs dues à des conflits de versions dans les documents pendant le traitement.

otel-pipeline.opensearch.PipelineLatency.avg

Latence moyenne du pipeline d' OpenSearch ingestion pour traiter les données en lisant depuis la source jusqu'à l'écriture vers la destination.
otel-pipeline.opensearch.PipelineLatency.max Latence maximale du pipeline d' OpenSearch ingestion pour traiter les données en lisant depuis la source jusqu'à l'écriture de la destination.
otel-pipeline.opensearch.recordsIn.count Nombre d'enregistrements ingérés avec succès. OpenSearch Cette métrique est essentielle pour suivre le volume de données traitées et stockées.
otel-pipeline.opensearch.s3.dlqS3RecordsFailed.count Nombre d'enregistrements qui n'ont pas pu être écrits dans DLQ.
otel-pipeline.opensearch.s3.dlqS3RecordsSuccess.count Nombre d'enregistrements écrits dans DLQ.
otel-pipeline.opensearch.s3.dlqS3RequestLatency.count Nombre de mesures de latence pour les demandes adressées à la file d'attente des lettres mortes Amazon S3.
otel-pipeline.opensearch.s3.dlqS3RequestLatency.sum Latence totale pour toutes les demandes adressées à la file d'attente des lettres mortes Amazon S3
otel-pipeline.opensearch.s3.dlqS3RequestSizeBytes.sum Taille totale en octets de toutes les demandes envoyées à la file d'attente de lettres mortes Amazon S3.
otel-pipeline.recordsProcessed.count Nombre total d'enregistrements traités dans le pipeline, indicateur clé du débit global.

otel-pipeline.opensearch.bulkRequestInvalidInputErrors.count

Nombre d'erreurs liées aux demandes groupées OpenSearch dues à une saisie non valide, crucial pour le suivi de la qualité des données et des problèmes opérationnels.