Como posso monitorar a métrica EstimatedCharges diária e ativar um alarme do CloudWatch com base no meu limite de uso?

3 minuto de leitura
0

Quero monitorar a métrica EstimatedCharges diária e ativar um alarme do Amazon CloudWatch com base no meu limite de uso.

Breve descrição

A métrica EstimatedCharges é publicada em intervalos de aproximadamente 6 horas. Os resultados são zerados todos os meses. Use a expressão MetricMath RATE para calcular o valor de EstimatedCharges para cada dia. Para calcular MetricMath RATE, divida a diferença entre o valor do ponto de dados mais recente e o valor do ponto de dados anterior. Em seguida, divida pela diferença de tempo em segundos entre os dois valores.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, certifique-se de usar a versão mais recente da AWS CLI.

Usar o Console de Gerenciamento da AWS para criar um alarme do CloudWatch

Conclua as seguintes etapas:

  1. Crie um alarme do CloudWatch com base em uma expressão matemática de métrica.
  2. No painel de navegação, em Métricas, escolha Todas as métricas.
  3. Na página Métricas, insira o seguinte código na guia Fonte:
    {    
        "metrics": [
            [ { "expression": "IF(RATE(m1)>0,RATE(m1)*86400,0)", "label": "Expression1", "id": "e1", "period": 86400, "stat": "Maximum" } ],
            [ "AWS/Billing", "EstimatedCharges", "Currency", "USD", { "id": "m1" } ]
        ],    
        "view": "timeSeries",
        "stacked": false,
        "region": "us-east-1",
        "stat": "Maximum",
        "period": 86400
    }
    Observação: o código anterior cria a expressão matemática métrica [ IF(RATE(m1)>0,RATE(m1)*86400,0) ] que usa EstimatedCharges como métrica base com o rótulo "m1".
  4. Para criar um alarme do CloudWatch para a expressão matemática de métrica, escolha a guia Métricas em gráficos.
  5. Na coluna Ações da métrica DailyEstimatedCharges, escolha o ícone de Alarme.
  6. No assistente de criação de alarme do CloudWatch, conclua as seguintes etapas:
    Confirme os detalhes da configuração da métrica.
    Adicione um valor de limite apropriado para receber notificações quando o limite for excedido, por exemplo, USD 50,00.
    Configure suas ações de alarme.
    Adicione um nome e uma descrição de alarme.

Usar a AWS CLI para criar um alarme do CloudWatch

Conclua as seguintes etapas:

  1. Crie uma configuração de alarme como um arquivo JSON.
    Exemplo de arquivo JSON:

    $ cat alarm_config.json
    {
        "AlarmName": "DailyEstimatedCharges",
        "AlarmDescription": "This alarm would be triggered if the daily estimated charges exceeds 50$",
        "ActionsEnabled": true,
        "AlarmActions": [
            "arn:aws:sns:<REGION>:<ACCOUNT_ID>:<SNS_TOPIC_NAME>"
        ],
        "EvaluationPeriods": 1,
        "DatapointsToAlarm": 1,
        "Threshold": 50,
        "ComparisonOperator": "GreaterThanOrEqualToThreshold",
        "TreatMissingData": "breaching",
        "Metrics": [{
            "Id": "m1",
            "MetricStat": {
                "Metric": {
                    "Namespace": "AWS/Billing",
                    "MetricName": "EstimatedCharges",
                    "Dimensions": [{
                        "Name": "Currency",
                        "Value": "USD"
                    }]
                },
                "Period": 86400,
                "Stat": "Maximum"
            },
            "ReturnData": false
        },
        {
            "Id": "e1",
            "Expression": "IF(RATE(m1)>0,RATE(m1)*86400,0)",
            "Label": "DailyEstimatedCharges",
            "ReturnData": true
        }]
    }

    Observação: substitua os campos REGION, ACCOUNT_ID, e SNS_TOPIC_NAME pelos seus valores.

  2. Chame a API PutMetricAlarm.
    Exemplo de chamada de API:

    aws cloudwatch put-metric-alarm --cli-input-json file://alarm_config.json

    (Opcional) Para encontrar os dez maiores contribuintes do dia anterior para o valor Maximum DailyEstimatedCharges, execute a seguinte consulta:

    $ cat top_contributors_query.json
    {
        "MetricDataQueries": [{
            "Id": "e1",
            "Expression": "SORT(RATE(SEARCH('{AWS/Billing,Currency,ServiceName} AWS/Billing ServiceName', 'Maximum', 86400))*86400, MAX, DESC, 10)",
            "Label": "DailyEstimatedCharges",
            "Period": 86400
        }],
        "ScanBy": "TimestampAscending"
    }
    
    
    $ aws cloudwatch get-metric-data --cli-input-json file://top_contributors_query.json --start-time `date -v -2d '+%Y-%m-%dT%H:%M:%SZ'` --end-time `date '+%Y-%m-%dT%H:%M:%SZ'` --region us-east-1

    O formato DateTime suportado para StartTime e EndTime é 2020-01-01T00:00:00Z.

    Importante: o comando anterior incorre em cobranças com base no número de métricas que cada chamada à API GetMetricData recupera. Para mais informações, consulte os preços do Amazon CloudWatch.

AWS OFICIAL
AWS OFICIALAtualizada há 9 meses