Dois-je utiliser GetMetricData ou GetMetricStatistics pour les métriques CloudWatch ?
Je souhaite récupérer des points de données à partir de mes métriques Amazon CloudWatch. Quelle API dois-je utiliser, GetMetricData ou GetMetricStatistics ?
Brève description
Une bonne pratique consiste à utiliser l’API GetMetricData au lieu de GetMetricStatistics, car GetMetricData permet de récupérer des données plus rapidement à grande échelle. GetMetricData prend également en charge les mathématiques de métriques et renvoie des résultats ordonnés et paginés. Cette différence de fonctionnalité se reflète dans le coût de chaque service. GetMetricStatistics est inclus dans la version gratuite de CloudWatch, pour un maximum d’un million de requêtes d’API, alors que GetMetricData ne l’est pas. Reportez-vous au tableau ci-dessous et au tableau des prix de CloudWatch pour savoir quelle API vous convient le mieux.
Métriques par appel | Points de données par appel | Prend en charge les mathématiques de métriques | Renvoie des résultats ordonnés et paginés | Inclus dans les limites de l’offre gratuite | |
GetMetricData | 500 | 100 800 | Oui | Oui* | Non |
GetMetricStatistics | 1 | 1 440 | Non | Non | Oui |
*Pour renvoyer le prochain ensemble de points de données, vous devez itérer sur les données en utilisant le NextToken (--next-token) fourni dans la réponse.
Les Service Quotas pour l’API GetMetricData sont les suivants :
- 50 transactions par seconde (TPS).
- 180 000 points de données par seconde (DPS), si le paramètre StartTime de la demande d’API est inférieur ou égal à trois heures par rapport à l’heure actuelle.
- 396 000 DPS, si le paramètre StartTime est supérieur à trois heures par rapport à l’heure actuelle.
Résolution
Remarque : si des erreurs surviennent lors de l’exécution des commandes de l’interface de la ligne de commande AWS (AWS CLI), vérifiez que vous utilisez bien la version la plus récente de l’AWS CLI.
Utilisez l’exemple d’appel suivant comme référence pour effectuer vos propres appels d’API GetMetricData dans l’AWS CLI.
1. Créez un paramètre d’entrée pour votre appel d’API GetMetricData (metric-data-queries.json). Le paramètre d’entrée comporte deux métriques personnalisées (Invocations et Errors) et une métrique (ErrorRate) calculée par les mathématiques appliquées aux deux autres métriques (ErrorRate).
$ cat metric-data-queries.json [ { "Id": "e1", "Expression": "m1 / m2", "Label": "ErrorRate" }, { "Id": "m1", "MetricStat": { "Metric": { "Namespace": "MyApplication", "MetricName": "Errors", "Dimensions": [ { "Name": "FunctionName", "Value": "MyFunc" } ] }, "Period": 300, "Stat": "Sum", "Unit": "Count" }, "ReturnData": false }, { "Id": "m2", "MetricStat": { "Metric": { "Namespace": "MyApplication", "MetricName": "Invocations", "Dimensions": [ { "Name": "FunctionName", "Value": "MyFunc" } ] }, "Period": 300, "Stat": "Sum", "Unit": "Count" }, "ReturnData": false } ]
2. Publiez des exemples de données métriques en tant que métriques personnalisées en utilisant PutMetricData. Par exemple :
$ aws cloudwatch put-metric-data --namespace MyApplication --metric-name Invocations --dimensions FunctionName=MyFunc --value 10 --unit Count --timestamp 2018-06-19T04:00:00Z $ aws cloudwatch put-metric-data --namespace MyApplication --metric-name Invocations --dimensions FunctionName=MyFunc --value 10 --unit Count --timestamp 2018-06-19T04:05:00Z $ aws cloudwatch put-metric-data --namespace MyApplication --metric-name Invocations --dimensions FunctionName=MyFunc --value 10 --unit Count --timestamp 2018-06-19T04:10:00Z $ aws cloudwatch put-metric-data --namespace MyApplication --metric-name Invocations --dimensions FunctionName=MyFunc --value 10 --unit Count --timestamp 2018-06-19T04:15:00Z $ aws cloudwatch put-metric-data --namespace MyApplication --metric-name Invocations --dimensions FunctionName=MyFunc --value 10 --unit Count --timestamp 2018-06-19T04:20:00Z $ aws cloudwatch put-metric-data --namespace MyApplication --metric-name Errors --dimensions FunctionName=MyFunc --value 3 --unit Count --timestamp 2018-06-19T04:00:00Z $ aws cloudwatch put-metric-data --namespace MyApplication --metric-name Errors --dimensions FunctionName=MyFunc --value 6 --unit Count --timestamp 2018-06-19T04:05:00Z $ aws cloudwatch put-metric-data --namespace MyApplication --metric-name Errors --dimensions FunctionName=MyFunc --value 2 --unit Count --timestamp 2018-06-19T04:10:00Z $ aws cloudwatch put-metric-data --namespace MyApplication --metric-name Errors --dimensions FunctionName=MyFunc --value 9 --unit Count --timestamp 2018-06-19T04:15:00Z $ aws cloudwatch put-metric-data --namespace MyApplication --metric-name Errors --dimensions FunctionName=MyFunc --value 1 --unit Count --timestamp 2018-06-19T04:20:00Z
Remarque : vous pouvez également publier jusqu’à 20 métriques à l’aide d’un seul appel d’API PutMetricData dans le même espace de noms. Pour ce faire, utilisez l’option --metric-data dans l’appel PutMetricData.
3. Exécutez la commande aws cloudwatch get-metric-data avec vos paramètres d’entrée.
4. Examinez les données de sortie. Dans cet exemple, cinq points de données sont calculés à l’aide des mathématiques de métriques et renvoyés sous la forme d’un résultat ordonné dans le temps. m1 et m2 ne sont pas inclus dans la réponse, car ReturnData est défini sur false.
$ aws cloudwatch get-metric-data --metric-data-queries file://./metric-data-queries.json --start-time 2018-06-19T04:00:00Z --end-time 2018-06-19T04:30:00Z { "MetricDataResults": [ { "Timestamps": [ "2018-06-19T04:20:00Z", "2018-06-19T04:15:00Z", "2018-06-19T04:10:00Z", "2018-06-19T04:05:00Z", "2018-06-19T04:00:00Z" ], "StatusCode": "Complete", "Values": [ 0.1, 0.9, 0.2, 0.6, 0.3 ], "Id": "e1", "Label": "ErrorRate" } ] }
Informations connexes
Référence de l’interface de la ligne de commande AWS get-metric-data
Référence de l’interface de la ligne de commande AWS get-metric-statistics
Contenus pertinents
- demandé il y a 9 moislg...
- Réponse acceptéedemandé il y a 9 moislg...
- demandé il y a un moislg...
- demandé il y a 8 moislg...
- demandé il y a 5 moislg...
- AWS OFFICIELA mis à jour il y a 10 mois
- AWS OFFICIELA mis à jour il y a 3 ans
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 2 ans