

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.

# Utilisation de l'option de requête métrique pour interroger les données de CloudWatch Metrics Insights
<a name="CloudWatch-using-the-metric-query"></a>

**Note**  
Amazon CloudWatch Metrics Insights est en version préliminaire. CloudWatch Les fonctionnalités de Metrics Insights sont ouvertes à tous Comptes AWS. Les fonctionnalités peuvent être sujettes à modification. 

 Vous pouvez interroger CloudWatch les données de Metrics Insights en choisissant le `metric query` mode dans l'**éditeur de requêtes Metric**. 

 CloudWatch Metrics Insights est un puissant moteur de requêtes SQL très performant que vous pouvez utiliser pour interroger vos métriques à grande échelle. Il s'agit d'un moteur de requête SQL rapide et flexible que vous pouvez utiliser pour identifier les tendances et les modèles au sein de tous vos CloudWatch indicateurs en temps réel. Il utilise un dialecte SQL. Pour plus d'informations sur la syntaxe des requêtes Metrics Insights, consultez[Syntaxe des requêtes et mots clés](#metrics-insights-syntax-keywords).

## Syntaxe des requêtes et mots clés
<a name="metrics-insights-syntax-keywords"></a>

CloudWatch Metrics Insights utilise un dialecte SQL. L'exemple suivant montre la syntaxe de la requête.

```
SELECT FUNCTION(metricName)
FROM namespace | [ SCHEMA(namespace[, labelKey [, ...] ]) ]
     [ WHERE labelKey OPERATOR labelValue [AND|OR|([...])*] [, ...] ]
[ GROUP BY labelKey [, ...]]
[ ORDER BY FUNCTION() [DESC | ASC] ]
[ LIMIT number]
```

 Les mots clés ne distinguent pas les majuscules des minuscules, mais les identifiants le sont également. Les identifiants incluent les noms des métriques, des espaces de noms et des dimensions. 

 Le tableau suivant fournit les mots clés de requête et leurs descriptions.


|  Mot clé  |  Description  | 
| --- | --- | 
|  FUNCTION  |  Obligatoire. Spécifie la fonction d'agrégation à utiliser, ainsi que le nom de la métrique à interroger. Les valeurs valides sont AVG, COUNT, MAX, MIN et SUM.  | 
|  MetricName   |  Obligatoire. Par exemple, CPUUtilization.  | 
|  FROM  |  Obligatoire. Spécifie la source de la métrique. Vous pouvez spécifier soit l'espace de noms de métrique qui contient la métrique à interroger, soit une fonction de table SCHEMA. Voici quelques exemples d'espaces de noms : AWS/EC2 et. AWS/Lambda  | 
|  SCHEMA  |  (Facultatif) Filtre les résultats de la requête pour afficher uniquement les mesures qui correspondent exactement ou celles qui ne correspondent pas.  | 
|  WHERE  |  (Facultatif) Filtre les résultats pour n'afficher que les mesures correspondant à l'expression que vous avez spécifiée. Par exemple, WHERE InstanceType \$1= 'c3.4xlarge'.  | 
|  GROUP BY  |  (Facultatif) Regroupe les résultats de la requête en plusieurs séries chronologiques. Par exemple, GROUP BY ServiceName.  | 
|  ORDER BY  |  (Facultatif) Spécifie l'ordre des séries chronologiques à renvoyer. Les options sont ASC etDESC.  | 
|  LIMIT  |  (Facultatif) Limite le nombre de séries chronologiques à renvoyer.  | 

Voici quelques exemples : 
+ 

  ```
  SELECT AVG(CPUUtilization) FROM "AWS/EC2" 
  ```

   Correspond à toutes les `CPUUtilization` métriques de l'`AWS/EC2`espace de noms, en ignorant leurs dimensions, et renvoie une seule série chronologique agrégée. 
+ 

  ```
  SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2")
  ```

   Correspond uniquement aux `CPUUtilization` métriques de l'`AWS/EC2`espace de noms dont aucune dimension n'est définie.
+ 

  ```
  SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2", InstanceId)
  ```

   Correspond uniquement aux `CPUUtilization` métriques qui ont été signalées CloudWatch avec exactement une dimension,`InstanceId`.
+ 

  ```
  SELECT SUM(RequestCount) FROM SCHEMA("AWS/ApplicationELB", LoadBalancer,
  AvailabilityZone)
  ```

   Correspond uniquement aux `RequestCount` métriques signalées au formulaire CloudWatch `AWS/ApplicationELB` avec exactement deux dimensions, `LoadBalancer` et`AvailabilityZone`. 

 Les valeurs des étiquettes doivent être placées entre guillemets simples.

### Caractères d'échappement
<a name="escape-characters"></a>

Dans une requête, les valeurs d'étiquette doivent toujours être entourées de guillemets simples.   Par exemple, `SELECT MAX(CPUUtilization) FROM "AWS/EC2" WHERE AutoScalingGroupName = 'my-production-fleet'`. 

 Les espaces de noms de métriques, les noms de métriques et les clés d'étiquette contenant des caractères autres que des lettres, des chiffres et des traits de soulignement (`_`) doivent être entourés de guillemets doubles. Par exemple, `SELECT MAX("My.Metric")`. Si l'un d'entre eux contient lui-même un guillemet double (par exemple`Bytes"Input"`), vous devez éviter ce guillemet double avec des barres obliques inverses, comme dans. `SELECT AVG("Bytes\"Input\"")` Si un espace de noms de métrique, un nom de métrique ou une clé d'étiquette contient un mot qui est un mot-clé réservé dans Metrics Insights, ceux-ci doivent également être entre guillemets doubles. Par exemple, si vous disposez d'une métrique nommée `LIMIT`, vous devez utiliser `SELECT AVG("LIMIT")`. Il est également valable de placer n'importe quel espace de noms, nom de métrique ou étiquette entre guillemets doubles, même s'il n'inclut pas de mot-clé réservé. 

## Mode générateur et mode code
<a name="metrics-insights-query-modes"></a>

Vous pouvez créer une requête en `Builder` mode ou en `Code` mode.

**Pour créer une requête en `Builder` mode**

1. Parcourez et sélectionnez un espace de noms de métrique, un nom de métrique, un filtre, un groupe et des options de commande à l'aide des informations du tableau précédent.

1. Pour chacune de ces options, choisissez dans la liste des options possibles.

**Pour créer une requête en `Code` mode**

1. Rédigez votre requête dans l'éditeur de code.

1. Pour exécuter la requête, choisissez **Exécuter la requête** dans l'éditeur de code.

Pour créer une requête dans le `builder` mode :
+ Parcourez et sélectionnez un espace de noms de métrique, un nom de métrique, un filtre, un groupe et des options de commande à l'aide des informations du tableau ci-dessus.
+ Pour chacune de ces options, choisissez dans la liste des options possibles.

Grafana construit automatiquement une requête SQL en fonction de vos sélections.

 Pour créer une requête dans le `code` mode :
+ Rédigez votre requête dans l'éditeur de code.
+ Pour exécuter la requête, choisissez l'option **Exécuter la requête** dans l'éditeur de code.

L'éditeur de code intègre une fonction de saisie semi-automatique qui fournit des suggestions de mots clés, d'agrégations, d'espaces de noms, de métriques, d'étiquettes et de valeurs d'étiquette. Les suggestions apparaissent lorsque vous entrez un espace, une virgule ou le signe dollar. Vous pouvez également utiliser la combinaison de touches`CTRL+Space`.

L'éditeur de code peut compléter automatiquement la requête. Cependant, l'utilisation de variables de modèle dans l'éditeur de code peut interférer avec l'autocomplétion.

## CloudWatch Exemples de Metrics Insights
<a name="goldeneye-examples"></a>

**Note**  
CloudWatch Metrics Insights est en version préliminaire ouverte. L'aperçu est ouvert à tous les AWS comptes et vous n'avez pas besoin de demander l'accès. Des fonctionnalités peuvent être ajoutées ou modifiées avant l'annonce de la disponibilité générale. 

Cette section contient des exemples de requêtes CloudWatch Metrics Insights utiles que vous pouvez copier et utiliser directement ou copier et modifier dans l'éditeur de requêtes. Certains de ces exemples sont déjà disponibles dans la console et vous pouvez y accéder en choisissant **Add query** (Ajouter une requête) dans la vue **Metrics** (Métriques). 

### Exemples EC2
<a name="goldeneye-EC2-examples"></a>

 Afficher les métriques d'utilisation du processeur par instance

```
SELECT AVG(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
```

Afficher l'utilisation moyenne du processeur sur l'ensemble du parc

```
SELECT AVG(CPUUtilization)
FROM SCHEMA("AWS/EC2", InstanceId)
```

 Afficher les 10 instances présentant l'utilisation moyenne du processeur la plus élevée 

```
SELECT MAX(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
LIMIT 10
```

Afficher les 10 instances présentant le taux d'utilisation du processeur le plus élevé, classées par maximum, par ordre décroissant

```
SELECT AVG(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
ORDER BY MAX() DESC
LIMIT 10
```

Dans ce cas, l' CloudWatch agent collecte une CPUUtilization métrique par application. Cette requête filtre la moyenne de cette métrique pour un nom d'application spécifique.

```
SELECT AVG(CPUUtilization)
FROM "AWS/CWAgent"
WHERE ApplicationName = 'eCommerce'
SELECT AVG(ConcurrentExecutions)
FROM "AWS/Lambda"
```

Afficher le temps d'exécution moyen des 10 principales fonctions Lambda, classées par maximum, par ordre décroissant

```
SELECT AVG(Duration)
FROM "AWS/Lambda"
GROUP BY FunctionName
ORDER BY MAX() DESC
LIMIT 10
```

Afficher le maximum, la moyenne et le minimum des temps d'exécution Lambda

```
SELECT MAX(Duration)
FROM "AWS/Lambda"
```

### Application Load Balancer
<a name="application-loadbalancer-examples"></a>

 Afficher les métriques qui ont les dimensions **LoadBalancer**et **AvailabilityZone**

```
SELECT SUM(RequestCount)
FROM SCHEMA("AWS/ApplicationELB", LoadBalancer, AvailabilityZone)
```

Afficher les métriques avec le nombre de connexions TCP simultanées actives

```
SELECT AVG(ActiveConnectionCount)
FROM "AWS/ApplicationELB"
```

### Exemples Amazon EBS
<a name="Amazon-elastic-block-store-examples"></a>

 Afficher les 10 premiers octets d'écriture moyens par volume par ordre décroissant

```
SELECT AVG(VolumeWriteBytes)
FROM "AWS/EBS"
GROUP BY VolumeId
ORDER BY MAX() DESC
LIMIT 10
```

Afficher le temps d'écriture moyen d'un volume Amazon EBS

```
SELECT AVG(VolumeTotalWriteTime)
FROM "AWS/EBS"
```

Afficher le temps d'inactivité moyen d'un volume Amazon EBS

```
SELECT AVG(VolumeIdleTime)
FROM "AWS/EBS"
View average burst balance per volume
SELECT AVG(BurstBalance)
FROM "AWS/EBS"
GROUP BY VolumeId
View average read bytes across Amazon EBS volumes
SELECT AVG(VolumeReadBytes)
FROM "AWS/EBS"
```

Afficher le nombre moyen d'octets d'écriture sur les volumes Amazon EBS

```
SELECT AVG(VolumeWriteBytes)
FROM "AWS/EBS"
```

### Exemples Amazon Simple Storage Service
<a name="simple-storage-service-examples"></a>

 Afficher le groupe de latence moyenne par nom de compartiment

```
SELECT AVG(TotalRequestLatency)
FROM "AWS/S3"
GROUP BY BucketName
```

Afficher le nombre moyen d'objets par compartiment dans tous les compartiments Amazon S3

```
SELECT AVG(NumberOfObjects)
FROM "AWS/S3"
GROUP BY BucketName
```

### Exemples Amazon Simple Notification Service
<a name="Amazon-simple-notificaation-service-examples"></a>

A mazon-simple-notificaation-service -exemples 

```
SELECT AVG(NumberOfMessagesPublished)
FROM "AWS/SNS"
```

Afficher le nombre moyen de messages ayant échoué pour chaque nom de rubrique

```
SELECT AVG(NumberOfNotificationsFailed)
FROM "AWS/SNS"
GROUP BY TopicName
```

### AWS Exemples d'utilisation de l'API
<a name="AWS-API-usage-examples"></a>

Afficher les 20 meilleurs appels AWS APIs en fonction du nombre d'appels enregistrés sur votre compte 

```
SELECT COUNT(CallCount)
FROM "AWS/Usage"
WHERE "Type" = 'API'
GROUP BY "Service", "Resource"
ORDER BY SUM() DESC
LIMIT 20
```

## CloudWatch Limites de Metrics Insights
<a name="metrics-insights-limits"></a>

CloudWatch Metrics Insights a actuellement les limites suivantes : 
+ Vous ne pouvez interroger que les trois dernières heures de données.
+ Une seule requête ne peut traiter plus de 10 000 métriques. Cela signifie que si les `WHERE` clauses `SELECT``FROM`, et correspondent à plus de 10 000 métriques, seules les 10 000 premières métriques trouvées seront traitées par la requête.
+ Une seule requête ne peut pas renvoyer plus de 500 séries chronologiques. Cela signifie que si la requête traite plus de 500 métriques, toutes les métriques ne seront pas renvoyées dans les résultats de la requête. Si vous utilisez une `ORDER BY` clause, toutes les métriques traitées seront triées et les 500 ayant les valeurs les plus élevées ou les plus faibles selon votre `ORDER BY` clause seront renvoyées. Si vous n'incluez aucune `ORDER BY` clause, vous ne pouvez pas contrôler les 500 métriques correspondantes qui sont renvoyées. 
+ Chaque `GetMetricData` opération ne peut comporter qu'une seule requête, mais vous pouvez avoir plusieurs widgets dans un tableau de bord qui incluent chacun une requête. 