Publier des métriques personnalisées - Amazon CloudWatch

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.

Publier des métriques personnalisées

Vous pouvez publier vos propres statistiques à CloudWatch l'aide de l'API AWS CLI ou d'une API. Vous pouvez consulter les graphiques statistiques de vos statistiques publiées à l'aide du AWS Management Console.

CloudWatch stocke les données relatives à une métrique sous la forme d'une série de points de données. Chaque point de données comporte un horodatage associé. Vous pouvez même publier un ensemble regroupé de points de données appelé un ensemble de statistiques.

Métriques haute résolution

Chaque métrique appartient à l'une des catégories suivantes :

  • Résolution standard, avec des données dont la granularité est d'une minute

  • Haute résolution, avec des données dont la granularité est d'une seconde

Les métriques produites par les AWS services ont une résolution standard par défaut. Lorsque vous publiez une métrique personnalisée, vous pouvez la définir en tant que résolution standard ou haute résolution. Lorsque vous publiez une métrique haute résolution, que vous la CloudWatch stockez avec une résolution de 1 seconde, et vous pouvez la lire et la récupérer sur une période de 1 seconde, 5 secondes, 10 secondes, 30 secondes ou un multiple de 60 secondes.

Les métriques haute résolution peuvent vous donner des informations immédiates sur l'activité de votre application sur une période inférieure à une minute. Gardez à l'esprit que chaque appel PutMetricData pour des métriques personnalisées est facturé, donc des appels PutMetricData plus fréquents sur une métrique haute résolution peut entraîner des frais plus élevés. Pour plus d'informations sur CloudWatch les tarifs, consultez Amazon CloudWatch Pricing.

Si vous définissez une alerte sur une métrique haute résolution, vous pouvez spécifier une alerte haute résolution avec une période de 10 secondes ou de 30 secondes ou vous pouvez définir une alerte régulière avec une période correspondant à n'importe quel multiple de 60 secondes. Les frais sont plus élevés pour les alertes haute résolution dont la période est de 10 ou 30 secondes.

Utiliser les dimensions

Dans les métriques personnalisées, le paramètre --dimensions est commun. Une dimension explicite davantage la nature de la métrique et les données qu'elle stocke. Vous pouvez avoir jusqu'à 30 dimensions affectées à une métrique, et chaque dimension est définie par une paire nom et valeur.

La manière de préciser une dimension varie selon les commandes que vous utilisez. Avec put-metric-data, vous spécifiez chaque dimension comme MyName= MyValue, et avec get-metric-statisticsou put-metric-alarmvous utilisez le format Name= MyName, Value= MyValue. Par exemple, la commande suivante publie une métrique Buffers comptant deux dimensions nommées InstanceId et InstanceType.

aws cloudwatch put-metric-data --metric-name Buffers --namespace MyNameSpace --unit Bytes --value 231434333 --dimensions InstanceId=1-23456789,InstanceType=m1.small

Cette commande récupère des statistiques concernant cette même métrique. Vous devez utiliser des virgules pour séparer les parties Nom et Valeur d'une dimension, mais vous utilisez un espace entre les dimensions, s'il y en a plusieurs.

aws cloudwatch get-metric-statistics --metric-name Buffers --namespace MyNameSpace --dimensions Name=InstanceId,Value=1-23456789 Name=InstanceType,Value=m1.small --start-time 2016-10-15T04:00:00Z --end-time 2016-10-19T07:00:00Z --statistics Average --period 60

Si une seule métrique inclut plusieurs dimensions, vous devez spécifier une valeur pour chaque dimension définie lorsque vous l'utilisez get-metric-statistics. Par exemple, la métrique Amazon S3 BucketSizeBytes inclut les dimensions BucketName et StorageType vous devez donc spécifier les deux dimensions avec get-metric-statistics.

aws cloudwatch get-metric-statistics --metric-name BucketSizeBytes --start-time 2017-01-23T14:23:00Z --end-time 2017-01-26T19:30:00Z --period 3600 --namespace AWS/S3 --statistics Maximum --dimensions Name=BucketName,Value=MyBucketName Name=StorageType,Value=StandardStorage --output table

Vous pouvez voir les dimensions définies pour une métrique grâce à la commande list-metrics.

Publier des points de données uniques

Pour publier un point de données unique pour une métrique nouvelle ou existante, utilisez la put-metric-datacommande avec une seule valeur et un horodatage. Par exemple, les actions suivantes publient chacune un point de données.

aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 2 --timestamp 2016-10-20T12:00:00.000Z aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 4 --timestamp 2016-10-20T12:00:01.000Z aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 5 --timestamp 2016-10-20T12:00:02.000Z

Si vous appelez cette commande avec un nouveau nom de métrique, CloudWatch crée une métrique pour vous. Sinon, CloudWatch associe vos données à la métrique existante que vous avez spécifiée.

Note

Lorsque vous créez une métrique, cela peut prendre jusqu'à 2 minutes avant que vous puissiez récupérer les statistiques de la nouvelle métrique à l'aide de la get-metric-statisticscommande. Cependant, l'affichage de la nouvelle métrique dans la liste des métriques récupérées à l'aide de la commande list-metrics peut prendre jusqu'à 15 minutes.

Bien que vous puissiez publier des points de données avec des horodatages aussi précis qu'un millième de seconde, il agrège les données à une CloudWatch granularité minimale d'une seconde. CloudWatch enregistre la moyenne (somme de tous les éléments divisée par le nombre d'éléments) des valeurs reçues pour chaque période, ainsi que le nombre d'échantillons, la valeur maximale et la valeur minimale pour la même période. Par exemple, la métrique PageViewCount des exemples précédents contient trois points de données avec des horodatages à quelques secondes les uns des autres. Si vos règles sont définies sur 1 minute, CloudWatch agrège les trois points de données car ils sont tous horodatés sur une période d'une minute.

Vous pouvez utiliser la commande get-metric-statistics pour extraire des statistiques basées sur les points de données que vous avez publiés.

aws cloudwatch get-metric-statistics --namespace MyService --metric-name PageViewCount \ --statistics "Sum" "Maximum" "Minimum" "Average" "SampleCount" \ --start-time 2016-10-20T12:00:00.000Z --end-time 2016-10-20T12:05:00.000Z --period 60

Voici un exemple de sortie.

{ "Datapoints": [ { "SampleCount": 3.0, "Timestamp": "2016-10-20T12:00:00Z", "Average": 3.6666666666666665, "Maximum": 5.0, "Minimum": 2.0, "Sum": 11.0, "Unit": "None" } ], "Label": "PageViewCount" }

Publier des ensembles de statistiques

Vous pouvez agréger vos données avant de les publier sur CloudWatch. Lorsque vous avez plusieurs points de données par minute, les regroupements permettent de réduire le nombre d'appels à put-metric-data. Par exemple, au lieu d'appeler put-metric-data plusieurs fois pour trois points de données espacés de trois secondes maximum, vous pouvez regrouper les données dans un ensemble de statistiques que vous publiez en un seul appel, en utilisant le paramètre --statistic-values.

aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --statistic-values Sum=11,Minimum=2,Maximum=5,SampleCount=3 --timestamp 2016-10-14T12:00:00.000Z

CloudWatch a besoin de points de données bruts pour calculer les percentiles. Si, au lieu de cela, vous publiez des données avec un ensemble de statistiques, vous ne pouvez pas récupérer de statistiques relatives aux percentiles pour ces données si aucune des conditions suivantes n'est réunie :

  • La valeur SampleCount de l'ensemble de statistiques est égale à 1.

  • Les valeurs Minimum et Maximum de l'ensemble de statistiques sont égales.

Publier la valeur zéro

Lorsque vos données sont plus sporadiques et que vous avez des périodes sans aucune donnée, vous pouvez choisir de publier la valeur zéro (0) pour cette période ou aucune valeur du tout. Si vous utilisez des appels réguliers à PutMetricData pour surveiller l'état de votre application, vous souhaiterez peut-être publier le chiffre zéro au lieu d'une absence de valeur. Par exemple, vous pouvez définir une CloudWatch alarme pour vous avertir si votre application ne publie pas de statistiques toutes les cinq minutes. Cette application doit alors publier des zéros pour les périodes sans donnée.

Vous pouvez également publier des zéros si vous souhaitez effectuer le suivi du nombre total de points de données ou si vous souhaitez que des statistiques de type minimum ou moyenne incluent des points de données avec la valeur 0.

Arrêter la publication des métriques

Pour arrêter de publier des métriques personnalisées sur CloudWatch, modifiez le code de votre application ou de votre service pour arrêter de l'utiliser PutMetricData. CloudWatch n'extrait pas les métriques des applications, il ne reçoit que ce qui lui est envoyé. Pour arrêter de publier vos métriques, vous devez donc les arrêter à la source.