

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.

# Interrogation de métriques d’autres sources de données
<a name="MultiDataSourceQuerying"></a>

Vous pouvez l'utiliser CloudWatch pour interroger, visualiser et créer des alarmes pour les métriques provenant d'autres sources de données. Pour ce faire, vous devez vous connecter CloudWatch aux autres sources de données. Vous bénéficiez ainsi d'une expérience de surveillance unique et consolidée au sein de la CloudWatch console. Vous pouvez bénéficier d’une vue unifiée des indicateurs de votre infrastructure et de vos applications, quel que soit l’endroit où les données sont stockées, ce qui vous permet d’identifier et de résoudre les problèmes plus rapidement. 

Après vous être connecté à une source de données à l'aide d'un CloudWatch assistant, il CloudWatch crée une AWS CloudFormation pile qui déploie et configure une AWS Lambda fonction. Cette fonction Lambda s’exécute à la demande chaque fois que vous interrogez la source de données. Le générateur de CloudWatch requêtes affiche en temps réel une liste d'éléments pouvant être interrogés, tels que des métriques, des tables, des champs ou des étiquettes. Lorsque vous faites des choix, le générateur de requêtes préremplit une requête dans la langue native de la source sélectionnée. 

CloudWatch fournit des assistants guidés vous permettant de vous connecter aux sources de données suivantes. Pour ces sources de données, vous fournissez des informations de base pour identifier la source de données et les informations d’identification. Vous pouvez également créer manuellement des connecteurs à d’autres sources de données en créant vos propres fonctions Lambda.
+ Amazon OpenSearch Service : obtenez des métriques à partir des journaux et des traces de votre OpenSearch service.
+ Amazon Managed Service for Prometheus : interrogez ces métriques à l’aide de PromQL.
+ Amazon RDS for MySQL : utilisez SQL pour convertir les données stockées dans vos tables Amazon RDS en métriques.
+ Amazon RDS for PostgreSQL : utilisez SQL pour convertir les données stockées dans vos tables Amazon RDS en métriques.
+ Fichiers CSV Amazon S3 : affiche les données des métriques d’un fichier CSV stocké dans un compartiment Amazon S3.
+ Microsoft Azure Monitor : interrogez les métriques depuis votre compte Microsoft Azure Monitor.
+ Prometheus : interrogez ces métriques à l’aide de PromQL.

Après avoir créé des connecteurs vers des sources de données, veuillez consulter la rubrique [Création d’un graphique de mesures à partir d’une autre source de données](graph_a_metric.md#create-metric-graph-multidatasource) pour plus d’informations sur la représentation graphique d’une métrique à partir d’une source de données. Pour plus d’informations sur le réglage d’une alarme sur une métrique provenant d’une source de données, veuillez consulter al rubrique [Création d’une alarme basée sur une source de données connectée](Create_MultiSource_Alarm.md).

**Topics**
+ [Gestion de l’accès aux sources de données](CloudWatch_MultiDataSources_Permissions.md)
+ [Connexion à une source de données prédéfinie à l’aide d’un assistant](CloudWatch_MultiDataSources-Connect.md)
+ [Création d’un connecteur personnalisé à une source de données](CloudWatch_MultiDataSources-Connect-Custom.md)
+ [Utilisation de votre source de données personnalisée](CloudWatch_MultiDataSources-Custom-Use.md)
+ [Suppression d’un connecteur à une source de données](CloudWatch_MultiDataSources-Delete.md)

# Gestion de l’accès aux sources de données
<a name="CloudWatch_MultiDataSources_Permissions"></a>

 CloudWatch utilise CloudFormation pour créer les ressources requises dans votre compte. Nous vous recommandons d'utiliser cette `cloudformation:TemplateUrl` condition pour contrôler l'accès aux CloudFormation modèles lorsque vous accordez `CreateStack` des autorisations aux utilisateurs IAM. 

**Avertissement**  
Tout utilisateur auquel vous accordez l’autorisation d’invoquer une source de données peut interroger les métriques de cette source de données même s’il ne dispose pas d’autorisations IAM directes sur la source de données. Par exemple, si vous accordez des autorisations `lambda:InvokeFunction` sur une fonction Lambda de la source de données Amazon Managed Service for Prometheus à un utilisateur, celui-ci pourra interroger les métriques de l’espace de travail Amazon Managed Service for Prometheus correspondant, même si vous ne lui avez pas accordé un accès IAM direct à cet espace de travail.

Vous trouverez un modèle URLs pour les sources de données sur la page **Créer une pile** de la console des CloudWatch paramètres. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCloudFormationCreateStack",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudformation:TemplateUrl": [
                        "https://s3.us-east-1.amazonaws.com/amzn-s3-demo-bucket/template.json"
                    ]
                }
            }
        }
    ]
}
```

------

Pour plus d'informations sur le contrôle CloudFormation d'accès, consultez [Controlling access with AWS Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)

# Connexion à une source de données prédéfinie à l’aide d’un assistant
<a name="CloudWatch_MultiDataSources-Connect"></a>

 Cette rubrique fournit des instructions relatives à l'utilisation de l'assistant pour se connecter CloudWatch aux sources de données suivantes. 
+ Amazon OpenSearch Service
+ Amazon Managed Service for Prometheus
+ Amazon RDS for MySQL
+ Amazon RDS pour PostgreSQL
+ Fichiers CSV Amazon S3
+ Moniteur Microsoft Azure
+ Prometheus

 Les sous-sections de cette rubrique contiennent des précisions sur la gestion et l’interrogation de chacune de ces sources de données. 

**Pour créer un connecteur à une source de données**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, sélectionnez **Settings** (Paramètres).

1. Choisissez l’onglet **Sources de données de métriques**.

1. Choisissez **Create data source**.

1. Sélectionnez la source de votre choix, puis choisissez **Suivant**.

1. Entrez un nom pour la source de données.

1. Saisissez les autres informations requises, en fonction de la source de données que vous avez choisie. Cela peut inclure des informations d’identification pour accéder à la source de données et des informations d’identification de la source de données telles que le nom de l’espace de travail Prometheus, le nom de la base de données ou le nom du compartiment Amazon S3. Pour les AWS services, l'assistant découvre les ressources et les insère dans le menu déroulant de sélection.

   Pour plus de remarques sur la source de données que vous utilisez, veuillez consulter les sections qui suivent cette procédure.

1. Pour vous CloudWatch connecter à la source de données dans un VPC, choisissez **Utiliser un VPC et sélectionnez le VPC** à utiliser. Sélectionnez ensuite le sous-réseau et le groupe de sécurité.

1. Choisissez **Je CloudFormation reconnais pour créer des ressources IAM**. Cette ressource est le rôle d’exécution de la fonction Lambda.

1. Choisissez **Create data source**.

   La nouvelle source que vous venez d'ajouter n'apparaît pas tant que la CloudFormation pile n'a pas fini de la créer. Pour vérifier la progression, vous pouvez choisir **Afficher le statut de ma CloudFormation pile**. Vous pouvez également choisir l’icône d’actualisation pour mettre à jour cette liste.

   Lorsque votre nouvelle source de données s’affiche dans cette liste, elle est prête à être utilisée. Vous pouvez choisir **Requête parmi CloudWatch les métriques** pour commencer à l'interroger. Pour de plus amples informations, veuillez consulter [Création d’un graphique de mesures à partir d’une autre source de données](graph_a_metric.md#create-metric-graph-multidatasource).

## Amazon Managed Service for Prometheus
<a name="MultiDataSources-Amazon_Managed_Prometheus"></a>

**Mise à jour de la configuration de la source de données**
+ Vous pouvez mettre à jour votre source de données manuellement en procédant comme suit :
  + Pour mettre à jour l’ID d’espace de travail Amazon Managed Service for Prometheus, mettez à jour la variable d’environnement `AMAZON_PROMETHEUS_WORKSPACE_ID` de la fonction Lambda du connecteur de source de données.
  + Pour mettre à jour la configuration du VPC, veuillez consulter [Configuration de l’accès au VPC (console)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring) pour plus d’informations. 

**Interrogation de la source de données**
+ Lorsque vous interrogez Amazon Managed Service for Prometheus, après avoir sélectionné la source de données dansl’onglet **Requête multisources** et sélectionné un connecteur Amazon Managed Service for Prometheus, vous pouvez utiliser l’**assistant aux requêtes** pour découvrir les métriques et les étiquettes et fournir des requêtes PromQL simples. Vous pouvez également utiliser l’éditeur de requêtes PromQL pour créer une requête PromQL.
+ Les requêtes multilignes ne sont pas prises en charge par les connecteurs de source de CloudWatch données. Chaque retour à la ligne est remplacé par un espace lorsque la requête est exécutée, ou lorsque vous créez une alarme ou un widget de tableau de bord avec la requête. Dans certains cas, cela peut rendre votre requête non valide. Par exemple, si votre requête contient un commentaire d’une seule ligne, elle ne sera pas valide. Si vous essayez de créer un tableau de bord ou une alarme à l’aide d’une requête multiligne à partir de la ligne de commande ou de l’infrastructure en tant que code, l’API rejettera l’action avec une erreur d’analyse.

## Amazon OpenSearch Service
<a name="MultiDataSources-Amazon_OpenSearch"></a>

**Création d’une source de données**

Si le OpenSearch domaine est activé pour le FGAC, vous devez mapper le rôle d'exécution de la fonction Lambda du connecteur à un utilisateur OpenSearch dans Service. Pour plus d'informations, consultez la section **Associer les utilisateurs aux rôles** dans la section [Gestion des autorisations](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-access-control) dans la documentation du OpenSearch service.

Si votre OpenSearch domaine n'est accessible que dans un Virtual Private Cloud (VPC), vous devez inclure manuellement une nouvelle variable d'environnement dans la fonction Lambda appelée. `AMAZON_OPENSEARCH_ENDPOINT` La valeur de cette variable doit être le domaine racine du OpenSearch point de terminaison. Vous pouvez obtenir ce domaine racine en supprimant `https://` et `<region>.es.amazonaws.com` depuis le point de terminaison de domaine répertorié dans la console OpenSearch de service. Par exemple, si le point de terminaison de votre domaine est `https://sample-domain.us-east-1.es.amazonaws.com`, le domaine racine serait `sample-domain`.

**Mise à jour d’une source de données**
+ Vous pouvez mettre à jour votre source de données manuellement en procédant comme suit :
  + Pour mettre à jour le domaine OpenSearch de service, mettez à jour la variable d'`AMAZON_OPENSEARCH_DOMAIN_NAME`environnement de la fonction Lambda du connecteur de source de données.
  + Pour mettre à jour la configuration du VPC, veuillez consulter [Configuration de l’accès au VPC (console)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring) pour plus d’informations. 

**Interrogation de la source de données**
+ Lorsque vous interrogez OpenSearch Service, après avoir sélectionné la source de données dans l'onglet **Requête multi-sources**, procédez comme suit :
  + Sélectionnez l’index à interroger.
  + Sélectionnez le nom de la métrique (n’importe quel champ numérique du document) et Stat.
  + Sélectionnez l’axe temporel (n’importe quel champ de date dans le document).
  + Sélectionnez les filtres à appliquer (n’importe quel champ de chaîne du document).
  + Choisissez **Requête graphique**.

## Amazon RDS for PostgreSQL et Amazon RDS for MySQL
<a name="MultiDataSources-Amazon_RDS_PostGre_SQL"></a>

**Création d’une source de données**
+ Si votre source de données n’est accessible que dans un VPC, vous devez inclure la configuration VPC du connecteur, comme décrit dans [Connexion à une source de données prédéfinie à l’aide d’un assistant](#CloudWatch_MultiDataSources-Connect). Si la source de données doit se connecter au VPC pour obtenir des informations d’identification, le point de terminaison doit être configuré dans le VPC. Pour plus d'informations, consultez la section [Utilisation d'un point de AWS Secrets Manager terminaison VPC.](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html) 

  En outre, vous devez créer un point de terminaison d’un VPC pour le service Amazon RDS. Pour plus d’informations, consultez [API Amazon RDS et points de terminaison d’un VPC d’interface (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/vpc-interface-endpoints.html).

**Mise à jour d’une source de données**
+ Vous pouvez mettre à jour votre source de données manuellement en procédant comme suit :
  + Pour mettre à jour l’instance de base de données, mettez à jour la variable d’environnement `RDS_INSTANCE` de la fonction Lambda du connecteur de source de données.
  + Pour mettre à jour le nom d’utilisateur et le mot de passe utilisés pour se connecter à Amazon RDS, utilisez AWS Secrets Manager. Vous pouvez trouver l’ARN du secret utilisé pour la source de données dans la variable d’environnement `RDS_SECRET` de la fonction Lambda de la source de données. Pour plus d’informations sur la mise à jour du secret dans AWS Secrets Manager, veuillez consulter la rubrique [Modifier un secret AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html).
  + Pour mettre à jour la configuration du VPC, veuillez consulter [Configuration de l’accès au VPC (console)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring) pour plus d’informations. 

**Interrogation de la source de données**
+ Lorsque vous interrogez Amazon RDS, après avoir sélectionné la source de données dans l’onglet **Requête multisources** et sélectionné un connecteur Amazon RDS, vous pouvez utiliser le découvreur de base de données pour afficher les bases de données, les tables et les colonnes disponibles. Vous pouvez également utiliser l’éditeur SQL pour créer une requête SQL.

  Vous pouvez utiliser les variables suivantes dans la requête :
  + `$start.iso` : l’heure de début au format de date ISO
  + `$end.iso` : l’heure de fin au format de date ISO
  + `$period` : la période sélectionnée en secondes

  Par exemple, vous pouvez effectuer la requête `SELECT value, timestamp FROM table WHERE timestamp BETWEEN $start.iso and $end.iso`
+ Les requêtes multilignes ne sont pas prises en charge par les connecteurs de source de CloudWatch données. Chaque retour à la ligne est remplacé par un espace lorsque la requête est exécutée, ou lorsque vous créez une alarme ou un widget de tableau de bord avec la requête. Dans certains cas, cela peut rendre votre requête non valide. Par exemple, si votre requête contient un commentaire d’une seule ligne, elle ne sera pas valide. Si vous essayez de créer un tableau de bord ou une alarme à l’aide d’une requête multiligne à partir de la ligne de commande ou de l’infrastructure en tant que code, l’API rejettera l’action avec une erreur d’analyse.

**Note**  
Si aucun champ de date n’est trouvé dans les résultats, les valeurs de chaque champ numérique sont additionnées en valeurs uniques et tracées sur l’intervalle de temps spécifié. Si les horodatages ne correspondent pas à la période sélectionnée dans CloudWatch, les données sont automatiquement agrégées en utilisant `SUM` et alignées sur la période en. CloudWatch

## Fichiers CSV Amazon S3
<a name="MultiDataSources-Amazon_S3_CSV"></a>

**Interrogation de la source de données**
+ Lorsque vous interrogez des fichiers CSV Amazon S3, après avoir sélectionné la source de données dans l’onglet **Requête multisources** et sélectionné un connecteur Amazon S3, vous sélectionnez le compartiment et la clé Amazon S3.

  Le format du fichier CSV doit être le suivant :
  + L’horodatage doit être la première colonne.
  + La table doit comporter une ligne d’en-tête. Les en-têtes sont utilisées pour nommer vos statistiques. Le titre de la colonne d’horodatage sera ignoré, seuls les titres des colonnes de métriques sont utilisés.
  + Les horodatages doivent être au format de date ISO.
  + Les métriques doivent être des champs numériques.

  ```
  Timestamp, Metric-1, Metric-2, ...
  ```

  Voici un exemple :    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonCloudWatch/latest/monitoring/CloudWatch_MultiDataSources-Connect.html)

**Note**  
Si aucun horodatage n’est fourni, les valeurs de chaque métrique sont additionnées en valeurs uniques et tracées sur l’intervalle de temps spécifié. Si les horodatages ne correspondent pas à la période sélectionnée dans CloudWatch, les données sont automatiquement agrégées en utilisant `SUM` et alignées sur la période en. CloudWatch

## Moniteur Microsoft Azure
<a name="MultiDataSources-Azure_Monitor"></a>

**Création d’une source de données**
+ Vous devez fournir votre ID client, et votre secret client pour vous connecter à Microsoft Azure Monitor. Les informations d'identification seront stockées dans AWS Secrets Manager. Pour plus d’informations, veuillez consulter la rubrique [Créer une application et un principal de service Microsoft Entra pouvant accéder aux ressources](https://learn.microsoft.com/en-us/entra/identity-platform/howto-create-service-principal-portal) de la documentation Microsoft. 

**Mise à jour d’une source de données**
+ Vous pouvez mettre à jour votre source de données manuellement en procédant comme suit :
  + Pour mettre à jour l’ID du locataire, l’ID du client et le secret du client utilisés pour se connecter à Azure Monitor, vous pouvez trouver l’ARN du secret utilisé pour la source de données en tant que variable d’environnement `AZURE_CLIENT_SECRET` sur la fonction Lambda de la source de données. Pour plus d'informations sur la mise à jour du secret dans AWS Secrets Manager, voir [Modifier un AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html).

**Interrogation de la source de données**
+ Lorsque vous interrogez Azure Monitor, après avoir sélectionné la source de données dans l’onglet **Requête multisources** et sélectionné un connecteur Azure Monitor, vous spécifiez l’abonnement Azure, le groupe de ressources et la ressource. Vous pouvez ensuite sélectionner l’espace de noms, la métrique et l’agrégation des métriques, puis les filtrer par dimensions. 

## Prometheus
<a name="MultiDataSources-Prometheus"></a>

**Création d’une source de données**
+ Vous devez fournir le point de terminaison Prometheus ainsi que l’utilisateur et le mot de passe requis pour interroger Prometheus. Les informations d'identification seront stockées dans AWS Secrets Manager. 
+ Si votre source de données n’est accessible que dans un VPC, vous devez inclure la configuration VPC du connecteur, comme décrit dans [Connexion à une source de données prédéfinie à l’aide d’un assistant](#CloudWatch_MultiDataSources-Connect). Si la source de données doit se connecter pour obtenir des informations d’identification, le point de terminaison doit être configuré dans le VPC. Pour plus d'informations, consultez la section [Utilisation d'un point de AWS Secrets Manager terminaison VPC.](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html) 

**Mise à jour de la configuration de la source de données**
+ Vous pouvez mettre à jour votre source de données manuellement en procédant comme suit :
  + Pour mettre à jour le point de terminaison Prometheus, spécifiez le nouveau point de terminaison comme variable d’environnement `PROMETHEUS_API_ENDPOINT` dans la fonction Lambda de la source de données.
  + Pour mettre à jour le nom d’utilisateur et le mot de passe utilisés pour se connecter à Prometheus, vous pouvez trouver l’ARN du secret utilisé pour la source de données comme variable d’environnement `PROMETHEUS_API_SECRET` dans la fonction Lambda de la source de données. Pour plus d'informations sur la mise à jour du secret dans AWS Secrets Manager, voir [Modifier un AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html).
  + Pour mettre à jour la configuration du VPC, veuillez consulter [Configuration de l’accès au VPC (console)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring) pour plus d’informations. 

**Interrogation de la source de données**

**Important**  
Les types de métriques Prometheus sont différents des métriques et CloudWatch de nombreuses métriques disponibles via Prometheus sont cumulatives par conception. Lorsque vous interrogez les métriques de Prometheus CloudWatch , aucune transformation supplémentaire n'est appliquée aux données : si vous spécifiez uniquement le nom ou le libellé de la métrique, la valeur affichée sera cumulative. Pour plus d’informations, veuillez consulter la rubrique [Metric types](https://prometheus.io/docs/concepts/metric_types/) dans la documentation Prometheus.  
Pour voir les données des métriques Prometheus sous forme de valeurs discrètes, CloudWatch comme les métriques, vous devez modifier la requête avant de l'exécuter. A titre d’exemple, vous pouvez avoir besoin d’ajouter un appel à la fonction rate sur le nom de votre métrique Prometheus. Pour de la documentation sur la fonction rate et les autres fonctions de Prometheus, veuillez consulter la rubrique [rate()](https://prometheus.io/docs/prometheus/latest/querying/functions/#rate) dans la documentation de Prometheus.

Les requêtes multilignes ne sont pas prises en charge par les connecteurs de source de CloudWatch données. Chaque retour à la ligne est remplacé par un espace lorsque la requête est exécutée, ou lorsque vous créez une alarme ou un widget de tableau de bord avec la requête. Dans certains cas, cela peut rendre votre requête non valide. Par exemple, si votre requête contient un commentaire d’une seule ligne, elle ne sera pas valide. Si vous essayez de créer un tableau de bord ou une alarme à l’aide d’une requête multiligne à partir de la ligne de commande ou de l’infrastructure en tant que code, l’API rejettera l’action avec une erreur d’analyse.

## Notification des mises à jour disponibles
<a name="CloudWatch_MultiDataSources-Future-Updates"></a>

De temps à autre, Amazon peut vous informer que nous vous recommandons de mettre à jour vos connecteurs avec une version plus récente disponible et vous fournira des instructions sur la manière de procéder.

# Création d’un connecteur personnalisé à une source de données
<a name="CloudWatch_MultiDataSources-Connect-Custom"></a>

 Cette rubrique décrit comment connecter une source de données personnalisée à CloudWatch. Vous pouvez connecter une source de données personnalisée CloudWatch de deux manières : 
+  À l'aide d'un exemple de modèle qui CloudWatch fournit. Vous pouvez utiliser l'un JavaScript ou l'autre ou Python avec ce modèle. Ces modèles incluent un exemple de code Lambda qui vous sera utile lors de la création de votre fonction Lambda. Vous pouvez ensuite modifier la fonction Lambda à partir du modèle pour vous connecter à votre source de données personnalisée. 
+  Création d'une AWS Lambda fonction à partir de zéro qui implémente le connecteur de source de données, la requête de données et la préparation des séries chronologiques destinées à être utilisées par CloudWatch. Cette fonction doit pré-agréger ou fusionner des points de données si nécessaire, et également aligner la période et les horodatages pour être compatible avec. CloudWatch 

**Contents**
+ [Utilisation d’un modèle](#CloudWatch_MultiDataSources-Connect-Custom-template)
+ [Création d’une source de données personnalisée de toutes pièces](#CloudWatch_MultiDataSources-Connect-Custom-Lambda)
  + [Étape 1 : créer la fonction](#MultiDataSources-Connect-Custom-Lambda-Function)
    + [GetMetricData événement](#MultiDataSources-GetMetricData)
    + [DescribeGetMetricData événement](#MultiDataSources-DescribeGetMetricData)
    + [Considérations importantes relatives aux CloudWatch alarmes](#MultiDataSources-Connect-Custom-Lambda-Alarms)
    + [(Facultatif) AWS Secrets Manager À utiliser pour stocker les informations d'identification](#MultiDataSources-Connect-Custom-Lambda-Secrets)
    + [(Facultatif) Connexion à une source de données dans un VPC](#MultiDataSources-Connect-Custom-Lambda-VPC)
  + [Étape 2 : créer une stratégie d’autorisations Lambda](#MultiDataSources-Connect-Custom-Lambda-Permissions)
  + [Étape 3 : attacher une balise de ressource à la fonction Lambda](#MultiDataSources-Connect-Custom-Lambda-tags)

## Utilisation d’un modèle
<a name="CloudWatch_MultiDataSources-Connect-Custom-template"></a>

L’utilisation d’un modèle crée un exemple de fonction Lambda et peut vous aider à créer votre connecteur personnalisé plus rapidement. Ces exemples de fonctions fournissent des exemples de code pour de nombreux scénarios courants liés à la création d’un connecteur personnalisé. Vous pouvez examiner le code Lambda après avoir créé un connecteur avec un modèle, puis le modifier pour l’utiliser pour vous connecter à votre source de données.

De plus, si vous utilisez le modèle, CloudWatch prend soin de créer la politique d'autorisations Lambda et d'associer des balises de ressources à la fonction Lambda.

**Pour utiliser le modèle afin de créer un connecteur vers une source de données personnalisée**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, sélectionnez **Settings** (Paramètres).

1. Choisissez l’onglet **Sources de données de métriques**.

1. Choisissez **Create data source**.

1. Choisissez le bouton radio **Personnalisé – modèle de démarrage**, puis Choisissez **Suivant**.

1. Entrez un nom pour la source de données.

1. Sélectionnez l’un des modèles répertoriés.

1. Sélectionnez Node.js ou Python.

1. Choisissez **Create data source**.

   La nouvelle source personnalisée que vous venez d'ajouter n'apparaît pas tant que la CloudFormation pile n'a pas fini de la créer. Pour vérifier la progression, vous pouvez choisir **Afficher le statut de ma CloudFormation pile**. Vous pouvez également choisir l’icône d’actualisation pour mettre à jour cette liste.

   Lorsque votre nouvelle source de données apparaît dans cette liste, elle est prête à être testée dans la console et modifiée.

1. (Facultatif) Pour interroger les données de test de cette source dans la console, suivez les instructions de la rubrique [Création d’un graphique de mesures à partir d’une autre source de données](graph_a_metric.md#create-metric-graph-multidatasource).

1. Modifiez la fonction Lambda en fonction de vos besoins. 

   1. Dans le panneau de navigation, sélectionnez **Settings** (Paramètres).

   1. Choisissez l’onglet **Sources de données de métriques**.

   1. Choisissez **Afficher dans la console Lambda** pour la source que vous souhaitez modifier.

   Vous pouvez désormais modifier la fonction pour accéder à votre source de données. Pour de plus amples informations, veuillez consulter [Étape 1 : créer la fonction](#MultiDataSources-Connect-Custom-Lambda-Function).
**Note**  
En utilisant le modèle, lorsque vous écrivez votre fonction Lambda, vous n’avez pas besoin de suivre les instructions contenues dans [Étape 2 : créer une stratégie d’autorisations Lambda](#MultiDataSources-Connect-Custom-Lambda-Permissions) ou. [Étape 3 : attacher une balise de ressource à la fonction Lambda](#MultiDataSources-Connect-Custom-Lambda-tags) Ces étapes ont été effectuées CloudWatch parce que vous avez utilisé le modèle.

## Création d’une source de données personnalisée de toutes pièces
<a name="CloudWatch_MultiDataSources-Connect-Custom-Lambda"></a>

Suivez les étapes décrites dans cette section pour créer une fonction Lambda qui se connecte CloudWatch à une source de données. 

### Étape 1 : créer la fonction
<a name="MultiDataSources-Connect-Custom-Lambda-Function"></a>

Un connecteur de source de données personnalisé doit prendre en charge `GetMetricData` les événements provenant de CloudWatch. Vous pouvez également éventuellement implémenter un `DescribeGetMetricData` événement pour fournir aux utilisateurs de la CloudWatch console une documentation expliquant comment utiliser le connecteur. La `DescribeGetMetricData` réponse peut également être utilisée pour définir les valeurs par défaut utilisées dans le générateur de requêtes CloudWatch personnalisé.

CloudWatch fournit des extraits de code sous forme d'exemples pour vous aider à démarrer. Pour plus d'informations, consultez le référentiel d'échantillons à l'adresse [https://github.com/aws-samples/cloudwatch-data-source-samples](https://github.com/aws-samples/cloudwatch-data-source-samples).

**Contraintes**
+ La réponse de Lambda doit être inférieure à 6 Mo. Si la réponse dépasse 6 Mo, la réponse `GetMetricData` marque la fonction Lambda comme `InternalError` et aucune donnée n’est renvoyée.
+ La fonction Lambda doit être exécutée dans les 10 secondes à des fins de visualisation et de tableau de bord, ou dans les 4,5 secondes pour l’utilisation des alarmes. Si le temps d’exécution dépasse ce délai, la réponse `GetMetricData` marque la fonction Lambda comme `InternalError` et aucune donnée n’est renvoyée.
+ La fonction Lambda doit envoyer sa sortie en utilisant des horodatages d’époque en secondes.
+ Si la fonction Lambda ne rééchantillonne pas les données mais renvoie des données qui ne correspondent pas à l'heure de début et à la durée de la période demandées par l' CloudWatch utilisateur, ces données sont ignorées par. CloudWatch Les données supplémentaires sont supprimées de toute visualisation ou alarme. Toutes les données qui ne se situent pas entre l’heure de début et de fin sont également supprimées.

  Par exemple, si un utilisateur demande des données entre 10 h et 11 h avec une période de 5 minutes, les intervalles de temps « 10:00:00 à 10:04:59 » et « 10:05:00 à 10:09:59 » sont les intervalles de temps valides pour le renvoi des données. Vous devez renvoyer une série chronologique qui inclut `10:00 value1`, `10:05 value2`, etc. Si la fonction renvoie `10:03 valueX`, par exemple, elle est supprimée, car 10:03 ne correspond pas à l’heure de début et à la période demandées.
+ Les requêtes multilignes ne sont pas prises en charge par les connecteurs de source de CloudWatch données. Chaque retour à la ligne est remplacé par un espace lorsque la requête est exécutée, ou lorsque vous créez une alarme ou un widget de tableau de bord avec la requête. Dans certains cas, cela peut rendre votre requête non valide.

#### GetMetricData événement
<a name="MultiDataSources-GetMetricData"></a>

**Charge utile de la requête**

Voici un exemple de charge utile de la requête `GetMetricData` envoyée en entrée à la fonction Lambda.

```
{
  "EventType": "GetMetricData",
  "GetMetricDataRequest": {
    "StartTime": 1697060700,
    "EndTime": 1697061600,
    "Period": 300,
    "Arguments": ["serviceregistry_external_http_requests{host_cluster!=\"prod\"}"] 
  }
}
```
+ **StartTime**— L'horodatage spécifiant les premières données à renvoyer. Le **type** est horodatage, époque, secondes.
+ **EndTime**— L'horodatage spécifiant les dernières données à renvoyer. Le **type** est horodatage, époque, secondes.
+ **Période** : nombre de secondes que représente chaque agrégation des données de métriques. La valeur minimale est 60 secondes. Le **type** est secondes.
+ **Arguments** : tableau d’arguments à transmettre à l’expression mathématique de la métrique Lambda. Pour plus d’informations sur le passage d’arguments, veuillez consulter la rubrique [Comment transmettre des arguments à votre fonction Lambda](CloudWatch_MultiDataSources-Custom-Use.md#MultiDataSources-Connect-Custom-Lambda-arguments).

**Charge utile de la réponse**

Voici un exemple de charge utile de la réponse `GetMetricData` renvoyée par la fonction Lambda.

```
{
   "MetricDataResults": [
      {
         "StatusCode": "Complete",
         "Label": "CPUUtilization",
         "Timestamps": [ 1697060700, 1697061000, 1697061300 ],
         "Values": [ 15000, 14000, 16000 ]
      }
   ]
}
```

La charge utile de la réponse contiendra soit un champ `MetricDataResults`, soit un champ `Error`, mais pas les deux.

Un champ `MetricDataResults` est une liste de champs de séries temporelles de type `MetricDataResult`. Chacun de ces champs de série temporelle peut comprendre les champs suivants.
+ **StatusCode**— (Facultatif) `Complete` indique que tous les points de données de la plage de temps demandée ont été renvoyés. `PartialData`signifie qu'un ensemble incomplet de points de données a été renvoyé. Si cet argument est omis, la valeur par défaut est `Complete`.

  Valeurs Valides: `Complete` \$1 `InternalError` \$1 `PartialData` \$1 `Forbidden`
+ **Messages** : liste facultative de messages contenant des informations supplémentaires sur les données renvoyées.

  Type : tableau d'[MessageData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MessageData.html)objets avec des `Value` chaînes `Code` et.
+ **Label** : étiquette lisible par l’homme associée aux données.

  Type : Chaîne
+ **Timestamps** : horodatages des points de données, formatés en fonction de l’époque. Le nombre d’horodatages correspond toujours au nombre de valeurs et la valeur de `Timestamps[x]` est `Values[x`].

  Type : tableau d’horodatage
+ **Values** : valeurs des points de données de la métrique, correspondant à `Timestamps`. Le nombre de valeurs correspond toujours au nombre d’horodatages et la valeur de `Timestamps[x]` est `Values[x`].

  Type : tableau de doubles

Pour en savoir plus sur les objets `Error`, veuillez consulter les sections suivantes.

**Formats de réponse aux erreurs**

Vous pouvez éventuellement utiliser la réponse d’erreur pour fournir plus d’informations sur les erreurs. Nous vous recommandons de renvoyer une erreur lors de la validation du code lorsqu’une erreur de validation se produit, par exemple lorsqu’un paramètre est manquant ou de type incorrect.

Voici un exemple de réponse lorsque la fonction Lambda souhaite déclencher une exception de validation `GetMetricData`.

```
{
   "Error": {
      "Code": "Validation",
      "Value": "Invalid Prometheus cluster"
   }
}
```

Voici un exemple de réponse lorsque la fonction Lambda indique qu’elle n’est pas en mesure de renvoyer des données en raison d’un problème d’accès. La réponse est traduite en une seule série chronologique avec un code d’état `Forbidden`.

```
{
   "Error": {
      "Code": "Forbidden",
      "Value": "Unable to access ..."
   }
}
```

Voici un exemple de cas où la fonction Lambda déclenche une exception globale `InternalError`, qui est traduite en une série temporelle unique avec un code d’état `InternalError` et un message. Chaque fois qu'un code d'erreur a une valeur autre que `Validation` ou`Forbidden`, CloudWatch suppose qu'il s'agit d'une erreur interne générique.

```
{
   "Error": {
      "Code": "PrometheusClusterUnreachable",
      "Value": "Unable to communicate with the cluster"
   }
}
```

#### DescribeGetMetricData événement
<a name="MultiDataSources-DescribeGetMetricData"></a>

**Charge utile de la requête**

L’exemple qui suit illustre la charge utile d’une requête `DescribeGetMetricData`.

```
{
  "EventType": "DescribeGetMetricData"
}
```

**Charge utile de la réponse**

L’exemple qui suit illustre la charge utile d’une réponse `DescribeGetMetricData`.

```
{
    "Description": "Data source connector",
    "ArgumentDefaults": [{
        Value: "default value"
     }]
}
```
+ **Description** : description de l’utilisation du connecteur de source de données. Cette description apparaîtra dans la CloudWatch console. Markdown est pris en charge.

  Type : Chaîne
+ **ArgumentDefaults**— Le tableau facultatif des valeurs par défaut des arguments utilisés préremplit le générateur de sources de données personnalisé.

  Si`[{ Value: "default value 1"}, { Value: 10}]`, est renvoyé, le générateur de requêtes de la CloudWatch console affiche deux entrées, la première avec la « valeur par défaut 1 » et la seconde avec 10.

  Si `ArgumentDefaults` n’est pas fourni, une seule entrée est affichée avec le type par défaut défini sur `String`.

  Type : tableau d’objets contenant Value et Type. 
+ **Error** : (facultatif) un champ d’erreur peut être inclus dans n’importe quelle réponse. Vous pouvez voir des exemples dans [GetMetricData événement](#MultiDataSources-GetMetricData).

#### Considérations importantes relatives aux CloudWatch alarmes
<a name="MultiDataSources-Connect-Custom-Lambda-Alarms"></a>

 Si vous comptez utiliser la source de données pour définir des CloudWatch alarmes, vous devez la configurer pour qu'elle rapporte les données avec des horodatages toutes les minutes à. CloudWatch Pour plus d’informations et d’autres considérations relatives à la création d’alarmes sur des métriques provenant de sources de données connectées, veuillez consulter la rubrique [Création d’une alarme basée sur une source de données connectée](Create_MultiSource_Alarm.md).

#### (Facultatif) AWS Secrets Manager À utiliser pour stocker les informations d'identification
<a name="MultiDataSources-Connect-Custom-Lambda-Secrets"></a>

Si votre fonction Lambda doit utiliser des informations d'identification pour accéder à la source de données, nous vous recommandons de les stocker AWS Secrets Manager au lieu de les coder en dur dans votre fonction Lambda. Pour plus d'informations sur l'utilisation AWS Secrets Manager avec Lambda, voir [Utiliser des AWS Secrets Manager secrets dans AWS Lambda les fonctions](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_lambda.html). 

#### (Facultatif) Connexion à une source de données dans un VPC
<a name="MultiDataSources-Connect-Custom-Lambda-VPC"></a>

Si votre source de données se trouve dans un VPC géré par Amazon Virtual Private Cloud, vous devez configurer votre fonction Lambda pour y accéder. Pour plus d’informations, veuillez consulter la rubrique [Connexion des réseaux sortants aux ressources d’un VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html).

Vous devrez peut-être également configurer les points de terminaison du service VPC pour accéder à des services tels qu’ AWS Secrets Manager. Pour plus d'informations, consultez [Accéder à un AWS service à l'aide d'un point de terminaison VPC d'interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#access-service-though-endpoint).

### Étape 2 : créer une stratégie d’autorisations Lambda
<a name="MultiDataSources-Connect-Custom-Lambda-Permissions"></a>

Vous devez utiliser create une déclaration de politique qui CloudWatch autorise l'utilisation de la fonction Lambda que vous avez créée. Vous pouvez utiliser la console AWS CLI ou la console Lambda pour créer la déclaration de politique.

**Pour utiliser le AWS CLI pour créer la déclaration de politique**
+ Entrez la commande suivante. Remplacez *123456789012* par votre identifiant de compte, remplacez *my-data-source-function* par le nom de votre fonction Lambda et remplacez par *MyDataSource-DataSourcePermission1234* une valeur unique arbitraire.

  ```
  aws lambda add-permission --function-name my-data-source-function --statement-id MyDataSource-DataSourcePermission1234 --action lambda:InvokeFunction --principal lambda.datasource.cloudwatch.amazonaws.com --source-account 123456789012
  ```

### Étape 3 : attacher une balise de ressource à la fonction Lambda
<a name="MultiDataSources-Connect-Custom-Lambda-tags"></a>

La CloudWatch console détermine quelles fonctions Lambda sont des connecteurs de source de données à l'aide d'une balise. Lorsque vous créez une source de données à l'aide de l'un des assistants, la balise est automatiquement appliquée par la CloudFormation pile qui la configure. Lorsque vous créez vous-même une source de données, vous pouvez utiliser la balise suivante pour votre fonction Lambda. Cela fait apparaître votre connecteur dans la liste déroulante **des sources de données** de la CloudWatch console lorsque vous interrogez des métriques.
+ Une étiquette avec la clé `cloudwatch:datasource` et la valeur `custom`.

# Utilisation de votre source de données personnalisée
<a name="CloudWatch_MultiDataSources-Custom-Use"></a>

 Après avoir créé une source de données, vous pouvez l’utiliser pour interroger les données de cette source afin de les visualiser et de définir des alarmes. Si vous avez utilisé un modèle pour créer votre connecteur de source de données personnalisé ou si vous avez ajouté la balise répertoriée dans [Étape 3 : attacher une balise de ressource à la fonction Lambda](CloudWatch_MultiDataSources-Connect-Custom.md#MultiDataSources-Connect-Custom-Lambda-tags), vous pouvez suivre les étapes décrites dans [Création d’un graphique de mesures à partir d’une autre source de données](graph_a_metric.md#create-metric-graph-multidatasource) pour l’interroger. Vous pouvez également utiliser la fonction mathématique de métrique `LAMBDA` pour l’interroger, comme expliqué dans la section suivante. Pour plus d’informations sur la création d’alarmes sur les métriques de votre source de données, veuillez consulter la rubrique [Création d’une alarme basée sur une source de données connectée](Create_MultiSource_Alarm.md). Cette rubrique explique comment transmettre des arguments de votre fonction Lambda à votre source de données personnalisée. 

## Comment transmettre des arguments à votre fonction Lambda
<a name="MultiDataSources-Connect-Custom-Lambda-arguments"></a>

La méthode recommandée pour transmettre des arguments à votre source de données personnalisée consiste à utiliser le générateur de requêtes de la CloudWatch console lorsque vous interrogez la source de données.

Vous pouvez également utiliser votre fonction Lambda pour récupérer des données de votre source de données en utilisant la nouvelle `LAMBDA` expression en mathématiques CloudWatch métriques.

```
LAMBDA("LambdaFunctionName" [, optional-arg]*)
```

`optional-arg` contient jusqu’à 20 chaînes, nombres ou booléens. Par exemple, `param`, `3.14` ou `true`.

**Note**  
Les chaînes multilignes ne sont pas prises en charge par les connecteurs de source de CloudWatch données. Chaque retour à la ligne est remplacé par un espace lorsque la requête est exécutée, ou lorsque vous créez une alarme ou un widget de tableau de bord avec la requête. Dans certains cas, cela peut rendre votre requête non valide.

Lorsque vous utilisez la fonction mathématique de métrique `LAMBDA`, vous pouvez fournir le nom de la fonction (`"MyFunction"`). Si votre politique de ressources le permet, vous pouvez également utiliser une version spécifique de la fonction (`"MyFunction:22"`) ou un alias de fonction Lambda (`"MyFunction:MyAlias"`). Vous ne pouvez pas utiliser `*`

Vous trouverez ci-dessous quelques exemples d’appel de la fonction `LAMBDA`.

```
LAMBDA("AmazonOpenSearchDataSource", "MyDomain", "some-query")
```

```
LAMBDA("MyCustomDataSource", true, "fuzzy", 99.9)
```

La fonction mathématique de métrique `LAMBDA` renvoie une liste de séries temporelles qui peuvent être renvoyées au demandeur ou combinées avec d’autres fonctions mathématiques de métriques. Voici un exemple de combinaison de `LAMBDA` avec d’autres fonctions mathématiques de métriques.

```
FILL(LAMBDA("AmazonOpenSearchDataSource", "MyDomain", "some-query"), 0)
```

# Suppression d’un connecteur à une source de données
<a name="CloudWatch_MultiDataSources-Delete"></a>

 Les instructions de cette section expliquent comment supprimer un connecteur vers une source de données. 

**Pour supprimer un connecteur à une source de données**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, sélectionnez **Settings** (Paramètres).

1. Choisissez l’onglet **Sources de données de métriques**.

1. Choisissez **Gérer CloudFormation dans** la ligne de la source de données que vous souhaitez supprimer.

   Vous êtes redirigé vers la CloudFormation console.

1. Dans la section portant le nom de votre source de données, choisissez **Supprimer**.

1. Dans la fenêtre de confirmation, choisissez **Supprimer**.