Syntaxe des modèles de filtres pour les filtres de métriques - Amazon CloudWatch Logs

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.

Syntaxe des modèles de filtres pour les filtres de métriques

Note

En quoi les filtres métriques diffèrent CloudWatch des requêtes Logs Insights

Les filtres métriques diffèrent des requêtes CloudWatch Logs Insights en ce sens qu'une valeur numérique spécifiée est ajoutée à un filtre métrique chaque fois qu'un journal correspondant est trouvé. Pour plus d’informations, consultez Configuration des valeurs de métriques pour un filtre de métriques.

Pour plus d'informations sur la façon d'interroger vos groupes de CloudWatch journaux avec le langage de requête Amazon Logs Insights, consultezCloudWatch Syntaxe de requête Logs Insights.

Exemples de modèles de filtres génériques

Pour plus d'informations sur la syntaxe des modèles de filtres génériques applicable aux filtres de métriques ainsi qu'aux filtres d'abonnements et aux filtres des événements du journal, consultez la section Syntaxe des modèles de filtres pour les filtres de métriques, les filtres d'abonnements et les filtres des événements du journal, qui inclut les exemples suivants :

  • Syntaxe des expressions régulières (regex) prise en charge

  • Correspondance des termes dans les événements du journal non structurés

  • Établissement de correspondances dans les événements du journal JSON

  • Correspondance des termes dans les événements du journal délimités par des espaces

Les filtres métriques vous permettent de rechercher et de filtrer les données de journal entrant dans CloudWatch Logs, d'extraire des observations métriques à partir des données de journal filtrées et de transformer les points de données en métriques CloudWatch Logs. Vous définissez les termes et les modèles à rechercher dans les données du journal lorsqu'elles sont envoyées à CloudWatch Logs. Les filtres de métriques sont associés aux groupes de journaux, et tous les filtres affectés à un groupe sont appliqués à ses flux de journaux.

Lorsqu'un filtre de métriques correspond à un terme, il incrémente le décompte de la métrique d'une valeur numérique spécifiée. Par exemple, vous pouvez créer un filtre de métriques qui compte le nombre d'apparitions du mot ERROR dans vos événements du journal.

Vous pouvez attribuer des unités de mesure et des dimensions aux métriques. Par exemple, si vous créez un filtre de métriques qui compte le nombre d'apparitions du mot ERROR (ERREUR) dans vos événements du journal, vous pouvez spécifier une dimension appelée ErrorCode pour afficher le nombre total d'événements du journal contenant le mot ERROR (ERREUR) et filtrer les données par codes d'erreur signalés.

Astuce

Lorsque vous attribuez une unité de mesure à une métrique, assurez-vous de spécifier la bonne unité. Si vous modifiez l'unité plus tard, il se peut que votre modification ne prenne pas effet. Pour obtenir la liste complète des unités prises CloudWatch en charge, consultez MetricDatumle Amazon CloudWatch API Reference.

Configuration des valeurs de métriques pour un filtre de métriques

Lorsque vous créez un filtre de métriques, vous définissez votre modèle de filtre et spécifiez la valeur de vos métriques, ainsi que la valeur par défaut. Vous pouvez définir des valeurs de métriques pour des nombres, des identifiants nommés ou des identifiants numériques. Si vous ne spécifiez pas de valeur par défaut, les données CloudWatch ne seront pas communiquées lorsque votre filtre métrique ne trouve aucune correspondance. Nous vous recommandons de spécifier une valeur par défaut, même si la valeur est 0. La définition d'une valeur par défaut permet de CloudWatch rapporter les données avec plus de précision et CloudWatch d'éviter d'agréger des indicateurs irréguliers. CloudWatch agrège et rapporte les valeurs métriques toutes les minutes.

Lorsque votre filtre de métriques trouve une correspondance dans vos événements du journal, il incrémente le décompte de vos métriques en fonction de leurs valeurs. Si votre filtre de mesure ne trouve aucune correspondance, CloudWatch indique la valeur par défaut de la métrique. Par exemple, votre groupe de journaux publie deux registres toutes les minutes, avec une valeur de métrique égale à 1 et une valeur par défaut égale à 0. Si votre filtre de métriques trouve des correspondances dans les deux registres de journaux au cours de la première minute, la valeur de métrique pour cette minute est égale à 2. Si votre filtre de métriques ne trouve pas de correspondance dans les registres au cours de la seconde minute, la valeur par défaut pour cette minute est égale à 0. Si vous attribuez des dimensions à des métriques générées par des filtres de métriques, vous ne pouvez pas spécifier des valeurs par défaut pour ces métriques.

Vous pouvez également définir un filtre de métriques pour incrémenter une métrique dont la valeur est extraite d'un événement du journal, au lieu d'une valeur statique. Pour plus d’informations, consultez Utilisation de valeurs dans des événements du journal pour incrémenter la valeur d'une métrique.

Publication de dimensions avec des métriques à partir de valeurs dans JSON ou d'événements du journal délimités par des espaces

Vous pouvez utiliser la CloudWatch console ou la AWS CLI pour créer des filtres métriques qui publient des dimensions avec des métriques générées par le JSON et des événements de journal délimités par des espaces. Les dimensions sont des paires de valeur nom/valeur et sont uniquement disponibles pour les modèles de filtres JSON et ceux délimités par des espaces. Vous pouvez créer des filtres de métriques JSON et délimités par des espaces avec trois dimensions maximum. Pour plus d'informations sur les dimensions et comment attribuer des dimensions à des métriques, consultez les sections suivantes :

Important

Les dimensions contiennent des valeurs qui collectent des frais tout comme les métriques personnalisées. Pour éviter des charges inattendues, ne spécifiez pas de champs à cardinalité élevée tels que IPAddress ou requestID, comme dimensions.

Si vous extrayez les métriques des événements du journal, vous êtes facturé pour les métriques personnalisées. Pour éviter que vous ne soyez accidentellement facturé des frais élevés, Amazon peut désactiver un filtre de métriques si celui-ci génère 1000 paires nom/valeur différentes pour des dimensions spécifiées dans un certain espace de temps.

Vous pouvez créer des alarmes de facturation qui vous informent de vos frais estimés. Pour plus d'informations, consultez la section Création d'une alarme de facturation pour surveiller vos AWS frais estimés.

Les exemples suivants contiennent des extraits de code qui décrivent comment spécifier des dimensions dans un filtre de métriques JSON.

Example: JSON log event
{ "eventType": "UpdateTrail", "sourceIPAddress": "111.111.111.111", "arrayKey": [ "value", "another value" ], "objectList": [ {"name": "a", "id": 1 }, {"name": "b", "id": 2 } ] }
Note

Si vous testez les exemples de filtres de métriques avec l'exemple d'événement du journal JSON, vous devez saisir l'exemple de journal JSON sur une seule ligne.

Example: Metric filter

Le filtre de métriques incrémente la métrique chaque fois qu'un événement du journal JSON contient les propriétés eventType et "sourceIPAddress".

{ $.eventType = "*" && $.sourceIPAddress != 123.123.* }

Lorsque vous créez un filtre de métriques JSON, vous pouvez spécifier n'importe laquelle des propriétés du filtre de métriques comme dimension. Par exemple, pour définir eventType comme dimension, utilisez les éléments suivants :

"eventType" : $.eventType

L'exemple de métrique contient une dimension nommée "eventType" et la valeur de la dimension dans l'exemple d'événement du journal est "UpdateTrail".

Les exemples suivants contiennent des extraits de code qui décrivent comment spécifier des dimensions dans un filtre de métriques délimité par des espaces.

Example: Space-delimited log event
127.0.0.1 Prod frank [10/Oct/2000:13:25:15 -0700] "GET /index.html HTTP/1.0" 404 1534
Example: Metric filter
[ip, server, username, timestamp, request, status_code, bytes > 1000]

Le filtre de métriques incrémente la métrique lorsqu'un événement du journal délimité par des espaces inclut l'un des champs spécifiés dans le filtre. Par exemple, le filtre de métriques recherche les champs et les valeurs suivants dans l'exemple d'événement du journal délimité par des espaces.

{ "$bytes": "1534", "$status_code": "404", "$request": "GET /index.html HTTP/1.0", "$timestamp": "10/Oct/2000:13:25:15 -0700", "$username": "frank", "$server": "Prod", "$ip": "127.0.0.1" }

Lorsque vous créez un filtre de métriques délimité par des espaces, vous pouvez spécifier n'importe lequel des champs du filtre de métriques comme dimension. Par exemple, pour définir server comme dimension, utilisez les éléments suivants :

"server" : $server

L'exemple de filtre de métriques contient une dimension nommée server et la valeur de la dimension dans l'exemple d'événement du journal est "Prod".

Example: Match terms with AND (&&) and OR (||)

Vous pouvez utiliser les opérateurs logiques AND (« && ») et OR (« || ») pour créer des filtres de métriques délimités par des espaces contenant des conditions. Le filtre de métriques suivant renvoie les événements du journal lorsque le premier mot des événements est ERROR ou une superchaîne de WARN.

[w1=ERROR || w1=%WARN%, w2]

Utilisation de valeurs dans des événements du journal pour incrémenter la valeur d'une métrique

Vous pouvez créer des filtres de métriques qui publient des valeurs numériques identifiées dans vos événements du journal. La procédure de cette section utilise l'exemple de filtre de métriques suivant pour montrer comment publier une valeur numérique d'un événement du journal JSON dans une métrique.

{ $.latency = * } metricValue: $.latency
Création d'un filtre de métriques qui publie une valeur dans un événement du journal
  1. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation de gauche, choisissez Logs (Journaux), puis Log groups (Groupes de journaux).

  3. Sélectionnez ou créez un groupe de journaux.

    Pour plus d'informations sur la création d'un groupe de journaux, consultez la section Créer un groupe de CloudWatch journaux dans Logs du guide de l'utilisateur Amazon CloudWatch Logs.

  4. Choisissez Actions, puis Create metric filter (Créer un filtre de métrique).

  5. Pour Filter Pattern (Modèle de filtre), saisissez { $.latency = * }, puis choisissez Next (Suivant).

  6. Pour Metric Name (Nom de la métrique), saisissez myMetric.

  7. Pour Valeur de la métrique, saisissez $.latency.

  8. (Facultatif) Pour Default Value (Valeur par défaut), saisissez 0, puis choisissez Next (Suivant).

    Nous vous recommandons de spécifier une valeur par défaut, même si la valeur est 0. La définition d'une valeur par défaut permet de CloudWatch rapporter les données avec plus de précision et CloudWatch d'éviter d'agréger des indicateurs irréguliers. CloudWatch agrège et rapporte les valeurs métriques toutes les minutes.

  9. Choisissez Créer un filtre de métriques.

L'exemple de filtre de métriques fait correspondre le terme "latency" dans l'exemple d'événement du journal JSON et publie une valeur numérique de 50 pour la métrique myMetric.

{ "latency": 50, "requestType": "GET" }