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-2service: 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 :
-
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.
-
Le pipeline de journaux écrit les données du journal en OpenSearch utilisant le type d'
log-analytics-plainindex. -
Le pipeline de suivi distribue les intervalles entre le pipeline de stockage brut et le pipeline de carte de service.
-
Les processus du pipeline de traces bruts s'étendent sur le
otel_tracesprocesseur et les stockent dans le type d'trace-analytics-plain-rawindex. -
Le pipeline de cartes de services utilise le
otel_apm_service_mapprocesseur 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 :
-
Surveillance des applications— Surveillez l'état de santé des applications à l'aide de cartes de services et de métriques RED.
-
Découvrir les traces : découvrez et analysez les traces distribuées.
-
Journaux de découverte : découvrez et interrogez les journaux des applications.
-
Découvrez les métriques — Découvrez et interrogez les métriques de Prometheus à l'aide de ProMQL.