

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.

# Observabilité dans Amazon Service OpenSearch
<a name="observability"></a>

L'observabilité est la pratique qui consiste à comprendre l'état interne et les performances de systèmes complexes en examinant leurs résultats. La surveillance traditionnelle vous indique qu'un système est en panne ; l'observabilité vous aide à comprendre pourquoi en vous permettant de poser de nouvelles questions sur vos données de télémétrie.

## Ce que propose Amazon OpenSearch Service
<a name="observability-what"></a>

Amazon OpenSearch Service fournit une solution d'observabilité unifiée en collectant, en corrélant et en visualisant trois types de données de télémétrie :
+ **Journaux** — Enregistrements horodatés des événements.
+ **Traces** : End-to-end parcours des demandes via les services distribués.
+ **Métriques** : données chronologiques représentant l'état du système, via Amazon Managed Service pour l'intégration directe des requêtes Prometheus.

En les regroupant dans une interface unique, Amazon OpenSearch Service aide les équipes opérationnelles et les développeurs à détecter, diagnostiquer et résoudre les problèmes plus rapidement. SREs

## L'approche d'Amazon OpenSearch Service en matière d'observabilité
<a name="observability-approach"></a>

Amazon OpenSearch Service se distingue de trois manières principales :
+ **OpenTelemetry-native avec OpenSearch l'ingestion comme dernière étape — Standardisez l'**utilisation OTel pour l'instrumentation et la collecte. Amazon OpenSearch Ingestion est un pipeline entièrement géré qui filtre, enrichit, transforme et achemine vos données de télémétrie avant de les indexer.
+ **Journaux, traces et métriques unifiés dans l' OpenSearch interface utilisateur** : analysez les trois types de signaux à partir d'un seul espace de travail d'observabilité. Corrélez une trace lente avec les journaux de ses applications ou superposez les métriques Prometheus à vos tableaux de bord de services.
+ **Langages de requête ciblés** : utilisez le langage [PPL (Piped Processing Language) pour les journaux et les traces, et ProMQL](https://observability.opensearch.org/docs/ppl/) pour les métriques. Chaque langage est optimisé pour son type de signal, ce qui vous permet d'effectuer des requêtes expressives sans compromis.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/otel-sdk-service.png)


**Note**  
Les fonctionnalités d'observabilité décrites dans cette section ne sont disponibles que dans l' OpenSearch interface utilisateur. Ils ne sont pas disponibles dans les OpenSearch tableaux de bord. Pour les nouvelles charges de travail d'observabilité, nous vous recommandons de configurer un espace de travail [Utilisation de l' OpenSearch interface utilisateur dans Amazon OpenSearch Service](application.md) avec observabilité.

# Mise en route
<a name="observability-get-started"></a>

Activez votre système d'observabilité AWS et commencez à envoyer des données de télémétrie en quelques minutes.

## Démarrage rapide
<a name="observability-get-started-quick"></a>

Le moyen le plus rapide de déployer une pile d' end-to-endobservabilité AWS est le programme d'installation de la CLI. Il crée les ressources suivantes :
+ Un domaine Amazon OpenSearch Service
+ Un service géré par Amazon pour l'espace de travail Prometheus
+ Un pipeline Amazon OpenSearch Ingestion
+ Une application d' OpenSearch interface utilisateur avec un espace de travail d'observabilité

Le programme d'installation lance éventuellement une instance EC2 avec la OpenTelemetry démo pour un exemple de télémétrie.

Exécutez la commande suivante pour démarrer l'installation :

```
bash -c "$(curl -fsSL https://raw.githubusercontent.com/opensearch-project/observability-stack/main/install.sh)" -- --deployment-target=aws
```

L'installation dure environ 15 minutes.

## Déploiement du CDK
<a name="observability-get-started-cdk"></a>

Pour infrastructure-as-code, utilisez AWS CDK. Le déploiement du CDK crée deux piles :


| Pile | Ce que cela crée | Temps de déploiement | 
| --- | --- | --- | 
| ObsInfra | OpenSearch domaine, espace de travail Amazon Managed Service for Prometheus, source de données de requête directe, rôle IAM dans le pipeline | \$117 minutes | 
| ObservabilityStack | Cartographie précise du contrôle d'accès, pipeline d' OpenSearch ingestion, application d' OpenSearch interface utilisateur, initialisation du tableau de bord, charge de travail de démonstration (facultatif) | \$16 minutes | 

Exécutez les commandes suivantes pour le déploiement :

```
cd aws/cdk
npm install
cdk deploy --all
```

Pour plus d'informations, consultez le [fichier README sur le déploiement du CDK](https://github.com/opensearch-project/observability-stack/tree/main/aws/cdk). GitHub

## Envoi de télémétrie
<a name="observability-get-started-send"></a>

Les deux méthodes de déploiement créent un point de terminaison d' OpenSearch ingestion qui accepte les données OTLP. Configurez votre OTel Collector pour qu'il exporte à l'aide de l'authentification Sigv4 :

```
extensions:
  sigv4auth:
    region: us-west-2
    service: osis

exporters:
  otlphttp/logs:
    logs_endpoint: ${OSIS_ENDPOINT}/v1/logs
    auth: { authenticator: sigv4auth }
    compression: none
  otlphttp/traces:
    traces_endpoint: ${OSIS_ENDPOINT}/v1/traces
    auth: { authenticator: sigv4auth }
    compression: none
  otlphttp/metrics:
    metrics_endpoint: ${OSIS_ENDPOINT}/v1/metrics
    auth: { authenticator: sigv4auth }
    compression: none
```

**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.

## En savoir plus
<a name="observability-get-started-learn-more"></a>

Utilisez les ressources suivantes pour en savoir plus sur l'envoi de données de télémétrie :
+ [OpenTelemetry guides d'instrumentation (par langue)](https://observability.opensearch.org/docs/send-data/applications/)
+ [Surveillance de l'infrastructure (Docker AWS, Kubernetes, Prometheus)](https://observability.opensearch.org/docs/send-data/infrastructure/)
+ [OTel Configuration du collecteur](https://observability.opensearch.org/docs/send-data/opentelemetry/collector/)
+ [Pipeline de données et traitement par lots](https://observability.opensearch.org/docs/send-data/data-pipeline/)
+ [Présentation d'Amazon OpenSearch Ingestion](ingestion.md) dans ce guide

# 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.

# Ensembles de données
<a name="observability-datasets"></a>

Les ensembles de données sont des ensembles d'index qui représentent un regroupement logique de vos données d'observabilité. Vous utilisez des ensembles de données pour organiser les journaux et les données de trace afin de pouvoir interroger et analyser ensemble les index associés dans l'expérience Discover. Chaque jeu de données correspond à un ou plusieurs index de votre domaine de OpenSearch service et définit le type de données, le champ horaire et le langage de requête pour la page Découvrir.

## Types de jeux de données
<a name="observability-datasets-types"></a>

Le tableau suivant décrit les types de jeux de données que vous pouvez créer.


| Type | Description | Langage de requête | 
| --- | --- | --- | 
| Journaux | Regroupe un ou plusieurs index de journaux à des fins d'interrogation et de visualisation sur la page Discover Logs. | PPL | 
| Suivis | Regroupe les indices d'intervalle de trace à des fins d'interrogation et de visualisation sur la page Discover Traces. | PPL | 

**Note**  
Les métriques ne nécessitent pas de jeu de données car les données métriques ne sont pas stockées dans OpenSearch. Les métriques sont demandées directement depuis Amazon Managed Service for Prometheus à l'aide de Promql.

## Pour créer un jeu de données de logs
<a name="observability-datasets-create-logs"></a>

Procédez comme suit pour créer un jeu de données de journaux dans l' OpenSearch interface utilisateur.

1. Dans votre espace de travail d'observabilité, développez **Discover** dans le volet de navigation de gauche et choisissez **Logs**.

1. Choisissez **Créer un jeu de données**.

1. Sélectionnez une source de données dans la liste des connexions de OpenSearch service disponibles.  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/datasets/datasets-select-data-source.png)

1. Configurez le jeu de données en saisissant un nom, en sélectionnant l'index et en spécifiant le champ d'horodatage.  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/datasets/datasets-configure-logs.png)

1. Choisissez **Create dataset** pour enregistrer la configuration.

## Pour créer un jeu de données de traces
<a name="observability-datasets-create-traces"></a>

Procédez comme suit pour créer un jeu de données de traces dans l' OpenSearch interface utilisateur.

1. Dans votre espace de travail d'observabilité, développez **Discover** dans le menu de navigation de gauche et choisissez **Traces**.

1. Choisissez **Créer un jeu de données**.

1. Sélectionnez une source de données dans la liste des connexions de OpenSearch service disponibles.

1. Configurez le jeu de données en saisissant un nom, en sélectionnant l'indice d'étendue et en spécifiant le champ d'horodatage.  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/datasets/datasets-configure-traces.png)

1. Choisissez **Create dataset** pour enregistrer la configuration.

## Pour afficher les ensembles de données
<a name="observability-datasets-view"></a>

Vous pouvez afficher tous les ensembles de données configurés à partir du sélecteur de jeux de données sur la page Discover Logs ou Discover Traces. La liste du jeu de données indique le nom, le type, la source de données et le champ d'horodatage de chaque ensemble de données.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/datasets/datasets-list.png)


## Analyse de jeux de données dans Discover
<a name="observability-datasets-analyze"></a>

Après avoir créé un jeu de données, vous pouvez l'analyser sur la page de découverte correspondante.

### Journaux
<a name="observability-datasets-analyze-logs"></a>

Sélectionnez un jeu de données de journaux dans le sélecteur de jeu de données de la page Discover Logs pour interroger et visualiser les données de vos journaux à l'aide de PPL. Pour de plus amples informations, veuillez consulter [Découvrez Logs](observability-analyze-logs.md).

### Suivis
<a name="observability-datasets-analyze-traces"></a>

Sélectionnez un jeu de données de traces dans le sélecteur de jeu de données de la page Discover Traces pour explorer les étendues de trace, consulter les métriques RED et explorer les traces individuelles. Pour de plus amples informations, veuillez consulter [Découvrez Traces](observability-analyze-traces.md).

# Découvrez Logs
<a name="observability-analyze-logs"></a>

La page Discover Logs fournit une interface dédiée pour explorer et analyser les données des journaux dans votre espace de travail d'observabilité des OpenSearch services. Vous pouvez écrire des requêtes PPL pour filtrer et agréger les données des journaux, créer des visualisations directement à partir des résultats des requêtes et ajouter ces visualisations aux tableaux de bord. La page fournit également une assistance aux requêtes en langage naturel alimentée par l'assistant OpenSearch AI.

## Pour accéder à la page Logs
<a name="observability-logs-access"></a>

Dans votre espace de travail d'observabilité, développez **Discover** dans le volet de navigation de gauche et choisissez **Logs**.

## Exploration des données du journal
<a name="observability-logs-explore"></a>

L'interface Discover Logs fournit les composants suivants pour explorer les données de vos journaux.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/discover-logs/discover-logs-interface.png)

+ **Sélecteur de jeu** de données : choisissez le jeu de données de journaux que vous souhaitez interroger. Chaque jeu de données correspond à un ou plusieurs index de votre domaine OpenSearch de service.
+ **Éditeur de requêtes** : écrivez des requêtes PPL pour filtrer, agréger et transformer les données de vos journaux. L'éditeur propose des suggestions de saisie semi-automatique et met en évidence la syntaxe.
+ **Filtre temporel** : spécifiez la plage de temps pour les résultats de votre requête. Vous pouvez choisir une plage relative ou spécifier des heures de début et de fin absolues.
+ **Panneau de résultats** : affiche les résultats de la requête sous forme de tableau des événements du journal. Vous pouvez développer les événements individuels pour afficher tous les champs.
+ **Histogramme** : affiche la distribution des événements du journal au fil du temps. L'histogramme est mis à jour automatiquement en fonction de votre requête et de votre filtre temporel.
+ **Panneau des champs** : parcourez les champs disponibles dans votre jeu de données et ajoutez-les sous forme de colonnes au tableau des résultats.

## Interrogation des journaux à l'aide de PPL
<a name="observability-logs-query-ppl"></a>

Le langage de traitement piped (PPL) est un langage de requête qui utilise la syntaxe pipe-based (`|`) pour enchaîner les commandes. Vous pouvez utiliser PPL pour filtrer, agréger et transformer les données de vos journaux.

### Requêtes de base
<a name="observability-logs-basic-queries"></a>

Pour récupérer tous les événements du journal d'un ensemble de données, utilisez la `source` commande :

```
source = my-logs-dataset
```

Pour limiter le nombre de résultats, utilisez la `head` commande :

```
source = my-logs-dataset | head 20
```

### Filtrer avec WHERE
<a name="observability-logs-where-clause"></a>

Utilisez la `where` clause pour filtrer les événements du journal en fonction des valeurs des champs :

```
source = my-logs-dataset | where severity_text = 'ERROR'
```

Vous pouvez combiner plusieurs conditions :

```
source = my-logs-dataset |
    where severity_text = 'ERROR' and service_name = 'payment-service'
```

### Gestion des requêtes
<a name="observability-logs-manage-queries"></a>

Vous pouvez enregistrer les requêtes fréquemment utilisées pour les réutiliser. Pour enregistrer une requête, choisissez **Enregistrer** dans la barre d'outils de l'éditeur de requêtes et entrez le nom de la requête. Pour charger une requête enregistrée, choisissez **Ouvrir** et sélectionnez la requête dans la liste.

Pour la liste complète des commandes et fonctions PPL, consultez la référence du [langage de traitement piped](https://observability.opensearch.org/docs/ppl/).

## Création de visualisations à partir de journaux
<a name="observability-logs-visualizations"></a>

Vous pouvez créer des visualisations directement à partir des résultats de vos requêtes PPL. Utilisez la `stats` commande pour agréger les données à des fins de visualisation :

```
source = my-logs-dataset |
    stats count() as error_count by service_name, span(timestamp, 1h)
```

Après avoir exécuté une `stats` requête, cliquez sur l'onglet **Visualisation** pour afficher les résultats sous forme de graphique.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/discover-logs/discover-logs-visualization.png)


### Types de visualisation
<a name="observability-logs-viz-types"></a>

Le tableau suivant décrit les types de visualisation que vous pouvez utiliser.


| Type | Description | 
| --- | --- | 
| Line | Affiche les points de données connectés par des lignes, ce qui est utile pour montrer les tendances au fil du temps. | 
| Area | Semblable à un graphique linéaire dans lequel la zone située sous la ligne est remplie, utile pour afficher le volume au fil du temps. | 
| Bar (À barres) | Affiche les données sous forme de barres verticales ou horizontales, ce qui est utile pour comparer les valeurs entre les catégories. | 
| Métrique | Affiche une valeur numérique unique, utile pour afficher les indicateurs de performance clés. | 
| Chronologie de l'État | Affiche les changements d'état au fil du temps sous forme de bandes colorées, ce qui est utile pour surveiller les transitions d'état. | 
| Heatmap | Affiche les données sous forme de matrice de cellules colorées, utile pour montrer la densité et les motifs. | 
| Jauge à barres | Affiche une valeur unique sous forme de barre remplie au sein d'une plage, ce qui est utile pour montrer la progression vers un seuil. | 
| Pie (À secteurs) | Affiche les données sous forme de tranches proportionnelles d'un cercle, ce qui est utile pour montrer la composition. | 

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/discover-logs/discover-logs-viz-types.png)


### Paramètres de visualisation
<a name="observability-logs-viz-settings"></a>

Lorsque l'onglet **Visualisation** est actif, un panneau de paramètres apparaît sur le côté droit de l'écran. Utilisez ce panneau pour configurer le type de graphique, associer les champs aux axes et personnaliser les styles visuels tels que les couleurs et les légendes.

Pour changer les axes d'une visualisation, utilisez la configuration des axes dans le panneau des paramètres.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/discover-logs/discover-logs-switch-axes.png)


## Ajouter des visualisations aux tableaux de bord
<a name="observability-logs-add-to-dashboard"></a>

Après avoir créé une visualisation, vous pouvez l'ajouter à un tableau de bord pour une surveillance continue. Choisissez **Enregistrer dans le tableau de bord** dans la barre d'outils de visualisation, puis sélectionnez un tableau de bord existant ou créez-en un nouveau. La visualisation est enregistrée avec sa requête PPL sous-jacente afin qu'elle soit actualisée automatiquement lorsque vous ouvrez le tableau de bord.

# Découvrez Traces
<a name="observability-analyze-traces"></a>

La page Discover Traces fournit une interface dédiée pour explorer les données de trace distribuées dans votre espace de travail d'observabilité des OpenSearch services. Vous pouvez consulter les indicateurs RED (taux, taux d'erreur, durée) de vos services, parcourir les intervalles de suivi grâce à un filtrage à facettes et explorer les intervalles et les traces individuels pour diagnostiquer les problèmes de performances. La page permet également de corréler les traces avec les données de journal associées.

## Pour accéder à la page Traces
<a name="observability-traces-access"></a>

Dans votre espace de travail d'observabilité, développez **Discover** dans le menu de navigation de gauche et choisissez **Traces**.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/discover-traces/discover-traces.png)


## Configuration des ensembles de données de suivi
<a name="observability-traces-configure-datasets"></a>

Avant de pouvoir explorer les données de trace, vous devez configurer un jeu de données de traces. Vous pouvez créer un jeu de données automatiquement ou manuellement.

### Création automatique de jeux de données
<a name="observability-traces-auto-create"></a>

Lorsque vous accédez à la page Discover Traces pour la première fois et que des données de trace existent dans votre domaine, la page vous invite à créer automatiquement un jeu de données. Choisissez **Create dataset** pour accepter la configuration par défaut.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/discover-traces/trace-auto-create.png)


### Création manuelle de jeux de données
<a name="observability-traces-manual-create"></a>

Pour créer manuellement un jeu de données de traces, suivez les étapes décrites dans[Pour créer un jeu de données de traces](observability-datasets.md#observability-datasets-create-traces). La création manuelle vous permet de contrôler le modèle d'index, le champ d'horodatage et le nom du jeu de données.

## Exploration des données de suivi
<a name="observability-traces-explore"></a>

La page Discover Traces fournit les composants suivants pour explorer vos données de trace.
+ **Métriques RED** : taux d'affichage (demandes par seconde), taux d'erreur (pourcentage de demandes ayant échoué) et durée (percentiles de latence) pour le jeu de données sélectionné. Ces statistiques sont mises à jour en fonction de votre filtre temporel.
+ **Champs à facettes** : filtrez les intervalles de suivi par nom de service, opération, code d'état et autres attributs d'étendue. Sélectionnez des valeurs dans le panneau des champs à facettes pour affiner vos résultats.
+ **Table d'étendue** : parcourez les intervalles individuels avec des colonnes pour l'ID de trace, l'ID d'étendue, le nom du service, l'opération, la durée et le statut. Vous pouvez trier selon n'importe quelle colonne et développer les lignes pour voir les détails de l'intervalle.

## Afficher une durée spécifique
<a name="observability-traces-view-span"></a>

Pour afficher les détails d'une période spécifique, choisissez la ligne d'étendue dans le tableau des intervalles. Un panneau déroulant s'ouvre avec les attributs span, les attributs des ressources et les informations sur les événements.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/discover-traces/trace-details-flyout.png)


## Page détaillée du tracé
<a name="observability-traces-detail-page"></a>

Pour afficher la trace complète, cliquez sur le lien ID de trace dans le tableau des intervalles ou dans le panneau déroulant. La page détaillée de la trace affiche un graphique en cascade indiquant toutes les plages de la trace, leurs relations temporelles et la durée globale de la trace. Vous pouvez étendre les plages individuelles pour afficher leurs attributs et identifier les goulots d'étranglement.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/discover-traces/trace-detail-page.png)


## Corrélation des traces avec les journaux
<a name="observability-traces-correlate-logs"></a>

Lorsque vous configurez une corrélation entre un jeu de données de traces et un jeu de données de journaux, vous pouvez consulter les entrées de journal associées directement depuis la page Discover Traces. Pour plus d'informations sur la création de corrélations, consultez[Corrélations](observability-correlations.md).

### Afficher les journaux associés
<a name="observability-traces-related-logs"></a>

Dans le menu déroulant des détails de l'intervalle ou sur la page des détails de la trace, cliquez sur l'onglet **Journaux associés** pour afficher les entrées du journal correspondant à l'ID de trace, au nom du service et à la plage horaire de l'intervalle. Cette corrélation vous permet de comprendre ce qui s'est passé dans votre application pendant l'exécution du span.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/discover-traces/related-logs.png)


### Redirection du journal avec contexte
<a name="observability-traces-log-redirection"></a>

Vous pouvez passer d'une période de trace directement à la page Discover Logs en préservant le contexte pertinent. Choisissez **Afficher dans les journaux dans** le panneau de journaux correspondant pour ouvrir la page Discover Logs avec la requête préremplie pour filtrer en fonction de l'ID de trace et de la plage horaire de l'intervalle.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/discover-traces/logs-redirection.png)


## Interrogation de traces à l'aide de PPL
<a name="observability-traces-querying"></a>

Vous pouvez utiliser PPL pour interroger directement les données de suivi. PPL chaîne les commandes en utilisant le caractère tube pour filtrer, transformer et agréger les données de span.

L'exemple suivant permet de trouver les 10 traces les plus lentes :

```
source = otel-v1-apm-span-*
| where durationInNanos > 5000000000
| fields traceId, serviceName, name, durationInNanos
| sort - durationInNanos
| head 10
```

L'exemple suivant comptabilise les erreurs par service :

```
source = otel-v1-apm-span-*
| where status.code = 2
| stats count() as errorCount by serviceName
| sort - errorCount
```

L'exemple suivant permet de trouver des traces pour un service spécifique :

```
source = otel-v1-apm-span-*
| where serviceName = 'checkout-service'
| where parentSpanId = ''
| sort - startTime
| head 20
```

# Métriques
<a name="observability-metrics"></a>

La page Discover Metrics de l' OpenSearch interface utilisateur fournit une interface dédiée pour découvrir, interroger et visualiser les données métriques de séries chronologiques. Cette page est optimisée pour travailler avec les métriques Prometheus à l'aide de ProMQL.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/dashboards/prometheus.png)


La page Discover Metrics est disponible dans les espaces de travail d'Observability. Pour y accéder, accédez à un espace de travail d'observabilité, développez **Discover** dans le volet de navigation de gauche et sélectionnez **Metrics**.

## Configuration d'une source de données Prometheus
<a name="observability-metrics-data-source"></a>

Avant de commencer, configurez une source de données Prometheus en utilisant l'une des méthodes suivantes :
+ [Création d'une source de données Amazon Managed Service pour Prometheus](direct-query-prometheus-creating.md)dans la console AWS de gestion
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/opensearch/add-direct-query-data-source.html)

## Panneau de requêtes
<a name="observability-metrics-query"></a>

Vous pouvez écrire et exécuter des requêtes métriques dans le panneau de requêtes en haut de la page Discover Metrics. L'éditeur de requêtes fournit des suggestions de saisie semi-automatique et met en évidence la syntaxe pour ProMQL.

**Rédaction de requêtes**  
Rédigez des requêtes en utilisant la syntaxe ProMQL. Par exemple :

```
up{job="prometheus"}
```

**Exécution de requêtes**  
Pour exécuter une requête, saisissez-la dans l'éditeur de requêtes et sélectionnez **Actualiser**.

Vous pouvez exécuter plusieurs requêtes ProMQL ensemble en les séparant par un point-virgule () : `;`

```
up{job="prometheus"};
node_cpu_seconds_total{mode="idle"};
```

Chaque requête s'exécute indépendamment et les résultats sont combinés dans le résultat.

## Filtre temporel
<a name="observability-metrics-time-filter"></a>

Utilisez le filtre temporel pour spécifier la plage de temps pour vos données métriques :
+ **Sélection rapide** : choisissez une plage de temps relative (par exemple, les 15 dernières minutes ou la dernière heure).
+ **Couramment utilisé** : sélectionnez l'une des plages de temps prédéfinies.
+ **Personnalisé** — Spécifiez les heures de début et de fin absolues.
+ **Actualisation automatique** : définissez un intervalle d'actualisation automatique.

## Affichage des résultats
<a name="observability-metrics-results"></a>

Après avoir exécuté une requête, les résultats sont affichés dans une interface à onglets :
+ **Métriques** : affiche le dernier point de données pour chaque série sous forme de tableau.
+ **Raw** — Affiche le dernier point de données pour chaque série sous forme de JSON brut renvoyé par la source de données.
+ **Visualisation** : fournit des graphiques interactifs pour vos données métriques.

## Configuration des visualisations
<a name="observability-metrics-visualizations"></a>

Lorsque l'onglet **Visualisation** est sélectionné, un panneau de paramètres apparaît sur le côté droit de l'écran. Utilisez ce panneau pour :
+ **Sélectionnez un type de graphique** : choisissez entre des visualisations linéaires, à barres, à secteurs, à jauges ou sous forme de tableau.
+ **Cartographier les axes** : assignez des champs aux axes X et Y.
+ **Personnalisez les styles** : ajustez les couleurs, les légendes, le quadrillage et les autres options visuelles.

Lorsque vous modifiez les paramètres, la visualisation est automatiquement mise à jour.

# Corrélations
<a name="observability-correlations"></a>

Les corrélations lient un jeu de données de traces à un jeu de données de journaux afin que vous puissiez consulter les entrées de journal associées lorsque vous étudiez les durées de suivi. En définissant une corrélation, vous permettez à la page Discover Traces d'afficher les journaux survenus pendant l'exécution d'une période, ce qui vous permet de diagnostiquer les problèmes plus rapidement sans passer d'une page à l'autre.

## Exigences en matière de corrélation
<a name="observability-correlations-requirements"></a>

Pour créer une corrélation, vos données de journal et de trace doivent contenir des champs correspondants. Le tableau suivant décrit les champs utilisés par la corrélation pour joindre les données de trace et de journal.


| Champ | Description | Obligatoire | 
| --- | --- | --- | 
| Identifiant de trace | Identifiant unique de la trace. Doit exister à la fois dans l'index de trace et dans l'index de log. | Oui | 
| ID d'Espagne | Identifiant unique de l'intervalle. Utilisé pour faire correspondre les journaux à une période spécifique au sein d'une trace. | Non | 
| Nom du service | Nom du service qui a généré la télémétrie. Utilisé pour filtrer les journaux associés par service. | Non | 
| Horodatage | Champ temporel utilisé pour étendre les journaux associés à la plage de temps de la période. | Oui | 

## Pour créer une trace-to-logs corrélation
<a name="observability-correlations-create"></a>

Procédez comme suit pour créer une corrélation entre un jeu de données de traces et un jeu de données de journaux.

1. Dans votre espace de travail d'observabilité, développez **Discover** dans le menu de navigation de gauche et choisissez **Traces**.

1. Sélectionnez le jeu de données de traces que vous souhaitez corréler.

1. Choisissez l'onglet **Corrélations** dans le panneau de configuration du jeu de données.  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/datasets/correlations-trace-dataset-tab.png)

1. Choisissez **Créer une corrélation**.

1. Dans la boîte de dialogue de configuration, sélectionnez le jeu de données de logs cible et mappez les champs de corrélation requis (ID de trace et horodatage). Vous pouvez éventuellement cartographier l'ID de l'étendue et le nom du service pour une correspondance plus précise.  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/datasets/correlations-configure-dialog.png)

1. Choisissez **Créer** pour enregistrer la corrélation.

1. Vérifiez que la corrélation apparaît dans le tableau des corrélations.  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/datasets/correlations-created-table.png)

## Affichage des corrélations dans les ensembles de données de logs
<a name="observability-correlations-view-logs"></a>

Une fois que vous avez créé une corrélation, vous pouvez également la visualiser du côté du jeu de données de logs. Accédez à la page Discover Logs, sélectionnez le jeu de données de journaux corrélé, puis cliquez sur l'onglet **Corrélations** pour voir le jeu de données de traces lié.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/datasets/correlations-logs-dataset-tab.png)


## Utilisation des corrélations dans la page Traces
<a name="observability-correlations-use-traces"></a>

Lorsqu'une corrélation existe, la page Discover Traces affiche les journaux associés dans la vue détaillée de l'intervalle. Choisissez un intervalle dans le tableau des intervalles pour ouvrir le menu déroulant des détails, puis cliquez sur l'onglet **Journaux associés** pour afficher les entrées de journal corrélées.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/datasets/correlations-span-details-logs.png)


## Gestion des corrélations
<a name="observability-correlations-manage"></a>

Vous pouvez modifier ou supprimer des corrélations dans l'onglet **Corrélations** du jeu de données de traces ou de logs.
+ **Modification** : choisissez la corrélation dans le tableau, puis sélectionnez **Modifier** pour mettre à jour les mappages de champs ou le jeu de données cible.
+ **Suppression** : choisissez la corrélation dans le tableau, puis cliquez **sur Supprimer** pour supprimer la corrélation. La suppression d'une corrélation ne supprime aucune donnée.

# Tableaux de bord
<a name="observability-dashboards"></a>

Les tableaux de bord combinent les visualisations issues des journaux, des traces et des métriques dans une vue unique. Vous pouvez utiliser des tableaux de bord pour surveiller la santé opérationnelle, répondre aux incidents et suivre l'utilisation des ressources dans l'ensemble de votre système distribué.

Le tableau suivant décrit les cas d'utilisation courants des tableaux de bord.


| Cas d’utilisation | Exemple | 
| --- | --- | 
| Surveillance opérationnelle | Suivez l'état du service, le débit et les taux d'erreur en temps réel. | 
| Intervention en cas d’incidents | Corrélez les journaux, les traces et les métriques lors d'un incident actif. | 
| Planification de la capacité | Surveillez les tendances d'utilisation des ressources afin de planifier leur mise à l'échelle. | 
| Suivi de disponibilité | Mesurez le temps de disponibilité et la disponibilité par rapport aux objectifs de niveau de service. | 
| Révision après l'incident | Analysez les données historiques pour comprendre la cause première des incidents passés. | 

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/otel-dashboard.png)


## Structure du tableau de bord
<a name="observability-dashboards-structure"></a>

Un tableau de bord est un ensemble de panneaux disposés sur une grille. Chaque panneau comprend les éléments suivants.
+ **Source de données** : OpenSearch index ou source de données Amazon Managed Service for Prometheus que le panel interroge.
+ **Requête : requête** PPL ou ProMQL qui extrait les données du panneau.
+ **Type de visualisation** : type de graphique utilisé pour afficher les résultats de la requête, tel qu'une ligne, une barre ou une valeur métrique.
+ **Configuration facultative** : axes, légendes, seuils et options de mise en forme.

Le sélecteur de plage horaire en haut du tableau de bord s'applique à tous les panneaux. Vous pouvez modifier la plage de temps pour les panneaux individuels en cas de besoin.

## Création de tableaux de bord à partir de Discover
<a name="observability-dashboards-discover"></a>

Le flux de travail recommandé pour créer des tableaux de bord commence dans Discover. Ce flux de travail est cohérent entre les journaux, les traces et les métriques.

1. **Interrogez vos données dans Discover** : accédez à Discover Logs, Discover Traces ou Discover Metrics et rédigez une requête en utilisant PPL (pour les journaux et les traces) ou ProMQL (pour les métriques).

1. **Création d'une visualisation** : lorsque votre requête renvoie des résultats, utilisez l'onglet de visualisation pour choisir un type de graphique et configurer l'affichage. Pour les requêtes de journalisation et de suivi, les commandes d'agrégation passent `stats` automatiquement à la vue de visualisation.

1. **Enregistrer dans un tableau de bord** : choisissez **Ajouter au tableau de bord** pour enregistrer la visualisation dans un tableau de bord nouveau ou existant. Le panneau reste actif et se met à jour à mesure que de nouvelles données arrivent.

1. **Itérer** : répétez l'opération pour chaque question à laquelle le tableau de bord doit répondre. Lorsque quelque chose ne va pas sur un tableau de bord, choisissez n'importe quel panneau pour ouvrir la requête sous-jacente dans Discover afin de poursuivre les recherches.

**Important**  
Les visualisations créées via la page **Visualisations** de l' OpenSearch interface utilisateur utilisent le langage DQL (Dashboards Query Language) et le DSL (Domain Specific Language), qui ne sont pas compatibles avec le langage PPL (Piped Processing Language) pour le moment. Pour créer des visualisations basées sur PPL, utilisez le flux de travail Discover décrit ci-dessus.

## Filtres de tableau de bord
<a name="observability-dashboards-filters"></a>

Les filtres vous permettent de restreindre les données affichées dans tous les panneaux d'un tableau de bord sans modifier les requêtes individuelles.

**Pour ajouter un filtre**

1. Ouvrez le tableau de bord que vous souhaitez filtrer.

1. Choisissez **Ajouter un filtre** dans la barre de filtre.

1. Sélectionnez un nom de champ dans la liste déroulante.

1. Sélectionnez un opérateur et entrez une valeur.

1. Choisissez **Enregistrer**.

Le tableau suivant décrit les cas d'utilisation courants des filtres.


| Scénario | Champ | Opérateur | Value | 
| --- | --- | --- | --- | 
| Afficher un environnement unique | environment | is | production | 
| Isoler les erreurs | status\$1code | is greater than or equal to | 400 | 
| Concentrez-vous sur un service spécifique | service.name | is | order-service | 
| Exclure les contrôles de santé | http.url | is not | /health | 

**Comparaison entre filtres épinglés et filtres non épinglés** : un filtre épinglé persiste lorsque vous naviguez entre les tableaux de bord. Un filtre non épinglé s'applique uniquement au tableau de bord actuel. Pour épingler un filtre, cliquez sur l'icône en forme d'épingle à côté du badge du filtre.

## Création de tableaux de bord
<a name="observability-dashboards-build"></a>

### Types de visualisation
<a name="observability-dashboards-build-viz-types"></a>

Le tableau suivant décrit les types de visualisation disponibles pour les panneaux de tableau de bord.


| Type | Cas d’utilisation | 
| --- | --- | 
| Line | Tendances au fil du temps, telles que les taux de demandes ou le temps de latence | 
| Area | Volume au fil du temps avec des ventilations cumulées | 
| Bar (À barres) | Comparaison des valeurs entre les catégories | 
| Barre horizontale | Comparaisons classées, telles que les meilleurs services en fonction du nombre d'erreurs | 
| Tableau de données | Données tabulaires avec tri et pagination | 
| Valeur de la métrique | Indicateurs de performance clés uniques, tels que le nombre total de demandes | 
| Jauge | Progrès vers un seuil, tel que l'utilisation du processeur | 
| Pie (À secteurs) | Composition et proportions, telles que le trafic par région | 
| Carte thermique  | Modèles de densité et de distribution en deux dimensions | 
| Nuage de tags | Fréquence relative des termes, tels que les messages d'erreur courants | 

### Configuration des panneaux
<a name="observability-dashboards-build-configure"></a>

Chaque panneau possède un éditeur de requêtes dans lequel vous pouvez écrire des requêtes PPL ou ProMQL. Les exemples suivants présentent les requêtes de panel les plus courantes.

Nombre d'erreurs par service (PPL) :

```
source = logs-dataset |
    where severity_text = 'ERROR' |
    stats count() as error_count by service_name, span(timestamp, 5m)
```

Taux d'utilisation du processeur (ProMQL) :

```
rate(container_cpu_usage_seconds_total{namespace="production"}[5m])
```

Vous pouvez également configurer les options de panneau suivantes.
+ **Axes** : définissez les étiquettes des axes, les échelles (linéaires ou logarithmiques) et les plages de valeurs.
+ **Légendes** : contrôlez la position de la légende et les séries à afficher.
+ **Seuils** — Ajoutez des lignes de seuil horizontales pour mettre en évidence les niveaux d'alerte ou critiques.

### Conseils de mise en page
<a name="observability-dashboards-build-layout"></a>

Suivez les conseils suivants pour organiser efficacement les panneaux de votre tableau de bord.
+ Placez des panneaux de synthèse de haut niveau (valeurs métriques, jauges) en haut du tableau de bord.
+ Regroupez les panneaux connexes, tels que tous les panneaux pour un seul service.
+ Utilisez des largeurs cohérentes pour les panneaux d'une même rangée.
+ Faites glisser les bords du panneau pour le redimensionner et faites glisser les en-têtes du panneau pour le repositionner.

### Mises en page recommandées
<a name="observability-dashboards-build-recommended"></a>

Les tableaux suivants décrivent les configurations de panneau recommandées pour les types de tableaux de bord courants.

**Tableau de bord de santé des services**


| Panneau | Type de visualisation | 
| --- | --- | 
| Débit de demandes | Line | 
| Taux d'erreur | Line | 
| Latence P99 | Line | 
| Alertes actives | Valeur de la métrique | 
| Principales erreurs par service | Barre horizontale | 

**Tableau de bord de réponse aux incidents**


| Panneau | Type de visualisation | 
| --- | --- | 
| Journaux des erreurs | Tableau de données | 
| Nombre d'erreurs au fil du temps | Area | 
| Services concernés | Pie (À secteurs) | 
| Pics de latence | Line | 

**Tableau de bord d'utilisation des ressources**


| Panneau | Type de visualisation | 
| --- | --- | 
| Utilisation de l’UC | Jauge | 
| Utilisation de la mémoire au fil du temps | Area | 
| E/S du disque | Line | 
| Débit réseau | Line | 

### Contrôles de plage de temps
<a name="observability-dashboards-build-time-range"></a>

Le sélecteur de plage horaire situé en haut du tableau de bord contrôle la fenêtre horaire de tous les panneaux. Vous pouvez sélectionner une plage prédéfinie (telle que les **15 dernières minutes** ou les **24 dernières heures**) ou spécifier une plage absolue personnalisée.

Pour activer l'actualisation automatique, choisissez le menu déroulant des intervalles d'actualisation à côté du sélecteur de plage de temps et sélectionnez un intervalle. L'actualisation automatique réexécute toutes les requêtes du panneau à l'intervalle spécifié afin que votre tableau de bord affiche les données les plus récentes.

## Partage de tableaux de bord
<a name="observability-dashboards-sharing"></a>

Vous pouvez partager des tableaux de bord avec d'autres utilisateurs de votre organisation via des URLs instantanés et des exportations.

### Partager via une URL
<a name="observability-dashboards-sharing-url"></a>

Copiez l'URL du tableau de bord depuis la barre d'adresse de votre navigateur et partagez-la directement. L'URL préserve la plage horaire et les filtres actuels. Vous pouvez inclure des liens vers le tableau de bord dans les signets, les runbooks ou la documentation de réponse aux incidents.

### Instantanés
<a name="observability-dashboards-sharing-snapshots"></a>

Un instantané capture l'état actuel d'un tableau de bord, y compris toutes les données du panneau, à un moment précis. Les instantanés sont en lecture seule et ne sont pas mis à jour lorsque les données sous-jacentes changent. Utilisez des instantanés pour conserver un enregistrement de l'état du tableau de bord lors d'incidents ou de révisions.

### Définitions d'importation et d'exportation
<a name="observability-dashboards-sharing-import-export"></a>

Vous pouvez exporter une définition de tableau de bord au format JSON et l'importer dans un autre espace de travail ou environnement. Cette approche est utile pour promouvoir les tableaux de bord, du développement à la production, ou pour partager des mises en page standard entre les équipes.

### Bonnes pratiques en matière de partage
<a name="observability-dashboards-sharing-best-practices"></a>
+ **Public** — Concevez des tableaux de bord pour un public spécifique, tel que les ingénieurs sur appel ou les dirigeants.
+ **Concentration** : limitez chaque tableau de bord à un seul objectif ou à un seul flux de travail.
+ **Conventions** : utilisez des conventions de dénomination cohérentes pour les tableaux de bord et les panneaux de votre organisation.
+ **Contrôle de version** : exportez les définitions JSON du tableau de bord et stockez-les dans le contrôle de version pour suivre les modifications au fil du temps.

## Tableaux de bord de résolution des problèmes
<a name="observability-dashboards-troubleshooting"></a>

Cette section décrit les problèmes courants liés au tableau de bord et explique comment les résoudre.

### Aucune donnée dans un panneau
<a name="observability-dashboards-troubleshooting-no-data"></a>

Si un panneau n'affiche aucune donnée, vérifiez les causes courantes suivantes.


| Cause | Check | Corriger | 
| --- | --- | --- | 
| Plage de temps trop étroite | Vérifiez que la plage horaire du tableau de bord couvre la période pendant laquelle les données ont été ingérées. | Élargissez la plage horaire ou sélectionnez Dernières 24 heures. | 
| Filtre actif excluant les données | Consultez la barre de filtre pour détecter les filtres susceptibles d'exclure tous les documents correspondants. | Supprimez ou ajustez le filtre, puis vérifiez que les données apparaissent. | 
| Modèle d'index incorrect | Vérifiez que la source de données du panneau pointe vers un index contenant des données. | Mettez à jour la source de données selon le modèle d'index correct dans l'éditeur de panneaux. | 
| Erreur de syntaxe de requête | Recherchez les messages d'erreur dans l'en-tête du panneau ou dans l'éditeur de requêtes. | Corrigez la syntaxe PPL ou ProMQL et réexécutez la requête. | 

### Données erronées dans un panneau
<a name="observability-dashboards-troubleshooting-wrong-data"></a>

Si un panneau affiche des résultats inattendus, essayez les étapes suivantes.
+ Vérifiez que la requête renvoie les champs attendus en l'exécutant d'abord dans Discover.
+ Vérifiez que le type de visualisation correspond à la forme des données (par exemple, utilisez un graphique linéaire pour les données chronologiques).
+ Vérifiez que la bonne source de données est sélectionnée dans l'éditeur de panneaux.

### Données périmées
<a name="observability-dashboards-troubleshooting-stale-data"></a>

Si les panneaux du tableau de bord affichent des informations obsolètes, essayez les étapes suivantes.
+ Cliquez sur l'icône d'actualisation dans la barre d'outils pour actualiser manuellement tous les panneaux.
+ Vérifiez que l'actualisation automatique est activée et définie sur un intervalle approprié.
+ Vérifiez que votre pipeline d'ingestion envoie activement des données aux index configurés.

### Problèmes de performance
<a name="observability-dashboards-troubleshooting-performance"></a>

Les conseils suivants peuvent vous aider à résoudre les problèmes de performances courants.
+ **Tableau de bord lent** : réduisez le nombre de panneaux ou réduisez la plage de temps. Les tableaux de bord comportant de nombreux panneaux exécutent plusieurs requêtes simultanément, ce qui peut augmenter les temps de chargement.
+ **Panneau lent** : simplifiez la requête du panneau. Évitez d'utiliser des modèles génériques dans les `where` clauses PPL et limitez le nombre de compartiments d'agrégation.
+ **Latence du navigateur** : réduisez la densité des données dans les visualisations. Par exemple, augmentez l'intervalle de temps dans `stats` les commandes pour produire moins de points de données.

### Problèmes liés au filtre
<a name="observability-dashboards-troubleshooting-filters"></a>

Si les filtres ne se comportent pas comme prévu, essayez les étapes suivantes.
+ Vérifiez que le nom du champ dans le filtre correspond au nom du champ dans le mappage d'index.
+ Vérifiez si un filtre épinglé provenant d'un autre tableau de bord affecte les résultats.
+ Supprimez tous les filtres et ajoutez-les un par un pour isoler le problème.

### Inspecter un panneau
<a name="observability-dashboards-troubleshooting-inspect"></a>

L'inspecteur du panneau vous aide à résoudre les problèmes liés aux données et aux requêtes. Pour ouvrir l'inspecteur, choisissez le menu du panneau (trois points) et sélectionnez **Inspecter**. L'inspecteur fournit les onglets suivants.
+ **Données** : affiche les données brutes renvoyées par la requête sous forme de tableau.
+ **Demande** — Affiche la requête envoyée à la source de données, y compris l'instruction PPL ou ProMQL complète.
+ **Réponse** : affiche la réponse brute de la source de données, y compris les informations de chronologie et d'état.

### Outils de développement de navigateurs
<a name="observability-dashboards-troubleshooting-browser"></a>

Pour un dépannage avancé, utilisez les outils de développement de votre navigateur pour inspecter les requêtes réseau. Ouvrez l'onglet **Réseau**, filtrez les appels d'API et recherchez les demandes ayant échoué ou les réponses lentes. Vérifiez que le corps de la réponse ne contient pas de messages d'erreur susceptibles de vous aider à identifier la cause première.

# Surveillance des applications
<a name="observability-app-monitoring"></a>

La surveillance des applications fournit une vue en temps réel des performances de vos services. Il combine les données topologiques stockées OpenSearch avec les métriques RED des séries chronologiques (taux, erreurs, durée) d'Amazon Managed Service for Prometheus pour faire apparaître des informations sur l'état, la latence, le débit et les erreurs sur l'ensemble de votre système distribué.

Pour accéder à la surveillance des applications, dans l' OpenSearch interface utilisateur, accédez à **Observabilité** > **Surveillance des applications**. La barre latérale affiche deux vues :
+ **Carte des applications** : graphe topologique interactif des dépendances des services
+ **Services** — Catalogue de tous les services instrumentés avec filtrage, vues détaillées et liens de corrélation

## Conditions préalables
<a name="observability-app-monitoring-prereqs"></a>

Avant de pouvoir utiliser la surveillance des applications, les ressources suivantes doivent être configurées.
+ [Données de suivi OTLP transmises par vos OTel collecteurs à OpenSearch Ingestion](observability-ingestion.md) (les métriques et les journaux sont facultatifs)
+ [Amazon Managed Service pour Prometheus configuré pour recevoir une écriture à distance depuis Ingestion OpenSearch ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configure-client-prometheus.html)
+ Un espace de travail d' OpenSearch interface utilisateur avec Observability activée

## Comment ça marche
<a name="observability-app-monitoring-how-it-works"></a>

Le schéma suivant montre l' end-to-endarchitecture de surveillance des applications.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/otel-sdk-service.png)


1. Vos applications et votre infrastructure transmettent la télémétrie au Collector par OpenTelemetry SDKs le biais de l'instrumentation automatique ou de l' OTel API. OTel

1. Le OTel collecteur transmet les données de suivi à OpenSearch Ingestion via OTLP.

1. Le `otel_apm_service_map` processeur OpenSearch d'ingestion extrait service-to-service les relations et calcule les métriques RED.

1. La topologie et les données de trace brutes sont indexées dans. OpenSearch Les métriques RED sont exportées vers Amazon Managed Service for Prometheus par écriture à distance.

1. OpenSearch L'interface utilisateur interroge les deux magasins pour afficher la carte des applications, le catalogue des services et les vues détaillées des services.

## Services
<a name="observability-app-services"></a>

La vue Services fournit un catalogue centralisé de tous les services instrumentés, affichant les métriques RED (taux, erreurs, durée) en un coup d'œil. Vous pouvez utiliser cette vue pour identifier rapidement les services défaillants et examiner les vues détaillées pour une analyse plus approfondie.

**Pour accéder à la vue Services, accédez à l'espace de travail Observability dans l' OpenSearch interface utilisateur et choisissez **APM** > Services.**

La page d'accueil des services affiche un tableau de tous les services instrumentés ainsi que des panneaux récapitulatifs. L'image suivante montre la page d'accueil des services.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/apm/services-home.png)


Le tableau suivant décrit les colonnes du tableau des services.


| Colonne | Description | 
| --- | --- | 
| Nom du service | Nom du service instrumenté. | 
| Latence P99 | 99e percentile de latence du service. | 
| Latence P90 | Le 90e percentile de latence du service. | 
| Latence P50 | Le 50e percentile (médiane) de latence du service. | 
| Total requests (Nombre total de requêtes) | Nombre total de demandes traitées pendant la période sélectionnée. | 
| Taux de défaillance | Le ratio de demandes ayant échoué par rapport au nombre total de demandes. | 
| Environnement | L'environnement de déploiement du service, tel que production oustaging. | 

La page d'accueil inclut également les panneaux de synthèse suivants :
+ **Principaux services par taux de défaillance** : services ayant le pourcentage le plus élevé de réponses 5xx.
+ **Principaux chemins de dépendance par taux de défaillance** : chemins de Service-to-service dépendance présentant les taux de défaillance les plus élevés.

Vous pouvez filtrer le tableau des services à l'aide des filtres suivants :
+ **Environnement** : filtrez par environnement de déploiement.
+ **Latence** — Filtrez par plage de latence.
+ **Débit** : filtrez par plage de débit des demandes.
+ **Taux de défaillance** — Filtrez par plage de taux de défaillance.

### Aperçu du service
<a name="observability-app-services-overview"></a>

Pour ouvrir la vue détaillée du service, sélectionnez un nom de service dans le tableau des services. L'onglet Vue d'ensemble affiche des vignettes métriques et des diagrammes de séries chronologiques pour le service sélectionné.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/apm/services-overview.png)


L'onglet Vue d'ensemble inclut les diagrammes chronologiques suivants :
+ **Latence par dépendances de service** : latence P50, P90 et P99 ventilée par dépendances en aval.
+ **Demandes par opérations** : volume de demandes pour chaque opération du service.
+ **Disponibilité par opération** — Pourcentage de réponses réussies pour chaque opération.
+ **Taux de défaillance et taux d'erreur par opération** — Pourcentage de réponses 5xx et 4xx pour chaque opération.

### Opérations
<a name="observability-app-services-operations"></a>

L'onglet Opérations fournit une ventilation par opération pour le service sélectionné. Vous pouvez trier le tableau selon n'importe quelle colonne pour identifier les opérations problématiques.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/apm/service-operations.png)


Le tableau suivant décrit les colonnes du tableau des opérations.


| Colonne | Description | 
| --- | --- | 
| Nom de l’opération | Nom de l'opération. | 
| Latence P50/P90/P99 | Les 50e, 90e et 99e percentiles de latence de l'opération. | 
| Total requests (Nombre total de requêtes) | Nombre total de demandes pour l'opération pendant la période sélectionnée. | 
| Taux d'erreur | Pourcentage de demandes ayant renvoyé des erreurs. | 
| Disponibilité | Pourcentage de réponses réussies pour l'opération. | 

### Dépendances
<a name="observability-app-services-dependencies"></a>

L'onglet Dépendances affiche les services en aval que le service sélectionné appelle.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/apm/service-dependencies.png)


Le tableau suivant décrit les colonnes du tableau des dépendances.


| Colonne | Description | 
| --- | --- | 
| Service de dépendance | Nom du service en aval. | 
| Fonctionnement à distance | L'opération a fait appel au service en aval. | 
| Opérations de service | Les opérations sur le service actuel qui appellent cette dépendance. | 
| Latence P99/P90/P50 | Les 99e, 90e et 50e percentiles de latence pour le chemin de dépendance. | 
| Total requests (Nombre total de requêtes) | Nombre total de demandes adressées à la dépendance pendant la période sélectionnée. | 
| Taux d'erreur | Pourcentage de demandes adressées à la dépendance qui ont renvoyé des erreurs. | 
| Disponibilité | Pourcentage de réponses positives provenant de la dépendance. | 

### Corrélations
<a name="observability-app-services-correlations"></a>

La vue détaillée du service fournit des corrélations contextuelles qui vous permettent de naviguer directement entre les métriques de service et les traces et journaux associés. Vous pouvez utiliser des corrélations pour rechercher la cause première des pics de latence ou de l'augmentation du taux d'erreur.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/apm/service-span-correlations.png)


Les options de corrélation suivantes sont disponibles :
+ **Afficher les traces associées** : ouvre une vue de trace filtrée pour le service ou l'opération sélectionné.
+ **Afficher les journaux associés** : ouvre une vue des journaux filtrée pour le service ou l'opération sélectionné.
+ **Filtrer par attributs** : restreint les résultats de corrélation en fonction d'attributs d'étendue spécifiques.

## Carte des applications
<a name="observability-app-map"></a>

La carte des applications est une visualisation topologique interactive qu' OpenSearch Ingestion génère automatiquement à partir de vos données de suivi à l'aide du `otel_apm_service_map` processeur. La carte affiche les services sous forme de nœuds dotés de bords directionnels qui indiquent les modèles de communication, recouverts de métriques RED (débit, erreurs, durée).

Pour accéder à la carte des applications, accédez à l'espace de travail Observabilité dans l' OpenSearch interface utilisateur et choisissez **APM** > Carte des **applications**.

L'image suivante montre la carte des applications.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/apm/application-map.png)


La carte affiche les métriques RED suivantes pour chaque service :
+ **Taux** — Demandes par seconde traitées par le service.
+ **Erreurs** — Pourcentage de réponses 4xx et 5xx.
+ **Durée** — Latence P50 et P99 pour le service.

Le `otel_apm_service_map` processeur génère ces métriques et les stocke dans Amazon Managed Service for Prometheus via une écriture à distance.

La visualisation de la topologie représente les services sous forme de nœuds et la direction de communication sous forme d'arêtes. Le code couleur indique l'état de santé de chaque service. La carte est automatiquement mise à jour lorsque OpenSearch Ingestion ingère de nouvelles données de suivi.

### Services de regroupement
<a name="observability-app-map-groupby"></a>

Vous pouvez regrouper les services par attributs tels que le langage de programmation, l'équipe ou l'environnement. Lorsque vous sélectionnez un attribut de regroupement, la carte passe d'un graphe topologique à une vue en grille de cartes. Chaque carte représente un groupe de services partageant la même valeur d'attribut.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/apm/groupby-attributes.png)


Les attributs de regroupement disponibles sont déterminés par le `group_by_attributes` paramètre de configuration du `otel_apm_service_map` processeur dans Ingestion. OpenSearch 

### Afficher les détails du nœud
<a name="observability-app-map-node-details"></a>

Pour afficher les détails d'un service, sélectionnez un nœud sur la carte. Un panneau de détails s'ouvre avec les sections suivantes.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/apm/application-map-node-details.png)


La section **Health** affiche les statistiques récapitulatives suivantes :
+ Total Requests
+ Nombre total d'erreurs 4xx
+ Nombre total de défauts 5xx

La section **Métriques** affiche les diagrammes chronologiques suivants :
+ Requêtes
+ Latence P50/P90/P99
+ Défauts 5xx
+ Erreurs 4xx

Choisissez **Afficher les détails** pour accéder à la vue détaillée des services pour le service sélectionné.

### Filtrer la carte
<a name="observability-app-map-filters"></a>

Vous pouvez filtrer la carte des applications à l'aide des filtres suivants :
+ **Taux de défaillance** : filtrez les services par taux de défaillance côté serveur (5xx).
+ **Taux d'erreur** — Filtrez les services en fonction du taux d'erreur côté client (4xx).
+ **Environnement** : filtrez les services par environnement de déploiement.

L'image suivante montre la carte filtrée par taux d'erreur.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/apm/filter-by-error-rate.png)


### Corrélations contextuelles
<a name="observability-app-map-correlations"></a>

Vous pouvez accéder directement à la vue topologique aux traces et journaux associés. À partir de n'importe quel nœud de service, les options de corrélation suivantes sont disponibles :
+ **Afficher les traces associées** : ouvre une vue de trace filtrée pour le service sélectionné.
+ **Afficher les journaux associés** : ouvre une vue des journaux filtrée pour le service sélectionné.

# Observabilité de l'IA
<a name="observability-ai"></a>

L'observabilité de l'IA OpenSearch fournit des end-to-end outils pour surveiller, déboguer et optimiser les flux de travail des agents d'IA et des grands modèles linguistiques (LLM). Construit sur les conventions sémantiques de GenAI et intégré nativement à OpenTelemetry (OTel), il vous donne une visibilité complète sur le comportement de vos applications d'IA en production.

L'observabilité de l'IA inclut les fonctionnalités suivantes :
+ **Suivi des agents** : capturez les traces d'exécution hiérarchiques à travers les étapes d'orchestration des agents, les appels LLM, les invocations d'outils et les opérations de récupération.
+ **Conventions sémantiques GenAI** — Utilisez des OTel attributs standardisés tels que `gen_ai.system``gen_ai.request.model`, et `gen_ai.usage.input_tokens` pour décrire la télémétrie spécifique à l'IA.
+ **Instrumentation automatique** — Capturez automatiquement les traces provenant de frameworks et de fournisseurs d'IA populaires, notamment OpenAI, Anthropic, Amazon LangChain Bedrock et de plus de 20 bibliothèques supplémentaires.
+ Requête **PPL — Interrogez** et agrégez les données de trace à l'aide du langage PPL (Piped Processing Language) directement depuis l'interface utilisateur. OpenSearch 

## Prise en main
<a name="observability-ai-getting-started"></a>

Cette section explique comment instrumenter un agent d'intelligence artificielle, envoyer des traces à Amazon OpenSearch Service et les afficher dans l' OpenSearch interface utilisateur.

### Pour installer le SDK
<a name="observability-ai-install-sdk"></a>

Installez le package d'instrumentation OpenTelemetry GenAI :

```
pip install opentelemetry-instrumentation-openai-v2 opentelemetry-sdk opentelemetry-exporter-otlp
```

### Pour instrumenter votre code d'agent
<a name="observability-ai-instrument"></a>

L'exemple suivant montre comment enregistrer le OTel SDK, annoter les fonctions de votre agent avec le `@observe` décorateur et enrichir les intervalles avec les attributs GenAI.

```
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter

# Register the tracer provider
provider = TracerProvider()
processor = BatchSpanProcessor(
    OTLPSpanExporter(endpoint="<your-osis-endpoint>")  # Use your OpenSearch Ingestion endpoint with SigV4
)
provider.add_span_processor(processor)
trace.set_tracer_provider(provider)

tracer = trace.get_tracer(__name__)

# Decorate your agent function
@observe
def run_agent(prompt: str):
    with tracer.start_as_current_span("invoke_agent") as span:
        span.set_attribute("gen_ai.operation.name", "invoke_agent")
        span.set_attribute("gen_ai.system", "openai")
        span.set_attribute("gen_ai.request.model", "gpt-4")

        # Enrich with token usage after the LLM call
        response = call_llm(prompt)
        span.set_attribute("gen_ai.usage.input_tokens", response.input_tokens)
        span.set_attribute("gen_ai.usage.output_tokens", response.output_tokens)
        return response
```

**Note**  
Lorsque vous envoyez des traces à Amazon OpenSearch Service, utilisez le point de terminaison de votre pipeline OpenSearch d'ingestion avec l'authentification Sigv4 au lieu d'un point de terminaison localhost. Pour plus d'informations sur la configuration des pipelines OpenSearch d'ingestion, consultez[Présentation d'Amazon OpenSearch Ingestion](ingestion.md).

### Pour afficher les traces dans l' OpenSearch interface utilisateur
<a name="observability-ai-view-traces"></a>

Une fois que votre application instrumentée a envoyé des données de trace, vous pouvez les explorer dans l' OpenSearch interface utilisateur. Dans votre espace de travail d'observabilité, développez **Discover** dans le menu de navigation de gauche et choisissez **Agent Traces**.

## Interface utilisateur de suivi des agents
<a name="observability-ai-agent-tracing"></a>

La page Agent Traces de l' OpenSearch interface utilisateur fournit une interface spécialement conçue pour explorer, déboguer et surveiller les traces d'exécution des agents LLM. Il offre aux développeurs et aux opérateurs de plateformes une observabilité totale dans les applications d'IA agentic, notamment des vues de trace hiérarchiques, des plans détaillés, des visualisations de flux et des métriques agrégées.

### Architecture
<a name="observability-ai-architecture"></a>

Le schéma suivant montre le flux de données des applications instrumentées vers l'interface utilisateur d'Agent Traces :

```
LLM Application (with OTel SDK + GenAI instrumentation)
    |
    |  OTLP (gRPC/HTTP)
    v
OTel Collector (batch, transform)
    |
    +---- OTLP ----> OpenSearch Ingestion --> OpenSearch (otel-v1-apm-span-*)
    |
    +---- Prometheus Remote Write --> Prometheus (metrics)
                                          |
                                          v
                              OpenSearch UI
                              +-- Agent Traces Plugin
```

### Conditions préalables
<a name="observability-ai-prereqs"></a>

Avant d'utiliser Agent Traces, assurez-vous de disposer des éléments suivants :
+ Un OpenSearch cluster avec des données de trace indexées sous forme d'`otel-v1-apm-span-*`index.
+ OpenTelemetry instrumentation avec les conventions sémantiques GenAI activées dans votre application LLM.
+ OpenSearch L'ingestion est configurée avec le `otel_trace_raw` processeur dans lequel ingérer les spans. OpenSearch
+ Le support des requêtes PPL est activé dans l' OpenSearch interface utilisateur.

### Attributs d'envergure requis
<a name="observability-ai-span-attributes"></a>

Agent Traces nécessite des attributs d'étendue spécifiques pour afficher correctement les données de trace. Les tableaux suivants décrivent les principaux champs et les attributs spécifiques à GENAI.

**Champs d'envergure principaux**  
Chaque intervalle doit inclure les champs principaux suivants :


| Champ | Type | Description | 
| --- | --- | --- | 
| traceId | String | Identifiant unique pour l'ensemble de la trace. | 
| spanId | String | Identifiant unique pour cette période. | 
| parentSpanId | String | Identifiant de l'intervalle parent. Vide pour l'étendue des racines. | 
| startTime | Horodatage | Heure à laquelle le span a commencé. | 
| endTime | Horodatage | Heure à laquelle le délai s'est terminé. | 
| durationInNanos | Long | Durée de l'intervalle en nanosecondes. | 
| status.code | Entier | Code d'état Span (0 = non défini, 1 = OK, 2 = erreur). | 

**Attributs GenAI**  
Les `gen_ai.*` attributs suivants activent des fonctionnalités spécifiques à l'IA dans l'interface utilisateur d'Agent Traces :


| Attribut | Exemple de valeur | Description | 
| --- | --- | --- | 
| gen\$1ai.operation.name | chat | Type d'opération GenAI. Détermine la catégorie d'intervalle. | 
| gen\$1ai.system | openai | Le système ou le fournisseur d'IA. | 
| gen\$1ai.request.model | gpt-4 | Modèle utilisé pour la demande. | 
| gen\$1ai.usage.input\$1tokens | 150 | Nombre de jetons d'entrée consommés. | 
| gen\$1ai.usage.output\$1tokens | 85 | Nombre de jetons de sortie générés. | 
| gen\$1ai.response.finish\$1reasons | ["stop"] | Raisons pour lesquelles le modèle a cessé de générer. | 

### Mise en page et barre de mesures
<a name="observability-ai-page-layout"></a>

La page Agent Traces affiche une barre de mesures en haut qui résume les statistiques clés de toutes les traces visibles. Les mesures incluent le nombre total de traces, la durée moyenne, le taux d'erreur et l'utilisation des jetons. Ces valeurs sont mises à jour dynamiquement en fonction de votre filtre temporel et de votre requête.

### Onglet Traces
<a name="observability-ai-traces-tab"></a>

L'onglet Traces répertorie toutes les traces de l'agent racine correspondant à votre requête et à votre plage de temps actuelles. Chaque ligne représente une invocation d'agent unique.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/agent-traces/traces-table.png)


Le tableau suivant décrit les colonnes du tableau des traces :


| Colonne | Description | 
| --- | --- | 
| ID de trace | Identifiant unique de la trace. Cliquez sur le lien pour ouvrir le menu déroulant des détails du suivi. | 
| Nom de l'agent | Nom de l'agent qui a initié le traçage. | 
| Statut | État général du suivi (OK ou Erreur). | 
| Duration | Temps total entre le premier intervalle et le dernier intervalle de la trace. | 
| Spans | Nombre total de travées dans le tracé. | 
| Jetons d’entrée | Total des jetons d'entrée consommés pour tous les appels LLM de la trace. | 
| Jetons de sortie | Total des jetons de sortie générés pour tous les appels LLM de la trace. | 
| L’heure de début | Horodatage du début du traçage. | 

### Catégories Span
<a name="observability-ai-span-categories"></a>

Les travées sont classées en fonction de l'`gen_ai.operation.name`attribut. Chaque catégorie est affichée avec une couleur et une icône uniques dans l'interface utilisateur.


| Nom de l’opération | Catégorie | Description | 
| --- | --- | --- | 
| invoke\$1agent, create\$1agent | Agent | Étape d'orchestration de l'agent. | 
| chat | LLM | Appel de fin de chat LLM. | 
| text\$1completion, generate\$1content | Contenu | Opération de génération de texte. | 
| execute\$1tool | Outil | Invocation d'outils. | 
| embeddings | Intégrations | Intégration de la génération. | 
| retrieval | Récupération | Opération de récupération des données. | 

### Onglet Spans
<a name="observability-ai-spans-tab"></a>

L'onglet Spans affiche des travées individuelles sur toutes les traces. Vous pouvez filtrer et trier les intervalles pour trouver des opérations spécifiques.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/images/agent-traces/spans-table.png)


### Dépliant des détails du suivi
<a name="observability-ai-trace-details"></a>

Lorsque vous choisissez un identifiant de trace, un panneau déroulant s'ouvre avec deux zones principales :
+ **Panneau de gauche** — Affiche l'arbre de suivi, qui montre les relations hiérarchiques parent-enfant entre les travées. Il inclut également un DAG de flux (graphe acyclique dirigé) qui permet de visualiser le chemin d'exécution de l'agent.
+ **Panneau de droite** : contient deux onglets. L'onglet **Détail** affiche les attributs de span, les attributs de ressources et les métadonnées spécifiques à Genai. L'onglet **Chronologie** affiche un graphique en cascade des durées et de leurs relations temporelles.

### Interrogation de traces
<a name="observability-ai-querying"></a>

Agent Traces utilise le langage PPL (Piped Processing Language) pour toutes les opérations de récupération de données. Vous pouvez écrire des requêtes dans le panneau de requêtes en haut de la page.

**Pour répertorier les traces des racines**  
La requête suivante renvoie les 100 traces les plus récentes de l'agent racine :

```
source = otel-v1-apm-span-*
| where parentSpanId = "" AND isnotnull(`attributes.gen_ai.operation.name`)
| sort - startTime
| head 100
```

**Pour récupérer tous les intervalles d'une trace**  
La requête suivante renvoie l'arborescence complète d'une trace spécifique :

```
source = otel-v1-apm-span-*
| where traceId = "trace-id"
| head 1000
```

**Pour calculer des métriques agrégées**  
La requête suivante calcule la durée moyenne et l'utilisation totale des jetons regroupés par modèle :

```
source = otel-v1-apm-span-*
| where isnotnull(`attributes.gen_ai.request.model`)
| stats avg(durationInNanos) as avg_duration,
        sum(`attributes.gen_ai.usage.input_tokens`) as total_input_tokens,
        sum(`attributes.gen_ai.usage.output_tokens`) as total_output_tokens
    by `attributes.gen_ai.request.model`
```