Comment créer une alarme CloudWatch basée sur la détection d'anomalies à l'aide de l'interface de ligne de commande AWS ?

Date de la dernière mise à jour : 13/02/2020

Comment créer une alarme Amazon CloudWatch basée sur la détection d'anomalies à l'aide de l'interface de ligne de commande AWS (CLI AWS) ?

Brève description

Lorsque vous activez la détection d'anomalies pour une métrique, CloudWatch applique des algorithmes de machine learning aux données historiques de la métrique pour créer un modèle des valeurs attendues de la métrique.

Le modèle génère deux métriques qui représentent :

  • La bande supérieure du comportement normal de la métrique
  • La bande inférieure du comportement normal de la métrique, avec une valeur par défaut de deux écarts types

Pour en savoir plus, consultez Comment fonctionne la détection d'anomalies CloudWatch.

Solution

Remarque : assurez-vous d'installer et de configurer la CLI AWS sur votre instance si vous ne l'avez pas déjà fait.

1.    Créez un fichier JSON pour définir une alarme CloudWatch basée sur la détection d'anomalies :

{
    "AlarmActions": [
        "arn:aws:sns:us-east-1:397466294846:test1"
    ],
    "AlarmName": "MyAlarmName",
    "AlarmDescription": "This alarm uses an anomaly detection model",
    "Metrics": [
        {
            "Id": "m1",
            "ReturnData": true,
            "MetricStat": {
                "Metric": {
                    "MetricName": "NetworkIn",
                    "Namespace": "AWS/EC2",
                    "Dimensions": [
                        {
                            "Name": "InstanceId",
                            "Value": "i-0e1830cdc0447f6b9"
                        }
                    ]
                },
                "Stat": "Average",
                "Period": 60
            }
        },
        {
            "Id": "t1",
            "Expression": "ANOMALY_DETECTION_BAND(m1, 3)"
        }
    ],
    "EvaluationPeriods": 2,
    "ThresholdMetricId": "t1",
    "ComparisonOperator": "LessThanLowerOrGreaterThanUpperThreshold"
}

Dans le fichier ci-dessus :

  • L'ID de m1 est affecté à la métrique NetworkIn d'une instance. t1 est la fonction du modèle de détection d'anomalies pour la métrique NetworkIn. Le modèle utilise trois écarts types pour définir la largeur de la bande.
  • ThresholdMetricId est défini sur t1, et ComparisonOperator est défini sur LessThanLowerOrGreaterThanUpperThreshold. Ces paramètres veillent à ce que l'alarme passe à l'état d'alarme lorsque la valeur de métrique se trouve en dehors de la bande du modèle de détection d'anomalies dans les deux sens pendant deux périodes d'évaluation consécutives.

2.    Enregistrez le fichier JSON sous le nom anomaly-alarm.json. Exécutez ensuite la commande suivante pour créer une alarme avec la bande de détection d'anomalies spécifiée dans le fichier :

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

Le modèle est généré lorsque vous avez fini de créer l'alarme. La bande que vous voyez initialement dans le graphique est une estimation de la bande de détection d'anomalies. Il peut s'écouler jusqu'à 15 minutes avant que la bande de détection d'anomalies générée par le modèle apparaisse dans le graphique.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?