Syntaxe de filtre et de modèle - Amazon CloudWatch Logs

Syntaxe de filtre et de modèle

Vous pouvez créer des filtres de métriques pour faire correspondre des termes de vos événements du journal et convertir les données du journal en métriques. Lorsqu'un filtre de métriques correspond à un terme, il incrémente le décompte de la métrique. 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 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.

Note

Lorsque vous attribuez une unité à 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.

Utilisation de modèles de filtre pour faire correspondre les termes dans les événements du journal

Les modèles de filtre constituent la syntaxe utilisée par les filtres de métriques pour faire correspondre les termes dans les événements du journal. Les termes peuvent être des mots, des phrases exactes ou des valeurs numériques. Créez des modèles de filtre à partir des termes que vous souhaitez faire correspondre. Les modèles de filtre renvoient uniquement les événements du journal contenant les termes que vous définissez. Vous pouvez tester les modèles de filtre dans la console CloudWatch. Les exemples suivants contiennent des extraits de code qui montrent comment utiliser des modèles de filtre pour faire correspondre des termes dans vos événements du journal.

Note

Les modèles de filtre sont sensibles à la casse. Placez les phrases et les termes exacts qui incluent des caractères non alphanumériques entre des guillemets doubles ("").

Exemple : faire correspondre un seul terme

L'extrait de code suivant montre un exemple de modèle de filtre à terme unique qui renvoie tous les événements du journal où les messages contiennent le mot ERROR.

ERROR

Le modèle de filtre fait correspondre des messages d'événements du journal, comme l'exemple suivant :

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

Exemple : faire correspondre des termes multiples

L'extrait de code suivant montre un exemple de modèle de filtre à termes multiples qui renvoie tous les événements du journal où les messages contiennent les mots ERROR et ARGUMENTS.

ERROR ARGUMENTS

Le filtre renvoie les messages d'événements du journal, comme l'exemple suivant :

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

Le modèle de filtre ne renvoie pas les messages d'événements du journal suivants, car ils ne contiennent pas les deux termes spécifiés dans le modèle de filtre.

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

Exemple : faire correspondre des termes uniques et multiples

Vous pouvez utiliser la correspondance de modèles pour créer des modèles de filtre qui renvoient des événements du journal contenant un ou plusieurs termes. Insérez un point d'interrogation (« ? ») avant les termes que vous souhaitez faire correspondre. L'extrait de code suivant montre un exemple de modèle de filtre qui renvoie tous les événements du journal où les messages contiennent le mot ERROR ou ARGUMENTS et les mots ERROR et ARGUMENTS.

?ERROR ?ARGUMENTS

Le modèle de filtre fait correspondre des messages d'événements du journal, comme l'exemple suivant :

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

Exemple : faire correspondre des phrases exactes

L'extrait de code suivant montre un exemple de modèle de filtre qui renvoie tous les événements du journal lorsque les messages contiennent la phrase exacte INTERNAL SERVER ERROR.

"INTERNAL SERVER ERROR"

Le modèle de filtre renvoie le message d'événement du journal suivant :

  • [ERROR 500] INTERNAL SERVER ERROR

Exemple : inclure et exclure des termes

Vous pouvez créer des modèles de filtre qui renvoient des événements du journal lorsque les messages incluent certains termes et en excluent d'autres. Insérez un symbole moins (« - ») avant les termes que vous souhaitez exclure. L'extrait de code suivant montre un exemple de modèle de filtre qui renvoie tous les événements du journal lorsque les messages incluent le terme ERROR et excluent le terme ARGUMENTS.

ERROR -ARGUMENTS

Le modèle de filtre renvoie les messages d'événements du journal, comme l'exemple suivant :

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

Le modèle de filtre ne renvoie pas les messages d'événements du journal suivants, car ils contiennent le mot ARGUMENTS.

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

Exemple : faire tout correspondre

Vous pouvez faire correspondre tout dans vos événements du journal à l'aide des guillemets doubles. L'extrait de code suivant montre un exemple de modèle de filtre qui renvoie tous les événements du journal.

" "

Utilisation de filtres de métriques pour faire correspondre des termes et extraire des valeurs à partir des événements du journal JSON

Les filtres de métriques constituent des configurations qui incluent des modèles de filtre. Vous pouvez créer des filtres de métriques pour faire correspondre des termes de vos événements du journal et convertir les données du journal en métriques. Lorsque votre filtre de métriques fait correspondre un terme, vous pouvez incrémenter le décompte de la métrique. Les filtres de métriques font correspondre uniquement les termes que vous définissez dans votre modèle de filtre. Vous pouvez tester les filtres de métriques dans la console CloudWatch. Vous pouvez créer des filtres de métriques pour faire correspondre des termes et extraire des valeurs à partir des événements du journal JSON. Les exemples suivants décrivent la syntaxe des filtres de métriques qui font correspondre les termes JSON contenant des chaînes et des valeurs numériques.

Exemple : filtres de métriques faisant correspondre des chaînes

Vous pouvez créer des filtres de métriques pour faire correspondre des chaînes dans les événements du journal JSON. L'extrait de code suivant montre un exemple de syntaxe pour les filtres de métriques basés sur des chaînes.

{ PropertySelector EqualityOperator String }

Placez les filtres de métriques entre accolades (« {} »). Les filtres de métriques basés sur des chaînes doivent contenir les parties suivantes :

  • Sélecteur de propriétés

    Définissez les sélecteurs de propriétés à l'aide d'un symbole dollar suivi d'un point (« $. »). Les sélecteurs de propriétés constituent des chaînes alphanumériques qui prennent en charge le trait d'union « - » et le caractère de soulignement « _ ». Les chaînes ne prennent pas en charge la notation scientifique. Les sélecteurs de propriétés pointent vers des nœuds de valeur dans les événements du journal JSON. Les nœuds de valeur peuvent être des chaînes ou des nombres. Insérez les matrices après les sélecteurs de propriétés. Les matrices contiennent des éléments qui suivent un système d'ordre basé sur zéro (0 = 1, 1 = 2, etc.). Placez les éléments entre crochets (« [] »). Si un sélecteur de propriétés pointe vers une matrice ou vers un objet, le filtre de métriques ne pourra pas correspondre au format du journal.

  • Opérateur d'égalité

    Définissez les opérateurs d'égalité à l'aide de l'un des symboles suivants : égal (« = ») ou inégal (« != »). Les opérateurs d'égalité renvoient une valeur booléenne (vrai ou faux).

  • chaîne

    Vous pouvez placer des chaînes entre guillemets doubles (""). Les chaînes contenant des types différents des caractères alphanumériques et le symbole de soulignement doivent être placées entre guillemets doubles. Utilisez l'astérisque (« * ») comme joker pour faire correspondre du texte.

L'extrait de code suivant contient un exemple de filtre de métriques qui montre comment formater un filtre de métriques pour faire corresponde un terme JSON à une chaîne.

{ $.eventType = "UpdateTrail" }

Exemple : filtres de métriques faisant correspondre des valeurs numériques

Vous pouvez créer des filtres de métriques pour faire correspondre des valeurs numériques dans les événements du journal JSON. L'extrait de code suivant montre un exemple de syntaxe pour les filtres de métriques qui font correspondre des valeurs numériques.

{ PropertySelector NumericOperator Number }

Placez les filtres de métriques entre accolades (« {} »). Les filtres de métriques qui font correspondre des valeurs numériques doivent comporter les parties suivantes :

  • Property selector (Sélecteur de propriétés)

    Définissez les sélecteurs de propriétés à l'aide d'un symbole dollar suivi d'un point (« $. »). Les sélecteurs de propriétés constituent des chaînes alphanumériques qui prennent en charge le trait d'union « - » et le caractère de soulignement « _ ». Les chaînes ne prennent pas en charge la notation scientifique. Les sélecteurs de propriétés pointent vers des nœuds de valeur dans les événements du journal JSON. Les nœuds de valeur peuvent être des chaînes ou des nombres. Insérez les matrices après les sélecteurs de propriétés. Les matrices contiennent des éléments qui suivent un système d'ordre basé sur zéro (0 = 1, 1 = 2, etc.). Placez les éléments entre crochets (« [] »). Si un sélecteur de propriétés pointe vers une matrice ou vers un objet, le filtre de métriques ne pourra pas correspondre au format du journal.

  • Opérateur numérique

    Définissez les opérateurs numériques à l'aide de l'un des symboles suivants : supérieur à (« > »), inférieur à (« < »), égal (« = »), inégal (« != »), supérieur ou égal à (« >= ») ou inférieur ou égal à (« <= »).

  • nombre

    Vous pouvez utiliser des entiers contenant les symboles plus (« + ») ou moins (« - »), et suivre une notation scientifique. Utilisez l'astérisque (« * ») comme joker pour faire correspondre des nombres.

L'extrait de code suivant contient des exemples qui montrent comment formater des filtres de métriques pour faire correspondre des termes JSON à des valeurs numériques.

// Metric filter with greater than symbol { $.bandwidth > 75 } // Metric filter with less than symbol { $.latency < 50 } // Metric filter with greater than or equal to symbol { $.refreshRate >= 60 } // Metric filter with less than or equal to symbol { $.responseTime <= 5 } // Metric filter with equal sign { $.errorCode = 400} // Metric filter with not equal sign and scientific notation { $.errorCode != 500 } // Metric filter with scientific notation and plus symbol { $.number[0] = 1e-3 } // Metric filter with scientific notation and minus symbol { $.number[0] != 1e+3 }

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

Les exemples suivants contiennent des extraits de code qui montrent comment les filtres de métriques peuvent faire correspondre des termes dans un événement du journal JSON.

Exemple : événement du journal JSON

{ "eventType": "UpdateTrail", "sourceIPAddress": "111.111.111.111", "arrayKey": [ "value", "another value" ], "objectList": [ { "name": "a", "id": 1 }, { "name": "b", "id": 2 } ], "SomeObject": null }
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.

Exemple : filtre de métriques faisant correspondre des chaînes

Le filtre de métriques fait correspondre la chaîne "UpdateTrail" dans la propriété "eventType".

{ $.eventType = "UpdateTrail" }

Exemple : filtre de métriques faisant correspondre des nombres

Le filtre de métriques contient un joker et fait correspondre la propriété "sourceIPAddress", car elle ne contient pas de numéro avec le préfixe "123.123".

{ $.sourceIPAddress != 123.123.* }

Exemple : filtre de métriques faisant correspondre un élément dans une matrice

Le filtre de métriques fait correspondre l'élément "value" dans la matrice "arrayKey".

{ $.arrayKey[0] = "value" }

Exemple : filtre de métriques faisant correspondre un objet dans une matrice

Le filtre de métriques fait correspondre l'objet "id":2 dans la matrice "objectList".

{ $.objectList[1].id = 2 }

Exemple : filtre de métriques faisant correspondre des journaux JSON utilisant IS

Vous pouvez créer des filtres de métriques qui font correspondre des champs dans les journaux JSON avec la IS variable. La variable IS peut faire correspondre des champs contenant les valeurs NULL, TRUE ou FALSE. Le filtre de métriques suivant renvoie les journaux JSON où la valeur de SomeObject est NULL.

{ $.SomeObject IS NULL }

Exemple : filtre de métriques faisant correspondre des journaux JSON utilisant NOT EXISTS

Vous pouvez créer des filtres de métriques avec la variable NOT EXISTS pour renvoyer des journaux JSON qui ne contiennent pas de champs spécifiques dans les données du journal. Le filtre de métriques suivant utilise NOT EXISTS pour renvoyer des journaux JSON qui ne contiennent pas le champ SomeOtherObject.

{ $.SomeOtherObject NOT EXISTS }
Note

Les variables IS NOT et EXISTS ne sont actuellement pas prises en charge.

Utilisation d'expressions composées pour faire correspondre des termes dans des objets JSON

Vous pouvez utiliser les opérateurs logiques AND (« && ») et OR (« || ») dans les filtres de métriques pour créer des expressions composées faisant correspondre des événements du journal où deux ou plusieurs conditions sont vraies. Les expressions composées prennent en charge l'utilisation de parenthèses (« () ») et l'ordre d'opérations standard suivant : () > && > ||. Les exemples suivants contiennent des extraits de code qui montrent comment utiliser des filtres de métriques avec des expressions composées pour faire correspondre des termes dans un objet JSON.

Exemple : objet JSON

{ "user": { "id": 1, "email": "John.Stiles@example.com" }, "users": [ { "id": 2, "email": "John.Doe@example.com" }, { "id": 3, "email": "Jane.Doe@example.com" } ], "actions": [ "GET", "PUT", "DELETE" ], "coordinates": [ [0, 1, 2], [4, 5, 6], [7, 8, 9] ] }

Exemple : expression établissant une correspondance à l'aide de AND (&&)

Le filtre de métriques contient une expression composée qui fait correspondre "id" dans "user" avec une valeur numérique de 1 et "users" dans "email" avec la chaîne "John.Doe@example.com".

{ ($.user.id = 1) && ($.users[0].email = "John.Doe@example.com") }

Exemple : expression établissant une correspondance à l'aide de OR (||)

Le filtre de métriques contient une expression composée qui fait correspondre "email" dans "user" avec la chaîne "John.Stiles@example.com".

{ $.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch" && $.actions[2] = "nonmatch" }

Exemple : expression n'établissant aucune correspondance à l'aide de AND (&&)

Le filtre de métriques contient une expression composée qui ne trouve pas de correspondance, car l'expression ne correspond pas aux première et deuxième coordonnées de "coordinates", ainsi qu'à la troisième action de "actions".

{ ($.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch") && $.actions[2] = "nonmatch" }

Exemple : expression n’établissant aucune correspondance à l'aide de OR (||)

Le filtre de métriques contient une expression composée qui ne trouve pas de correspondance, car l'expression ne correspond pas à la première propriété de "users" ou à la troisième action de "actions".

{ ($.user.id = 2 && $.users[0].email = "nonmatch") || $.actions[2] = "GET" }

Utilisation de filtres de métriques pour extraire des valeurs d'événements du journal délimitées par des espaces

Vous pouvez utiliser des filtres de métriques correspondant à des champs et en extraire des valeurs d'événements du journal délimitées par des espaces. Les exemples suivants contiennent des extraits de code qui montrent un événement du journal délimité par des espaces, un filtre de métriques pointant vers les champs de l'événement du journal délimité par des espaces et les valeurs que le filtre de métriques extrait des champs de l'événement du journal délimité par des espaces.

Exemple : événement du journal délimité par des espaces

L'extrait de code suivant montre un événement du journal délimité par des espaces contenant sept champs : ip, user, username, timestamp, request, status_code et bytes.

127.0.0.1 Prod frank [10/Oct/2000:13:25:15 -0700] "GET /index.html HTTP/1.0" 404 1534
Note

Les caractères entre crochets (« [] ») et les guillemets doubles (« ») sont considérés comme des champs uniques.

Exemple : filtre de métriques

Pour créer un filtre de métriques qui pointe et extrait des valeurs de champ dans un événement du journal délimité par des espaces, placez le filtre de métriques entre crochets (« [] ») et spécifiez des champs dont les noms sont séparés par des virgules («, »). Le filtre de métriques suivant analyse sept champs.

[ip, user, username, timestamp, request =*.html*, status_code = 4*, bytes]

Vous pouvez utiliser des opérateurs numériques (>, <, =, !=, >>= ou <=) et l'astérisque (*) comme joker pour définir les conditions de votre filtre de métriques. Dans l'exemple de filtre de métriques, request contient un joker qui indique qu'il doit extraire une valeur avec .html et status_code contient un joker qui indique qu'il doit extraire une valeur commençant par 4.

Si vous ne connaissez pas le nombre de champs que vous analysez dans un événement du journal délimité par des espaces, vous pouvez utiliser des points de suspension (...) pour référencer n'importe quel champ non nommé. Les points de suspension peuvent référencer autant de champs que nécessaire. L'exemple suivant montre un filtre de métriques avec des points de suspension représentant les quatre premiers champs non nommés montrés dans l'exemple de filtre de métriques précédent.

[..., request =*.html*, status_code = 4*, bytes]

Vous pouvez également utiliser les opérateurs logiques AND (&&) et OR (||) pour créer des expressions composées. Le filtre de métriques suivant contient une expression composée qui indique que la valeur de status_code doit être 404 ou 410.

[ip, user, username, timestamp, request =*.html*, status_code = 404 || status_code = 410, bytes]

Exemple : champs et valeurs extraits

L'extrait de code suivant montre les valeurs que le filtre de métriques extrait des champs dans l'é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", "$user": "Prod", "$ip": "127.0.0.1" }

Utilisation de la correspondance de modèles pour faire correspondre des termes dans des événements du journal délimités par des espaces

Vous pouvez utiliser la correspondance de modèles pour créer des filtres de métriques délimités par des espaces qui font correspondre des termes dans un ordre spécifique. Spécifiez l'ordre de vos termes à l'aide d'indicateurs. Utilisez w1 pour représenter votre premier terme, puis w2, et ainsi de suite, pour représenter l'ordre de vos termes ultérieurs. Insérez des virgules (« , ») entre vos termes. Les exemples suivants contiennent des extraits de code qui montrent comment utiliser la correspondance de modèles avec des filtres de métriques délimités par des espaces.

Exemple : faire correspondre les termes dans l'ordre

Le filtre de métriques délimité par des espaces suivant renvoie les événements du journal où le premier mot des événements du journal est ERROR.

[w1=ERROR, w2]
Note

Lorsque vous créez des filtres de métriques délimités par des espaces qui utilisent la correspondance de modèles, vous devez inclure un indicateur vide après avoir spécifié l'ordre de vos termes. Par exemple, si vous créez un filtre de métriques qui renvoie les événements du journal où le premier mot est ERROR, incluez un indicateur vide w2 après le terme w1.

Exemple : faire correspondre les termes avec AND (&&) et 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 WARNING.

[w1=ERROR || W1=WARNING, w2]

Exemple : exclure des termes des correspondances

Vous pouvez créer des filtres de métriques délimités par des espaces qui renvoient des événements du journal qui excluent un ou plusieurs termes. Placez un symbole moins (« - ») avant les termes que vous souhaitez exclure. L'extrait de code suivant montre un exemple de filtre de métriques qui renvoie les événements du journal lorsque les premiers mots ne sont pas ERROR (ERREUR) et WARNING (AVERTISSEMENT).

[w1!=ERROR && w1!=WARNING, w2]

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, CloudWatch ne rapporte pas de données lorsque votre filtre de métriques ne trouve pas de 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 aide CloudWatch à rapporter les données de manière plus précise et empêche CloudWatch d'agréger des mesures incorrectes. CloudWatch agrège et rapporte des valeurs de 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 métriques ne trouve pas de correspondance, CloudWatch rapporte la valeur par défaut des métriques. 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 console CloudWatch ou la CLI AWS pour créer des filtres de métriques qui publient des dimensions avec des métriques générées par JSON et les événements du 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 Création d'une alarme de facturation pour surveiller vos frais AWS estimés.

Publication de dimensions avec des métriques à partir des événements du journal JSON

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

Exemple : événement du journal JSON

{ "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.

Exemple : filtre de métriques

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".

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

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.

Exemple : événement du journal délimité par des espaces

127.0.0.1 Prod frank [10/Oct/2000:13:25:15 -0700] "GET /index.html HTTP/1.0" 404 1534

Exemple : filtre de métriques

[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".

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 console CloudWatch à 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 en savoir plus sur comment créer un groupe de journaux, consultez Créer un groupe de journaux dans CloudWatch Logs dans le 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 aide CloudWatch à rapporter les données de manière plus précise et empêche CloudWatch d'agréger des mesures incorrectes. CloudWatch agrège et rapporte des valeurs de 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" }