

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.

# Intégration CloudWatch des métriques à Amazon Managed Service pour Prometheus
<a name="integrating-cw-firehose"></a>

Il peut être utile d'avoir tous vos indicateurs au même endroit. Amazon Managed Service for Prometheus n'ingère pas automatiquement les métriques Amazon. CloudWatch Cependant, vous pouvez utiliser Amazon Data Firehose pour envoyer des CloudWatch métriques AWS Lambda à Amazon Managed Service for Prometheus.

Cette section explique comment instrumenter un [flux de CloudWatch métriques Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html), utiliser [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) et [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)intégrer des métriques dans Amazon Managed Service for Prometheus.

Vous allez configurer une pile à l'aide [du AWS Cloud Development Kit (CDK)](https://aws.amazon.com/cdk/) pour créer un Firehose Delivery Stream, un Lambda et un bucket Amazon S3 afin de présenter un scénario complet.

## Infrastructure
<a name="integ-cw-fh-infrastructure"></a>

La première chose à faire est de configurer l’infrastructure pour cette recette. 

CloudWatch les flux métriques permettent de transférer les données métriques de streaming vers un point de terminaison HTTP ou un compartiment [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html).

La mise en place de l’infrastructure se fait 4 étapes :
+ Configuration des prérequis
+ Création d’un espace de travail Amazon Managed Service for Prometheus
+ Installation des dépendances
+ Déploiement de la pile

**Prérequis**
+ Le AWS CLI est [installé](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) et [configuré](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) dans votre environnement.
+ Le [TypeScript AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-typescript.html) est installé dans votre environnement.
+ Node.js et Go sont installés dans votre environnement.
+ L'[exportateur de CloudWatch métriques AWS d'observabilité github repository](https://github.com/aws-observability/observability-best-practices/tree/main/sandbox/CWMetricStreamExporter) (`CWMetricsStreamExporter`) a été cloné sur votre machine locale.

**Pour créer un espace de travail Amazon Managed Service for Prometheus**

1. L’application de démonstration présentée dans cette recette sera exécutée sur Amazon Managed Service for Prometheus. Créez votre espace de travail Amazon Managed Service for Prometheus à l’aide de la commande suivante :

   ```
   aws amp create-workspace --alias prometheus-demo-recipe
   ```

1. Assurez-vous que votre espace de travail a été créé à l’aide de la commande suivante :

   ```
   aws amp list-workspaces
   ```

   Pour plus d’informations sur Amazon Managed Service for Prometheus consultez le Guide l’utilisateur [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-getting-started.html).

**Pour installer les dépendances du kit**

1. **Installation des dépendances**

   À la racine du référentiel `aws-o11y-recipes`, remplacez votre répertoire par `CWMetricStreamExporter` à l’aide de la commande suivante :

   ```
   cd sandbox/CWMetricStreamExporter
   ```

   Ce sera désormais la racine du référentiel.

1. Remplacez le répertoire `/cdk` à l’aide de la commande suivante :

   ```
   cd cdk
   ```

1. Installez les dépendances CDK à l’aide de la commande suivante :

   ```
   npm install
   ```

1. Revenez au répertoire à la racine du référentiel, puis remplacez le répertoire par `/lambda` à l’aide de la commande suivante :

   ```
   cd lambda
   ```

1. Dans le dossier `/lambda`, installez les dépendances Go en utilisant :

   ```
   go get
   ```

   Toutes les dépendances sont désormais installées.

**Pour déployer la pile**

1. À la racine du référentiel, ouvrez `config.yaml` et modifiez l’URL de l’espace de travail Amazon Managed Service for Prometheus en remplaçant `{workspace}` par l’ID du nouvel espace de travail, ainsi que la région dans laquelle se trouve votre espace de travail Amazon Managed Service for Prometheus.

   Par exemple, effectuez la modification suivante :

   ```
   AMP: 
       remote_write_url: "https://aps-workspaces.us-east-2.amazonaws.com/workspaces/{workspaceId}/api/v1/remote_write" 
       region: us-east-2
   ```

   Modifiez les noms du flux de diffusion Firehose et du compartiment Amazon S3 à votre guise.

1. Pour créer le code Lambda AWS CDK et le code Lambda, exécutez la recommandation suivante à la racine du dépôt :

   ```
   npm run build
   ```

   Cette étape de génération garantit que le binaire Go Lambda est créé et déploie le CDK sur. CloudFormation

1. Pour terminer le déploiement, passez en revue et acceptez les modifications IAM requises par la pile.

1. (Facultatif) Vous pouvez vérifier que la pile a été créée en exécutant la commande suivante.

   ```
   aws cloudformation list-stacks
   ```

   Une pile nommée `CDK Stack` figurera dans la liste.

## Création d'un CloudWatch stream Amazon
<a name="integ-cw-fh-stream"></a>

Maintenant que vous disposez d'une fonction lambda pour gérer les métriques, vous pouvez créer le flux de métriques depuis Amazon CloudWatch.

**Pour créer un flux CloudWatch de statistiques**

1. **Accédez à la CloudWatch console, à https://console.aws.amazon.com/cloudwatch/ l'adresse [\$1metric -streams:StreamsList](https://console.aws.amazon.com/cloudwatch/home#metric-streams:streamsList), puis sélectionnez Créer un flux métrique.**

1. Sélectionnez les métriques requises, toutes les métriques ou uniquement celles des espaces de noms sélectionnés.

1. Sous `Configuration`, choisissez **Sélectionner un Firehose existant appartenant à votre compte**.

1. Vous utiliserez le flux Firehose créé précédemment par CDK. Dans le menu déroulant **Sélectionner votre flux Kinesis Data Firehose**, sélectionnez le flux créé précédemment. Il aura un nom tel que `CdkStack-KinesisFirehoseStream123456AB-sample1234`.

1. Modifiez le format de sortie en **JSON**.

1. Donnez au flux de métriques un nom significatif.

1. Choisissez **Créer un flux de métriques**.

1. (Facultatif) Pour vérifier l’invocation de la fonction Lambda, accédez à la [console Lambda](https://console.aws.amazon.com/lambda/home) et choisissez la fonction `KinesisMessageHandler`. Sélectionnez l’onglet **Surveiller** et le sous-onglet **Journaux**. Des entrées de la fonction Lambda devraient être déclenchées dans **Invocations récentes**.
**Note**  
Il peut s’écouler jusqu’à 5 minutes avant que les invocations ne commencent à s’afficher dans l’onglet **Surveiller**.

Vos statistiques sont désormais diffusées d'Amazon CloudWatch vers Amazon Managed Service for Prometheus.

## Nettoyage
<a name="integ-cw-fh-cleanup"></a>

Vous pouvez nettoyer les ressources qui ont été utilisées dans cet exemple. La procédure suivante explique comment procéder. Elle permettra d’arrêter le flux de métriques que vous avez créé.

**Pour nettoyer des ressources**

1. Commencez par supprimer la CloudFormation pile à l'aide des commandes suivantes :

   ```
   cd cdk
   cdk destroy
   ```

1. Supprimer l’espace de travail Amazon Managed Service for Prometheus :

   ```
   aws amp delete-workspace --workspace-id \
       `aws amp list-workspaces --alias prometheus-sample-app --query 'workspaces[0].workspaceId' --output text`
   ```

1. Enfin, supprimez le flux CloudWatch métrique Amazon à l'aide de la [ CloudWatch console Amazon](https://console.aws.amazon.com/cloudwatch/home#metric-streams:streamsList).