View a markdown version of this page

Ingestion de la télémétrie des applications - 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.

Ingestion de la télémétrie des applications

Pour utiliser les fonctionnalités d'observabilité d'Amazon OpenSearch Service, vous devez ingérer les traces, les journaux et les métriques des applications. Cette page décrit la configuration des pipelines OpenTelemetry Collector et OpenSearch Ingestion pour traiter et acheminer les données de télémétrie vers OpenSearch Amazon Managed Service for Prometheus.

Configuration du OpenTelemetry collecteur

Le collecteur OpenTelemetry (OTel) est le point d'entrée pour toutes les télémesures des applications. Il reçoit les données via OTLP et achemine les traces et les journaux vers OpenSearch Ingestion tout en envoyant des métriques à Prometheus.

Vous pouvez configurer le OTel Collector en utilisant l'une des approches suivantes :

Le OTel collecteur exporte les traces et les journaux vers un point de terminaison d' OpenSearch ingestion à l'aide de l'authentification SigV4, et les métriques vers Amazon Managed Service for Prometheus à l'aide de l'exportateur d'écriture à distance Prometheus. OpenSearch L'ingestion gère le traitement, l'enrichissement et le routage vers OpenSearch.

OTel Configuration du collecteur avec OpenSearch ingestion

L'exemple de configuration suivant utilise l'authentification SigV4 pour exporter les traces et les journaux vers un point de terminaison d' OpenSearch ingestion, et les métriques vers Prometheus :

extensions: sigv4auth: region: us-west-2 service: osis exporters: otlphttp/osis-traces: traces_endpoint: ${OSIS_ENDPOINT}/v1/traces auth: { authenticator: sigv4auth } compression: none otlphttp/osis-logs: logs_endpoint: ${OSIS_ENDPOINT}/v1/logs auth: { authenticator: sigv4auth } compression: none # Amazon Managed Service for Prometheus via Prometheus Remote Write with SigV4 auth prometheusremotewrite/amp: endpoint: "https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write" auth: authenticator: sigv4auth service: extensions: [sigv4auth] pipelines: traces: receivers: [otlp] processors: [batch] exporters: [otlphttp/osis-traces] logs: receivers: [otlp] processors: [batch] exporters: [otlphttp/osis-logs] metrics: receivers: [otlp] processors: [batch] exporters: [prometheusremotewrite/amp]
Note

Le principal IAM qui envoie des données a besoin d'une aps:RemoteWrite autorisation osis:Ingest et d'une autorisation sur l'ARN du pipeline.

Configuration des pipelines OpenSearch d'ingestion

OpenSearch Ingestion (ou Data Prepper autogéré) reçoit les données télémétriques du OTel collecteur et les traite à des fins de surveillance des performances des applications (APM).

Architecture du pipeline

Le pipeline traite les données de télémétrie selon les étapes suivantes :

  1. Le pipeline d'entrée reçoit toutes les données de télémétrie et achemine les journaux et les traces vers des sous-pipelines distincts.

  2. Le pipeline de journaux écrit les données du journal en OpenSearch utilisant le type d'log-analytics-plainindex.

  3. Le pipeline de suivi distribue les intervalles entre le pipeline de stockage brut et le pipeline de carte de service.

  4. Les processus du pipeline de traces bruts s'étendent sur le otel_traces processeur et les stockent dans le type d'trace-analytics-plain-rawindex.

  5. Le pipeline de cartes de services utilise le otel_apm_service_map processeur pour générer la topologie et les métriques RED (Rate, Errors, Duration). Il écrit vers OpenSearch et vers Prometheus par écriture à distance.

Configuration du pipeline

L'exemple suivant montre une configuration de pipeline complète pour OpenSearch Ingestion qui couvre tous les types de signaux d'observabilité : journaux, traces et métriques. Vous pouvez inclure tous les pipelines ou uniquement ceux correspondant à votre cas d'utilisation. Remplacez les placeholder valeurs par vos propres informations.

version: '2' # Main OTLP pipeline - receives all telemetry and routes by signal type otlp-pipeline: source: otlp: logs_path: '/pipeline-name/v1/logs' traces_path: '/pipeline-name/v1/traces' metrics_path: '/pipeline-name/v1/metrics' route: - logs: 'getEventType() == "LOG"' - traces: 'getEventType() == "TRACE"' - metrics: 'getEventType() == "METRIC"' processor: [] sink: - pipeline: name: otel-logs-pipeline routes: - logs - pipeline: name: otel-traces-pipeline routes: - traces - pipeline: name: otel-metrics-pipeline routes: - metrics # Log processing pipeline otel-logs-pipeline: source: pipeline: name: otlp-pipeline processor: - copy_values: entries: - from_key: "time" to_key: "@timestamp" sink: - opensearch: hosts: - 'https://opensearch-endpoint' index_type: log-analytics-plain aws: serverless: false region: 'region' sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" # Trace fan-out pipeline otel-traces-pipeline: source: pipeline: name: otlp-pipeline processor: [] sink: - pipeline: name: traces-raw-pipeline routes: [] - pipeline: name: service-map-pipeline routes: [] # Raw trace storage pipeline traces-raw-pipeline: source: pipeline: name: otel-traces-pipeline processor: - otel_traces: sink: - opensearch: hosts: - 'https://opensearch-endpoint' index_type: trace-analytics-plain-raw aws: serverless: false region: 'region' sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" # Service map generation pipeline (APM) service-map-pipeline: source: pipeline: name: otel-traces-pipeline processor: - otel_apm_service_map: group_by_attributes: - telemetry.sdk.language # Add any resource attribute to group by window_duration: 30s route: - otel_apm_service_map_route: 'getEventType() == "SERVICE_MAP"' - service_processed_metrics: 'getEventType() == "METRIC"' sink: - opensearch: hosts: - 'https://opensearch-endpoint' aws: serverless: false region: 'region' sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" routes: - otel_apm_service_map_route index_type: otel-v2-apm-service-map - prometheus: url: 'https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write' aws: region: 'region' routes: - service_processed_metrics # Metrics processing pipeline otel-metrics-pipeline: source: pipeline: name: otlp-pipeline processor: - otel_metrics: sink: - prometheus: url: 'https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write' aws: region: 'region'

Vérification de l'ingestion

Après avoir configuré le OTel collecteur et les pipelines, vérifiez que les données de télémétrie circulent correctement.

  • Vérifier OpenSearch les index : vérifiez que les index suivants existent dans votre domaine :otel-v1-apm-span-*,otel-v2-apm-service-map, et. logs-otel-v1-*

  • Vérifier les cibles Prometheus : vérifiez que la cible d'écriture à distance Prometheus reçoit des métriques du pipeline de cartes de service.

  • Vérifier dans l' OpenSearch interface utilisateur : accédez à Observability, puis à Application Monitoring pour vérifier que vos services apparaissent.

Étapes suivantes

Après avoir vérifié que les données de télémétrie sont ingérées, explorez les rubriques suivantes :