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

Dernière mise à jour : 29/08/2022

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 (AWS CLI) ?

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 : si vous recevez des erreurs lors de l'exécution des commandes AWS CLI, assurez-vous d'utiliser la version la plus récente d'AWS CLI.

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 ce fichier :

  • 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 ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?