

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
<a name="observability-ingestion"></a>

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
<a name="observability-ingestion-otel"></a>

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
<a name="observability-ingestion-otel-osis"></a>

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
<a name="observability-ingestion-pipelines"></a>

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
<a name="observability-ingestion-pipeline-arch"></a>

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.

1. Le pipeline de journaux écrit les données du journal en OpenSearch utilisant le type d'`log-analytics-plain`index.

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

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

1. 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
<a name="observability-ingestion-pipeline-config"></a>

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
<a name="observability-ingestion-verify"></a>

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
<a name="observability-ingestion-next"></a>

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](observability-app-monitoring.md)— Surveillez l'état de santé des applications à l'aide de cartes de services et de métriques RED.
+ [Découvrir les traces](observability-analyze-traces.md) : découvrez et analysez les traces distribuées.
+ [Journaux](observability-analyze-logs.md) de découverte : découvrez et interrogez les journaux des applications.
+ [Découvrez les métriques](observability-metrics.md) — Découvrez et interrogez les métriques de Prometheus à l'aide de ProMQL.