Devo usare GetMetricData o GetMetricStatistics per i parametri di CloudWatch?
Voglio sapere se è meglio usare l'API GetMetricData o GetMetricStatistics per recuperare punti dati dalle mie metriche di Amazon CloudWatch.
Breve descrizione
È consigliabile usare l'API ]( anziché GetMetricStatistics, perché con GetMetricData puoi recuperare i dati più velocemente su vasta scala. GetMetricData supporta anche la metrica matematica e restituisce risultati ordinati e impaginati. L'utilizzo di GetMetricStatistics in CloudWatch per un massimo di 1 milione di richieste API non comporta alcun costo. Tuttavia, ti viene addebitato l'utilizzo di GetMetricData in CloudWatch.
Di seguito sono riportate le quote di servizio per l'API GetMetricData:
- 50 transazioni al secondo (TPS).
- 180.000 punti dati al secondo (DPS), se il valore StartTime nella richiesta API è inferiore o uguale a tre ore dall'ora corrente.
- 396.000 DPS quando lo StartTime è superiore a 3 ore dall'ora corrente.
Risoluzione
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Per chiamare l'API GetMetricData nell'interfaccia della linea di comando di AWS, completa i seguenti passaggi:
-
Crea un parametro di input per la tua chiamata API GetMetricData.
Esempio di chiamata:$ 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 } ]
Nota: Nella chiamata precedente, il parametro di input dispone di metriche personalizzate Invocazioni ed Errori. La metrica ErrorRate viene calcolata in base alla matematica delle altre due metriche.
-
Pubblica i dati dei parametri di esempio come parametri personalizzati utilizzando PutMetricData.
Esempio di chiamata:$ 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
Nota: Per pubblicare fino a 20 metriche, utilizza una singola chiamata API PutMetricData con lo stesso namespace. Per eseguire una singola chiamata API PutMetricData con lo stesso namespace, usa l'opzione**--metric-data** nella chiamata PutMetricData.
-
Esegui il comando get-metric-data con i tuoi parametri di input:
$ 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
-
Rivedi l'output.
Esempio di output:$ 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" } ] }
Nota: Nell'output di esempio precedente, cinque punti dati vengono calcolati con numeri metrici e restituiti come risultato ordinato nel tempo. Poiché ReturnData è impostato su false, m1 e m2 non sono inclusi nella risposta.
Informazioni correlate
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 4 mesi fa