Ir para o conteúdo

É melhor usar a operação GetMetricData ou GetMetricStatistics para ver métricas do CloudWatch?

4 minuto de leitura
0

Quero saber se é melhor usar a operação da API GetMetricData ou GetMetricStatistics para recuperar pontos de dados das minhas métricas do Amazon CloudWatch.

Breve descrição

Como GetMetricData permite recuperar dados mais rapidamente e em maior escala, é uma prática recomendada usar a operação da API GetMetricData em vez da GetMetricStatistics. GetMetricData é compatível com matemática métrica e retorna resultados ordenados e paginados.

A seguir estão as cotas de serviço para a operação da API GetMetricData:

  • 50 transações por segundo (TPS).
  • 180.000 pontos de dados por segundo (DPS), se o StartTime na solicitação da API for menor ou igual ao horário atual em três horas ou menos.
  • 396.000 DPS quando StartTime está a mais de 3 horas da hora atual.

Observação: o preço de GetMetricData é diferente do preço de GetMetricStatistics. Para obter mais informações, selecione a guia Métricas na seção Nível pago da página de preços do Amazon CloudWatch.

Resolução

Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Para usar a operação da API GetMetricData para obter pontos de dados, conclua as seguintes etapas na AWS CLI:

  1. Crie um parâmetro de entrada para sua operação da API GetMetricData.<br id=hardline_break/> Exemplo de operação:

     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
        }
    ]

    Observação: substitua MyApplication pelo nome da sua aplicação.<br id=hardline_break/> Na operação anterior, o parâmetro de entrada tem métricas personalizadas de Invocações e Erros. O CloudWatch calcula a métrica ErrorRate pela matemática métrica das outras duas métricas.

  2. Publique amostras dos dados das métricas como métricas personalizadas usando PutMetricData.<br id=hardline_break/> Exemplo de operação:

    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

    Observação: para publicar até 20 métricas, adicione a opção --metric-data a uma operação PutMetricData no mesmo namespace e, em seguida, execute a API.

  3. Execute o seguinte comando get-metric-data da AWS CLI:

    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

    Observação: substitua //./metric-data-queries.json pelo seu arquivo JSON, 2018-06-19T04:00:00Z pela sua hora de início e 2018-06-19T04:30:00Z pela sua hora de término.<br id=hardline_break/> Exemplo de saída:

    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"
            }
        ]
    }

    Observação: no exemplo de saída anterior, o CloudWatch calcula cinco pontos de dados com matemática métrica e os retorna como um resultado ordenado por tempo. Como ReturnData está definido como falso, m1 e m2 não estão incluídos na resposta.

AWS OFICIALAtualizada há 9 meses