View a markdown version of this page

Utilisation de la détection des CloudWatch anomalies - Amazon CloudWatch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de la détection des CloudWatch anomalies

Lorsque vous activez la détection d'anomalies pour une métrique, CloudWatch applique des algorithmes statistiques et d'apprentissage automatique. Ces algorithmes analysent en permanence les métriques des systèmes et des applications pour déterminer les références normales et les anomalies de surface avec une intervention minimale de l'utilisateur.

Les algorithmes génèrent un modèle de détection d'anomalies. Le modèle génère une plage de valeurs attendues qui représentent le comportement normal des métriques.

Vous pouvez activer la détection des anomalies à l'aide du Console de gestion AWS AWS CLI CloudFormation, du ou du AWS SDK. Vous pouvez activer la détection des anomalies sur les métriques distribuées par AWS et également sur les métriques personnalisées. Dans un compte configuré en tant que compte de surveillance pour l'observabilité CloudWatch entre comptes, vous pouvez créer des détecteurs d'anomalies sur les métriques des comptes sources en plus des métriques du compte de surveillance.

Vous pouvez utiliser le modèle des valeurs attendues de deux manières :

  • Vous pouvez créer des alertes de détection d'anomalie basées sur la valeur attendue d'une métrique. Ces types d'alerte n'ont pas de seuil statique pour déterminer l'état de l'alerte. Au lieu de cela, ils comparent la valeur de la mesure à la valeur attendue en fonction du modèle de détection d'anomalies.

    Vous pouvez choisir si l'alerte est déclenchée lorsque la valeur de la métrique est supérieure à la bande de valeurs attendues, inférieure à la bande ou les deux.

    Pour plus d'informations, consultez Création d'une CloudWatch alarme basée sur la détection d'anomalies.

  • Lors de l'affichage d'un graphique des données de métrique, superposez les valeurs attendues sur le graphique sous forme de bande. Cela permet de voir clairement dans le graphique les valeurs qui sont en dehors de la plage normale. Pour de plus amples informations, veuillez consulter Création d'un graphique.

    Vous pouvez également extraire les valeurs supérieures et inférieures du groupe du modèle à l'aide de la demande de l'API GetMetricData avec la fonction mathématique des métriques ANOMALY_DETECTION_BAND. Pour de plus amples informations, veuillez consulter GetMetricData.

Dans un graphique avec détection d'anomalies, la plage de valeurs attendue est affichée sous la forme d'une bande grise. Si la valeur réelle de la métrique dépasse cette bande, elle est affichée en rouge pendant cette période.

Les algorithmes de détection des anomalies tiennent compte de la saisonnalité et des changements de tendance des métriques. Les modifications de saisonnalité peuvent se produire toutes les heures, tous les jours ou toutes les semaines, comme le montrent les exemples suivants.

Console des métriques affichant la détection d'anomalies activée pour la métrique CPUUtilization.
Console des métriques affichant la détection d'anomalies activée pour la métrique CPUUtilization.
Console des métriques affichant la détection d'anomalies activée pour la métrique CPUUtilization.

Les tendances à long terme pourraient être à la baisse ou à la hausse.

Console des métriques affichant la détection d'anomalies activée pour la métrique CPUUtilization.

La détection des anomalies fonctionne également bien avec les métriques présentant des modèles plats.

Console des métriques affichant la détection d'anomalies activée pour la métrique CPUUtilization.

Comment fonctionne la détection des CloudWatch anomalies

Lorsque vous activez la détection d'anomalies pour une métrique, CloudWatch applique des algorithmes d'apprentissage automatique aux données passées de la métrique afin de créer un modèle des valeurs attendues de la métrique. Le modèle évalue à la fois les tendances et les modèles horaires, quotidiens et hebdomadaires de la métrique. L'algorithme forme jusqu'à deux semaines de données de métriques, mais vous pouvez activer la détection d'anomalies sur une métrique, même si la métrique n'a pas deux semaines de données.

Vous spécifiez une valeur pour le seuil de détection des anomalies qui est CloudWatch utilisée conjointement avec le modèle pour déterminer la plage de valeurs « normale » de la métrique. Une valeur plus élevée pour le seuil de détection d'anomalies produit une bande plus épaisse de valeurs « normales ».

Le modèle de machine learning est spécifique à une métrique et à une statistique. Par exemple, si vous activez la détection d'anomalies pour une métrique à l'aide de la statistique AVG, le modèle est spécifique à la statistique AVG.

Lorsque vous CloudWatch créez un modèle pour de nombreuses métriques courantes issues de AWS services, cela garantit que la bande ne s'étend pas en dehors des valeurs logiques. Par exemple, la bande pour MemoryUtilization d'une instance EC2 restera comprise entre 0 et 100, et le suivi des bandes, qui ne peut pas être négatif CloudFront Requests, ne s'étendra jamais en dessous de zéro.

Une fois que vous avez créé un modèle, la détection des CloudWatch anomalies évalue en permanence le modèle et l'ajuste pour s'assurer qu'il est aussi précis que possible. Il s'agit notamment de reformer le modèle pour l'ajuster si les valeurs de métrique évoluent au fil du temps ou ont des changements brusques, et inclut également des prédicteurs pour améliorer les modèles de métriques saisonniers, pointilleux ou clairsemés.

Une fois que vous avez activé la détection d'anomalies sur une métrique, vous pouvez choisir d'exclure des périodes définies de la métrique de leur utilisation dans la formation du modèle. De cette façon, vous pouvez exclure des déploiements ou d'autres événements inhabituels de leur utilisation dans la formation du modèle, garantissant que le modèle le plus précis est créé.

L'utilisation de modèles de détection d'anomalies pour les alarmes entraîne des frais sur votre AWS compte. Pour en savoir plus, consultez Tarification Amazon CloudWatch.

Détection d'anomalies sur les mathématiques appliquées aux métriques

La détection d'anomalies sur les mathématiques métriques est une fonction que vous pouvez utiliser pour créer des alertes de détection d'anomalies sur la sortie d'expressions mathématiques métriques. Vous pouvez utiliser ces expressions pour créer des graphiques qui visualisent les canaux de détection d'anomalies. La fonction prend en charge les fonctions arithmétiques de base, les opérateurs logiques et de comparaison, et la plupart des autres fonctions. Pour plus d'informations sur les fonctions qui ne sont pas prises en charge, consultez la section Utilisation des mathématiques métriques dans le Guide de CloudWatch l'utilisateur Amazon.

Vous pouvez créer des modèles de détection d'anomalies basés sur des expressions mathématiques métriques similaires à la façon dont vous avez déjà créé des modèles de détection d'anomalies. Depuis la CloudWatch console, vous pouvez appliquer la détection des anomalies aux expressions mathématiques métriques et sélectionner la détection des anomalies comme type de seuil pour ces expressions.

Note

La détection des anomalies sur les mathématiques métriques ne peut être activée et modifiée que dans la dernière version de l'interface utilisateur des métriques. Lorsque vous créez des détecteurs d'anomalies basés sur des expressions mathématiques métriques dans la nouvelle version de l'interface, vous pouvez les afficher dans l'ancienne version, mais pas les modifier.

Pour plus d'informations sur la création, la modification et la suppression d'alarmes et de modèles pour la détection d'anomalies et le calcul des métriques, consultez les sections suivantes :

Vous pouvez également créer, supprimer et découvrir des modèles de détection d'anomalies basés sur des expressions mathématiques métriques à l'aide de l' CloudWatch API avec PutAnomalyDetectorDeleteAnomalyDetector, etDescribeAnomalyDetectors. Pour plus d'informations sur ces actions d'API, consultez les sections suivantes du manuel Amazon CloudWatch API Reference.

Pour plus d'informations sur la tarification des alarmes de détection d'anomalies, consultez la page CloudWatch Tarification https://aws.amazon.com/cloudwatch/pricing d'Amazon.

Détection des anomalies à l'aide de ProMQL

Vous pouvez créer des bandes de détection d'anomalies pour n'importe quelle Prometheus-compatible métrique à l'aide de fonctions ProMQL standard telles quequantile_over_time, etstddev_over_time. avg_over_time Cette approche calcule une base de référence et ajoute ou soustrait un écart type échelonné pour définir des limites supérieure et inférieure qui s'adaptent aux modèles naturels de votre métrique.

Cela fonctionne pour toutes les métriques qui renvoient une valeur flottante, telle que l'utilisation du processeur, la latence des demandes ou le nombre d'erreurs. Pour plus d'informations sur l'ingestion de métriques à l'aide de OpenTelemetry, consultezOpenTelemetry.

Définition des limites supérieure et inférieure

Pour définir une plage attendue pour une métrique, calculez une base de référence en utilisant la médiane ou la moyenne sur une fenêtre temporelle, puis ajoutez et soustrayez un multiple de l'écart type. Le multiplicateur contrôle la sensibilité : des valeurs plus élevées produisent des bandes plus larges avec moins de faux positifs, tandis que des valeurs plus faibles détectent des écarts plus faibles.

L'exemple suivant crée une limite supérieure pour un indicateur de demande d'annonce à l'aide d'une fenêtre de 60 minutes et d'un multiplicateur de 3 :

quantile_over_time(0.5, {"app.ads.ad_requests"}[60m] offset 1m) + 3 * stddev_over_time({"app.ads.ad_requests"}[60m] offset 1m)

L'exemple suivant crée la limite inférieure correspondante. La clamp_min fonction empêche la borne inférieure de devenir négative pour les métriques qui ne peuvent pas avoir de valeurs négatives :

clamp_min( quantile_over_time(0.5, {"app.ads.ad_requests"}[60m] offset 1m) - 3 * stddev_over_time({"app.ads.ad_requests"}[60m] offset 1m), 0)

Vous pouvez représenter graphiquement les deux limites ensemble dans CloudWatch Query Studio pour visualiser la plage attendue pour votre métrique. Pour de plus amples informations, veuillez consulter Exécution de requêtes ProMQL dans Query Studio.

Détecter les violations

Pour détecter lorsqu'une métrique se situe en dehors de la plage attendue, combinez les deux limites en une seule requête. L'expression suivante renvoie uniquement les points de données où la valeur de la métrique dépasse la limite supérieure ou tombe en dessous de la limite inférieure :

1 * {"app.ads.ad_requests"} > quantile_over_time(0.5, {"app.ads.ad_requests"}[60m] offset 1m) + 3 * stddev_over_time({"app.ads.ad_requests"}[60m] offset 1m) or 1 * {"app.ads.ad_requests"} < clamp_min( quantile_over_time(0.5, {"app.ads.ad_requests"}[60m] offset 1m) - 3 * stddev_over_time({"app.ads.ad_requests"}[60m] offset 1m), 0)

Cette requête fonctionne sur plusieurs valeurs d'étiquette, ce qui vous permet de détecter les anomalies sur l'ensemble de votre parc en une seule requête. Vous pouvez utiliser cette expression pour créer une alarme ProMQL qui se déclenche lorsqu'une série chronologique dépasse la plage attendue. Pour de plus amples informations, veuillez consulter Création d'une CloudWatch alarme à l'aide de ProMQL pour la détection d'anomalies.