¿Cómo puedo supervisar la métrica EstimatedCharges a diario y activar una alarma de CloudWatch en función de mi umbral de uso?

3 minutos de lectura
0

Quiero supervisar la métrica EstimatedCharges a diario y activar una alarma de Amazon CloudWatch en función de mi umbral de uso.

Descripción corta

La métrica EstimatedCharges se publica a intervalos de aproximadamente 6 horas. Los resultados se restablecen cada mes. Utilice la expresión MetricMath RATE para calcular el valor de EstimatedCharges para cada día. Para calcular MetricMath RATE, divida la diferencia entre el último valor del punto de datos y el valor del punto de datos anterior. A continuación, divida por la diferencia de tiempo en segundos entre los dos valores.

Resolución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Troubleshoot AWS CLI errors. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.

Usar la Consola de administración de AWS para crear una alarma de CloudWatch

Siga estos pasos:

  1. Cree una alarma de CloudWatch basada en una expresión matemática métrica.
  2. En el panel de navegación, en Métricas, elija Todas las métricas.
  3. En la página Métricas, introduzca el siguiente código en la pestaña Fuente:
    {    
        "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
    }
    Nota: El código anterior crea la expresión matemática métrica [ IF(RATE(m1)>0,RATE(m1)*86400,0) ] que usa EstimatedCharges como métrica base con la etiqueta «m1».
  4. Para crear una alarma de CloudWatch para la expresión matemática métrica, elija la pestaña Métricas gráficas.
  5. En la columna Acciones de la métrica DailyEstimatedCharges, seleccione el icono Alarma.
  6. En el asistente de creación de alarmas de CloudWatch, complete los pasos siguientes:
    Confirme los detalles de la configuración de la métrica.
    Añada un valor de umbral adecuado para recibir notificaciones cuando se supere el umbral (por ejemplo, 50.00 USD).
    Configure las acciones de la alarma.
    Añada un nombre y una descripción a la alarma.

Utilice la CLI de AWS para crear una alarma de CloudWatch

Siga estos pasos:

  1. Cree una configuración de alarma como archivo JSON.
    Archivo JSON de ejemplo:

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

    Nota: Sustituya REGION, ACCOUNT_ID y SNS_TOPIC_NAME por sus valores.

  2. Llame a la API PutMetricAlarm.
    Ejemplo de llamada a la API:

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

    (Opcional) Para encontrar los diez principales contribuyentes del día anterior al valor Maximum DailyEstimatedCharges, ejecute la siguiente 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

    El formato de DateTime admitido para StartTime y EndTime es 2020-01-01T00:00:00Z.

    Importante: El comando anterior incurre en cargos en función de la cantidad de métricas recuperadas por cada llamada a la API GetMetricData. Para obtener más información, consulte Precios de Amazon CloudWatch.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 9 meses