¿Debo usar GetMetricData o GetMetricStatistics para las métricas de CloudWatch?

4 minutos de lectura
0

Quiero recuperar puntos de datos de mis métricas de Amazon CloudWatch. ¿Qué API debo usar, GetMetricData o GetMetricStatistics?

Breve descripción

Se recomienda usar la API GetMetricData en lugar de GetMetricStatistics, ya que puede recuperar datos más rápidamente a escala con GetMetricData. GetMetricData también soporta matemáticas métricas y devuelve resultados ordenados y paginados. Esta diferencia en funcionalidad se refleja en el costo de cada servicio. **GetMetricStatistics ** se incluye en la capa gratuita de CloudWatch para hasta 1 millón de solicitudes de API, mientras que GetMetricData no lo está. Consulte la siguiente tabla y la tabla de precios de CloudWatch para ver qué API es más adecuada para usted.

Métricas por llamadaPuntos de datos por llamadaSoporta matemáticas métricasRegresa resultados ordenados y paginadosIncluido con el nivel gratuito límites
GetMetricData500100 800Sí*No
GetMetricStatistics11440NoNo

*Para regresar a el siguiente conjunto de puntos de datos, debe repetir los datos utilizando el NextToken (--next-token) que se proporciona en la respuesta.

Las cuotas de servicio de la API GetMetricData son:

  • 50 transacciones por segundo (TPS).
  • 180,000 puntos de datos por segundo (DPS), si la StartTime de la solicitud de API es inferior o igual a tres horas con respecto a la hora actual.
  • 396,000 DPS, si la StartTime está a más de tres horas de la hora actual.

Resolución

Nota: Si recibe errores al ejecutar los comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese que está usando la versión más reciente de AWS CLI.

Use el siguiente ejemplo de llamada como referencia para realizar sus propias llamadas a la API GetMetricData en AWS CLI.

1.    Cree un parámetro de entrada para su llamada a la API GetMetricData (metric-data-queries.json). El parámetro de entrada tiene dos métricas personalizadas (Invocations y Errors) y una métrica (ErrorRate) calculadas mediante la matemática métrica de las otras dos métricas (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.    Publique datos métricos de muestra como métricas personalizadas mediante PutMetricData. Por ejemplo:

$ 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: También puede publicar hasta 20 métricas mediante una sola llamada a la API PutMetricData en el mismo espacio de nombres. Para ello, use la opción --metric-data en la llamada PutMetricData.

3.    Ejecute el comando aws cloudwatch get-metric-data con sus parámetros de entrada.

4.    Revise la salida. En este ejemplo, se calculan cinco puntos de datos mediante matemáticas métricas y se devuelven como un resultado ordenado en el tiempo. m1 y m2 no se incluyen en la respuesta porque ReturnData está configurado en 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"
        }
    ]
}

Información relacionada

Referencia de AWS CLI get-metric-data

Referencia de AWS CLI get-metric-statistics

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años