Devo usare GetMetricData o GetMetricStatistics per i parametri di CloudWatch?

4 minuti di lettura
0

Desidero recuperare i punti dati dai miei parametri di Amazon CloudWatch. Quale API devo usare: GetMetricData o GetMetricStatistics?

Breve descrizione

È consigliabile usare l'API GetMetricData 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. Questa differenza di funzionalità si riflette nel costo di ciascun servizio. GetMetricStatistics è incluso nel piano gratuito di CloudWatch per un massimo di 1 milione di richieste API, mentre GetMetricData non lo è. Consulta la tabella seguente e la tabella dei prezzi di CloudWatch per scoprire quale API è più appropriata per te.

Parametri per chiamataPunti dati per chiamataSupporta la metrica matematicaRestituisce risultati ordinati e impaginatiIncluso nei limiti del piano gratuito
GetMetricData500100.800Sì*No
GetMetricStatistics11.440NoNo

*Per restituire il set successivo di punti dati, è necessario iterare i dati utilizzando il NextToken (--next-token) fornito nella risposta.

Le quote di servizio per l'API GetMetricData sono:

  • 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, se il valore StartTime è superiore a tre ore dall'ora corrente.

Risoluzione

Nota: se si verificano errori durante l'esecuzione dei comandi dell'Interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.

Usa il seguente esempio di chiamata come riferimento per effettuare chiamate API GetMetricData personalizzate in AWS CLI.

1.    Crea un parametro di input per la tua chiamata API GetMetricData (metric-data-queries.json). Il parametro di input ha due parametri personalizzati (Invocations ed Errors) e un parametro (ErrorRate) calcolato in base alla metrica matematica degli altri due parametri (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.    Pubblica i dati dei parametri di esempio come parametri personalizzati utilizzando PutMetricData. Ad esempio:

$ 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: puoi anche pubblicare fino a 20 parametri utilizzando una singola chiamata API PutMetricData nello stesso namespace. A tale scopo, utilizza l'opzione**--metric-data** nella chiamata PutMetricData.

3.    Esegui il comando aws cloudwatch get-metric-data con i tuoi parametri di input.

4.    Verifica l'output. In questo esempio vengono calcolati cinque punti dati utilizzando la metrica matematica e restituiti come risultato ordinato nel tempo. m1 ed m2 non sono inclusi nella risposta, perché ReturnData è impostato su 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"
        }
    ]
}

Informazioni correlate

get-metric-data AWS CLI reference

get-metric-statistics AWS CLI reference

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa