

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.

# Création de métriques à partir d'événements du journal à l'aide de filtres
<a name="MonitoringLogData"></a>

Vous pouvez rechercher et filtrer les données de journal entrant dans CloudWatch Logs en créant un ou plusieurs *filtres métriques*. Les filtres métriques définissent les termes et les modèles à rechercher dans les données du journal lorsqu'elles sont envoyées à CloudWatch Logs. CloudWatch Logs utilise ces filtres métriques pour transformer les données des journaux en CloudWatch indicateurs numériques que vous pouvez représenter graphiquement ou activer une alarme.

Lorsque vous créez une métrique à partir d'un filtre de journal, vous pouvez également choisir d'attribuer des dimensions et une unité à la métrique. Si vous spécifiez une unité, assurez-vous de spécifier l'unité correcte lorsque vous créez le filtre. La modification ultérieure de l'unité du filtre n'aura aucun effet.

Si vous avez configuré AWS Organizations et utilisez des comptes membres, vous pouvez utiliser la centralisation des journaux pour collecter les données des journaux des comptes sources vers un compte de surveillance central. 

Lorsque vous travaillez avec des groupes de journaux centralisés, vous pouvez utiliser les dimensions de ces champs système lors de la création de filtres métriques.
+ `@aws.account`- Cette dimension représente l'identifiant du AWS compte à l'origine de l'événement du journal.
+ `@aws.region`- Cette dimension représente la AWS région dans laquelle l'événement du journal a été généré. 

Ces dimensions aident à identifier la source des données des journaux, ce qui permet un filtrage et une analyse plus précis des métriques dérivées des journaux centralisés. Pour de plus amples informations, veuillez consulter [Centralisation des journaux inter-comptes et inter-régions](CloudWatchLogs_Centralization.md).

Si un groupe de journaux abonné utilise la transformation des journaux, le modèle de filtre est appliqué aux versions transformées des événements du journal. Pour de plus amples informations, veuillez consulter [Transformez les journaux lors de l'ingestion](CloudWatch-Logs-Transformation.md).

**Note**  
Les filtres métriques ne sont pris en charge que pour les groupes de journaux de la classe de journaux standard. Pour plus d'informations sur les classes de log, consultez[Classes de log](CloudWatch_Logs_Log_Classes.md).

Vous pouvez utiliser n'importe quel type de CloudWatch statistique, y compris les statistiques percentiles, lorsque vous consultez ces statistiques ou que vous configurez des alarmes.

**Note**  
Les statistiques sur les centiles sont prises en charge pour une métrique uniquement si aucune des valeurs de la métrique n'est négative. Si vous configurez votre filtre de métrique afin qu'il puisse signaler des valeurs négatives, les statistiques sur les centiles ne seront pas disponibles pour cette métrique lorsqu'elle aura des nombres négatifs en tant que valeurs. Pour plus d'informations, consultez [Percentiles](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Percentiles).

Les filtres ne traitent pas les données de manière rétroactive. Les filtres publient uniquement les points de données de métriques pour les événements qui se produisent après la création des filtres. Lorsque vous testez un modèle de **filtre, l'aperçu des résultats** du filtre affiche les 50 premières lignes de journal correspondantes à des fins de validation. Si l'horodatage des résultats filtrés est antérieur à l'heure de création de la métrique, aucun journal n'est affiché.

**Topics**
+ [Concepts](#search-filter-concepts)
+ [Syntaxe des modèles de filtres pour les filtres de métriques](FilterAndPatternSyntaxForMetricFilters.md)
+ [Création de filtres de métriques](MonitoringPolicyExamples.md)
+ [Liste des filtres de métriques](ListingMetricFilters.md)
+ [Suppression d'un filtre de métrique](DeletingMetricFilter.md)

## Concepts
<a name="search-filter-concepts"></a>

Chaque filtre de métrique est composé des principaux éléments suivants :

**valeur par défaut**  
La valeur indiquée au filtre de métrique au cours d'une période lorsque les journaux sont ingérés mais qu'aucun journal correspondant n'est trouvé. En définissant cette valeur sur 0, vous vous assurez que les données sont rapportées au cours de chacune de ces périodes, ce qui empêche des métriques irrégulières avec des périodes ne contenant pas de données correspondantes. Si aucun journal n'est ingéré pendant une période d'une minute, aucune valeur n'est rapportée.  
Si vous attribuez des dimensions à une métrique créée par un filtre de métrique, vous ne pouvez pas attribuer une valeur par défaut pour cette métrique.

**dimensions**  
Les dimensions sont les paires clé-valeur qui définissent plus précisément une métrique. Vous pouvez attribuer des dimensions à la métrique créée à partir d'un filtre de métrique. Les dimensions faisant partie de l'identifiant unique d'une métrique, chaque fois qu'une name/value paire unique est extraite de vos journaux, vous créez une nouvelle variante de cette métrique.

**filter pattern**  
Description symbolique de la façon dont CloudWatch Logs doit interpréter les données de chaque événement du journal. Par exemple, une entrée de journal peut contenir des horodatages, des adresses IP, des chaînes et ainsi de suite. Le modèle permet de spécifier ce qu'il faut chercher dans le fichier journal.

**metric name**  
Nom de la CloudWatch métrique dans laquelle les informations du journal surveillé doivent être publiées. Par exemple, vous pouvez publier selon une métrique appelée ErrorCount.

**metric namespace**  
L'espace de noms de destination de la nouvelle CloudWatch métrique.

**metric value**  
La valeur numérique à publier vers la métrique chaque fois qu'un journal correspondant est trouvé. Par exemple, si vous comptez les occurrences d'un terme particulier comme « Erreur », la valeur sera « 1 » pour chaque occurrence. Si vous calculez le nombre d'octets transférés, vous pouvez l'incrémenter par le nombre d'octets trouvés dans l'événement de journal.

# Syntaxe des modèles de filtres pour les filtres de métriques
<a name="FilterAndPatternSyntaxForMetricFilters"></a>

**Note**  
**En quoi les filtres métriques diffèrent-ils des requêtes CloudWatch 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 de plus amples informations, veuillez consulter [Configuration des valeurs de métriques pour un filtre de métriques](#changing-default-increment-value).  
Pour plus d'informations sur la façon d'interroger vos groupes de CloudWatch journaux avec le langage de requête Amazon Logs Insights, consultez[CloudWatch Syntaxe des requêtes en langage Logs Insights](CWL_QuerySyntax.md).  
**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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html) et aux [filtres des événements du journal](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SearchDataFilterPattern.html), 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html), 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 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 [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)le Amazon CloudWatch API Reference.

**Topics**
+ [Configuration des valeurs de métriques pour un filtre de métriques](#changing-default-increment-value)
+ [Publication de dimensions avec des métriques à partir de valeurs dans JSON ou d'événements du journal délimités par des espaces](#logs-metric-filters-dimensions)
+ [Utilisation de valeurs dans des événements du journal pour incrémenter la valeur d'une métrique](#publishing-values-found-in-logs)

## Configuration des valeurs de métriques pour un filtre de métriques
<a name="changing-default-increment-value"></a>

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 de plus amples informations, veuillez consulter [Utilisation de valeurs dans des événements du journal pour incrémenter la valeur d'une métrique](#publishing-values-found-in-logs).

## Publication de dimensions avec des métriques à partir de valeurs dans JSON ou d'événements du journal délimités par des espaces
<a name="logs-metric-filters-dimensions"></a>

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 name/value valeurs uniquement disponibles pour les modèles de filtre JSON et 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 :
+ [Dimensions indiquées](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension) dans le *guide de CloudWatch l'utilisateur Amazon*
+ [Exemple : extraire des champs d'un journal Apache et attribuer des dimensions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/ExtractBytesExample.html) dans le *guide de l'utilisateur Amazon CloudWatch Logs*

**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 vous éviter de percevoir des frais élevés accidentels, Amazon peut désactiver votre filtre métrique s'il génère 1 000 name/value paires différentes pour des dimensions spécifiées sur une période donnée.   
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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html).

### Publication de dimensions avec des métriques à partir des événements du journal JSON
<a name="logs-metric-filters-JSON"></a>

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

------

### Publication de dimensions avec des métriques à partir d'événements du journal délimités par des espaces
<a name="logs-metric-filters-dimensions-space-delimited"></a>

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 (\$1\$1) ]

Vous pouvez utiliser les opérateurs logiques AND (« && ») et OR (« \$1\$1 ») 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
<a name="publishing-values-found-in-logs"></a>

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/](https://console.aws.amazon.com/cloudwatch/).

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

1. 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) du *guide de l'utilisateur Amazon CloudWatch Logs*.

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

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

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

1. Pour **Valeur de la métrique**, saisissez **\$1.latency**.

1. (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.

1. 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"
}
```

# Création de filtres de métriques
<a name="MonitoringPolicyExamples"></a>

La procédure et les exemples suivants montrent comment créer des filtres de métriques.

**Topics**
+ [Créer un filtre de métrique pour un groupe de journaux](CreateMetricFilterProcedure.md)
+ [Exemple : Comptage des événements du journal](CountingLogEventsExample.md)
+ [Exemple : Comptage des occurrences d'un terme](CountOccurrencesExample.md)
+ [Exemple : Comptage du nombre de codes HTTP 404](Counting404Responses.md)
+ [Exemple : comptage de codes HTTP 4xx](FindCountMetric.md)
+ [Exemple : Extraction des champs d'un journal Apache et attribution de dimensions](ExtractBytesExample.md)

# Créer un filtre de métrique pour un groupe de journaux
<a name="CreateMetricFilterProcedure"></a>

Pour créer un filtre de métrique pour un groupe de journaux, procédez comme suit. La métrique ne sera pas visible tant qu'il n'y aura pas de points de données pour elle.

**Pour créer un filtre métrique à l'aide de la CloudWatch console**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

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

1.  Choisissez le nom du groupe de journaux. 

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

1.  Pour **Filter pattern**, saisissez le modèle de filtre. Pour de plus amples informations, veuillez consulter [Syntaxe des modèles de filtres pour les filtres de métriques, les filtres d'abonnements, les filtres d'événements du journal et Live Tail](FilterAndPatternSyntax.md). 

1.  (Facultatif) Si vous utilisez des groupes de journaux centralisés, sous **Critères de sélection des filtres**, vous pouvez spécifier des filtres en fonction du compte source (`@aws.account`), de la région source (`@aws.region`) ou des deux conditions.

1.  (Facultatif) Pour tester votre modèle de filtre, sous **Test Pattern** (Tester le modèle), saisissez un ou plusieurs événements du journal à utiliser à cet effet. Chaque événement du journal doit être mis en forme sur une seule ligne. Utilisez les sauts de ligne pour séparer les événements du journal dans la boîte **Messages d'événements du journal**. 

1.  Sélectionnez **Next** (Suivant), puis saisissez un nom pour le filtre de métrique. 

1.  Sous **Détails de la métrique**, pour l'espace de **noms métrique**, entrez le nom de l'espace de CloudWatch noms dans lequel la métrique sera publiée. Si l’espace réservé au nom n'existe pas encore, assurez-vous que l'option **Create new** (Créer un nouveau) est sélectionnée. 

1.  Pour **Metric name** (Nom de la métrique), saisissez un nom pour la nouvelle métrique. 

1.  Pour **Metric value** (valeur de la métrique), si votre filtre de métrique compte les occurrences des mots-clés dans le filtre, saisissez 1. Cela incrémente la métrique de 1 pour chaque événement de journal qui inclut l'un des mots-clés. 

    Vous pouvez également saisir un jeton tel que **\$1size**. Cela incrémente la métrique de la valeur du nombre dans le champ `size` pour chaque événement de journal qui contient un champ `size`. 

1.  (Facultatif) Pour **Unit** (Unité), sélectionnez une unité à affecter à la métrique. Si vous ne spécifiez pas d'unité, elle est définie comme `None`. 

1.  (Facultatif) Saisissez les noms et les jetons pour trois dimensions maximum pour la métrique. Si vous attribuez des dimensions à des métriques créées par des filtres de métriques, vous ne pouvez pas affecter des valeurs par défaut pour ces métriques. 
**Note**  
 Les dimensions sont prises en charge uniquement dans JSON ou dans les filtres de métriques délimités par des espaces. 

1.  Choisissez **Créer un filtre de métriques**. Vous pouvez trouver le filtre de métrique que vous avez créé à partir du panneau de navigation. Choisissez **Journaux**, puis **groupe de journaux**. Choisissez le nom du groupe de journaux pour lequel vous avez créé votre filtre de métrique, puis sélectionnez l’onglet **Filtres de métriques**. 

# Exemple : Comptage des événements du journal
<a name="CountingLogEventsExample"></a>

Le type de surveillance des événements du journal le plus simple consiste à compter le nombre d'événements du journal qui se produisent. Vous pouvez souhaiter procéder ainsi pour garder un décompte de tous les événements, pour créer une surveillance de style « pulsation » ou tout simplement pour vous entraîner à créer des filtres de métriques.

Dans l'exemple de CLI suivant, un filtre métrique appelé MyAppAccessCount est appliqué au groupe de journaux MyApp /access.log pour créer la métrique EventCount dans l'espace de CloudWatch noms MyNamespace. Le filtre est configuré de manière à établir une correspondance avec n'importe quel contenu d'événement de journal et à augmenter la métrique de « 1 ».

**Pour créer un filtre métrique à l'aide de la CloudWatch console**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, choisissez **Groupes de journaux**.

1. Choisissez le nom d'un groupe de journaux.

1. Choisissez `Actions`, **Créer un filtre de métriques**.

1. Laissez les champs **Modèle de filtre** et **Sélectionner les données de journal à tester** vides.

1. Choisissez **Suivant**, puis, pour **Nom du filtre**, tapez **EventCount**.

1. Sous **Metric Details**, pour **Metric Namespace**, tapez **MyNameSpace**.

1. Dans **Metric Name (Nom de la métrique)**, saisissez **MyAppEventCount**.

1. Confirmez que la **Valeur de la métrique** est égale à 1. Cela indique que le décompte est augmenté d'1 pour chaque événement de journal.

1. Dans **Valeur par défaut** saisissez 0, puis choisissez **Suivant**. Le fait de spécifier une valeur par défaut garantit que les données sont signalées même pendant les périodes où aucun événement de journal ne se produit, ce qui empêche les métriques irrégulières en cas d'absence de données.

1. Choisissez **Créer un filtre de métriques**.

**Pour créer un filtre métrique à l'aide du AWS CLI**  
A partir d'une invite de commande, exécutez la commande suivante :

```
aws logs put-metric-filter \
  --log-group-name MyApp/access.log \
  --filter-name EventCount \
  --filter-pattern " " \
  --metric-transformations \
  metricName=MyAppEventCount,metricNamespace=MyNamespace,metricValue=1,defaultValue=0
```

Vous pouvez tester cette nouvelle stratégie en publiant n'importe quelles données d'événements. Vous devriez voir les points de données publiés sur la métrique MyAppAccessEventCount.

**Pour publier les données d'un événement à l'aide du AWS CLI**  
A partir d'une invite de commande, exécutez la commande suivante :

```
aws logs put-log-events \
  --log-group-name MyApp/access.log --log-stream-name TestStream1 \
  --log-events \
    timestamp=1394793518000,message="Test event 1" \
    timestamp=1394793518000,message="Test event 2" \
    timestamp=1394793528000,message="This message also contains an Error"
```

# Exemple : Comptage des occurrences d'un terme
<a name="CountOccurrencesExample"></a>

Les événements du journal comprennent fréquemment des messages importants que vous pouvez souhaiter comptabiliser. Il peut s'agir de messages sur l'échec ou la réussite des opérations. Par exemple, une erreur peut se produire et être enregistrée dans un fichier journal en cas d'échec d'une opération spécifique. Il est possible de surveiller ces entrées pour comprendre l'évolution de vos erreurs.

Dans l'exemple ci-dessous, un filtre de métrique est créé pour surveiller le terme Error. La politique a été créée et ajoutée au groupe de journaux **MyApp/message.log**. CloudWatch Logs publie un point de données vers la métrique CloudWatch personnalisée ErrorCount dans l'espace de noms **MyApp/message.log** avec une valeur de « 1 » pour chaque événement contenant une erreur. Si aucun événement ne contient le mot Error, la valeur 0 est publiée. Lorsque vous tracez ces données dans la CloudWatch console, veillez à utiliser la statistique de somme.

Après avoir créé un filtre de mesure, vous pouvez afficher la métrique dans la CloudWatch console. Lorsque vous sélectionnez la métrique à afficher, sélectionnez l'espace de noms de métrique correspondant au nom du groupe de journaux. Pour de plus amples informations, consultez [Affichage des métriques disponibles](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html).

**Pour créer un filtre métrique à l'aide de la CloudWatch console**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, choisissez **Groupes de journaux**.

1. Choisissez le nom du groupe de journaux.

1. Choisissez **Actions**, **Créer un filtre de métriques**.

1. Pour **Modèle de filtre**, saisissez **Error**.
**Note**  
Toutes les entrées figurant dans **Filter Pattern** sont sensibles à la casse.

1. (Facultatif) Pour tester votre modèle de filtre, sous **Test Pattern** (Modèle de test), saisissez un ou plusieurs événements du journal à utiliser pour tester le modèle. Chaque événement de journal doit se trouver sur une seule ligne, car des sauts de ligne sont utilisés pour séparer les événements du journal dans la boîte **Messages d'événements du journal**.

1. Choisissez **Suivant**, puis, sur la page **Affecter une métrique**, pour **Nom du filtre**, tapez **MyAppErrorCount**.

1. Sous **Metric Details**, pour **Metric Namespace**, tapez **MyNameSpace**.

1. Dans **Metric Name (Nom de la métrique)**, saisissez **ErrorCount**.

1. Confirmez que la **Valeur de la métrique** est égale à 1. Cela indique que le décompte est augmenté d'1 pour chaque événement de journal contenant « Error ».

1. Pour **Valeur par défaut** tapez 0, puis choisissez **Suivant**. 

1. Choisissez **Créer un filtre de métriques**.

**Pour créer un filtre métrique à l'aide du AWS CLI**  
A partir d'une invite de commande, exécutez la commande suivante :

```
aws logs put-metric-filter \
  --log-group-name MyApp/message.log \
  --filter-name MyAppErrorCount \
  --filter-pattern 'Error' \
  --metric-transformations \
      metricName=ErrorCount,metricNamespace=MyNamespace,metricValue=1,defaultValue=0
```

Vous pouvez tester cette nouvelle stratégie en publiant les événements contenant le mot « Error » dans le message.

**Pour publier des événements à l'aide du AWS CLI**  
A partir d’une invite de commande, exécutez la commande suivante. Notez que les modèles sont sensible à la casse.

```
aws logs put-log-events \
  --log-group-name MyApp/access.log --log-stream-name TestStream1 \
  --log-events \
    timestamp=1394793518000,message="This message contains an Error" \
    timestamp=1394793528000,message="This message also contains an Error"
```

# Exemple : Comptage du nombre de codes HTTP 404
<a name="Counting404Responses"></a>

À l'aide CloudWatch des journaux, vous pouvez surveiller le nombre de fois que vos serveurs Apache renvoient une réponse HTTP 404, qui est le code de réponse pour une page introuvable. Vous pouvez surveiller ce phénomène afin d'appréhender le nombre de fois où les visiteurs de votre site ne trouvent pas la ressource qu'ils recherchent. Supposons que vos enregistrements de journaux sont structurés de manière à inclure les informations suivantes pour chaque événement de journal (visite du site) :
+ Adresse IP du demandeur
+ Identité RFC 1413
+ Nom d'utilisateur
+ Horodatage
+ Méthode de la demande avec la ressource demandée et le protocole
+ Code de réponse HTTP à la demande
+ Nombre d'octets transférés dans la demande

Voici un exemple correspondant :

```
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 404 2326
```

Vous pouvez spécifier une règle qui tente de relever les événements de cette structure pour les erreurs HTTP 404, comme illustré dans l'exemple suivant :

**Pour créer un filtre métrique à l'aide de la CloudWatch console**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, choisissez **Groupes de journaux**.

1. Choisissez `Actions`, **Créer un filtre de métriques**.

1. Pour **Modèle de filtre**, tapez **[IP, UserInfo, User, Timestamp, RequestInfo, StatusCode=404, Bytes]**.

1. (Facultatif) Pour tester votre modèle de filtre, sous **Test Pattern** (Modèle de test), saisissez un ou plusieurs événements du journal à utiliser pour tester le modèle. Chaque événement de journal doit se trouver sur une seule ligne, car des sauts de ligne sont utilisés pour séparer les événements du journal dans la boîte **Messages d'événements du journal**.

1. Choisissez **Next**, puis pour **Nom du filtre**, tapez **HTTP404Errors**.

1. Sous **Détails de la métrique**, pour **Espace de nom de la métrique**, saisissez **MyNameSpace**.

1. Pour **Nom de la métrique**, saisissez **ApacheNotFoundErrorCount**.

1. Confirmez que la **Valeur de la métrique** est égale à 1. Cela indique que le décompte est augmenté d'1 pour chaque événement « 404 Error ».

1. Dans **Valeur par défaut** saisissez 0, puis choisissez **Suivant**.

1. Choisissez **Créer un filtre de métriques**.

**Pour créer un filtre métrique à l'aide du AWS CLI**  
A partir d'une invite de commande, exécutez la commande suivante :

```
aws logs put-metric-filter \
  --log-group-name MyApp/access.log \
  --filter-name HTTP404Errors \
  --filter-pattern '[ip, id, user, timestamp, request, status_code=404, size]' \
  --metric-transformations \
      metricName=ApacheNotFoundErrorCount,metricNamespace=MyNamespace,metricValue=1
```

Dans cet exemple, les caractères littéraux, tels que les crochets gauche et droit, les doubles guillemets et la chaîne de caractères 404 ont été utilisés. Le modèle doit correspondre au message tout entier de l'événement du journal pour que cet événement soit pris en compte à des fins de surveillance.

Vous pouvez vérifier la création du filtre de métrique à l'aide de la commande **describe-metric-filters**. Vous devriez obtenir un résultat du type suivant :

```
aws logs describe-metric-filters --log-group-name MyApp/access.log

{
    "metricFilters": [
        {
            "filterName": "HTTP404Errors", 
            "metricTransformations": [
                {
                    "metricValue": "1", 
                    "metricNamespace": "MyNamespace", 
                    "metricName": "ApacheNotFoundErrorCount"
                }
            ], 
            "creationTime": 1399277571078, 
            "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]"
        }
    ]
}
```

Désormais, vous pouvez publier quelques événements manuellement :

```
aws logs put-log-events \
--log-group-name MyApp/access.log --log-stream-name hostname \
--log-events \
timestamp=1394793518000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb.gif HTTP/1.0\" 404 2326" \
timestamp=1394793528000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2326"
```

Peu après avoir enregistré ces exemples d'événements de journal, vous pouvez récupérer la métrique nommée dans la CloudWatch console sous le nom de ApacheNotFoundErrorCount.

# Exemple : comptage de codes HTTP 4xx
<a name="FindCountMetric"></a>

Comme dans l'exemple précédent, il se peut que vous souhaitiez surveiller vos journaux d'accès aux services Web ainsi que les niveaux de code de réponse HTTP. Par exemple, vous pouvez souhaiter surveiller toutes les erreurs HTTP de niveau 400. Cependant, vous ne voudrez pas forcément spécifier un nouveau filtre de métrique pour chaque code de retour.

Vous trouverez ci-dessous comment créer une métrique qui inclut toutes les réponses de code HTTP de niveau 400 à partir d'un journal d'accès en utilisant le format de journal d'accès Apache de l'exemple [Exemple : Comptage du nombre de codes HTTP 404](Counting404Responses.md).

**Pour créer un filtre métrique à l'aide de la CloudWatch console**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, choisissez **Groupes de journaux**.

1. Choisissez le nom du groupe de journaux du serveur Apache.

1. Choisissez `Actions`, **Créer un filtre de métriques**.

1. Pour **Modèle de filtre**, saisissez **[ip, id, user, timestamp, request, status\$1code=4\$1, size]**.

1. (Facultatif) Pour tester votre modèle de filtre, sous **Test Pattern** (Modèle de test), saisissez un ou plusieurs événements du journal à utiliser pour tester le modèle. Chaque événement de journal doit se trouver sur une seule ligne, car des sauts de ligne sont utilisés pour séparer les événements du journal dans la boîte **Messages d'événements du journal**.

1. Choisissez **Next** (Suivant), puis, pour **Filter name** (Nom du filtre), tapez **HTTP4xxErrors**.

1. Sous **Détails de la métrique**, pour **Espace de nom de la métrique**, saisissez **MyNameSpace**.

1. Dans **Nom de la métrique**, entrez **HTTP4xxErrors**.

1. Pour **Valeur de la métrique**, saisissez 1. Cela indique que le décompte est augmenté d'1 pour chaque événement de journal contenant « 4xx error ».

1. Pour **Default value** (Valeur par défaut) saisissez 0, puis choisissez **Next** (Suivant). 

1. Choisissez **Créer un filtre de métriques**.

**Pour créer un filtre métrique à l'aide du AWS CLI**  
A partir d'une invite de commande, exécutez la commande suivante :

```
aws logs put-metric-filter \
  --log-group-name MyApp/access.log \
  --filter-name HTTP4xxErrors \
  --filter-pattern '[ip, id, user, timestamp, request, status_code=4*, size]' \
  --metric-transformations \
  metricName=HTTP4xxErrors,metricNamespace=MyNamespace,metricValue=1,defaultValue=0
```

Vous pouvez utiliser les données suivantes dans les appels PutEvents pour tester cette règle. Si vous n'a pas supprimé la règle de surveillance de l'exemple précédent, vous allez générer deux métriques différentes.

```
127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287
127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /~test/ HTTP/1.1" 200 3
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308
127.0.0.1 - - [24/Sep/2013:11:51:34 -0700] "GET /~test/index.html HTTP/1.1" 200 3
```

# Exemple : Extraction des champs d'un journal Apache et attribution de dimensions
<a name="ExtractBytesExample"></a>

Parfois, au lieu de compter, il peut s'avérer utile d'utiliser des valeurs d'événements du journal individuels pour les valeurs de métriques. Cet exemple montre comment vous pouvez créer une règle d'extraction afin de créer une métrique qui mesure le nombre d'octets transférés par un serveur Apache.

Cet exemple montre également comment affecter des dimensions à la métrique que vous créez.

**Pour créer un filtre métrique à l'aide de la CloudWatch console**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, choisissez **Groupes de journaux**.

1. Choisissez le nom du groupe de journaux du serveur Apache.

1. Choisissez `Actions`, **Créer un filtre de métriques**.

1. Pour **Modèle de filtre**, saisissez **[ip, id, user, timestamp, request, status\$1code, size]**.

1. (Facultatif) Pour tester votre modèle de filtre, sous **Test Pattern** (Modèle de test), saisissez un ou plusieurs événements du journal à utiliser pour tester le modèle. Chaque événement de journal doit se trouver sur une seule ligne, car des sauts de ligne sont utilisés pour séparer les événements du journal dans la boîte **Messages d'événements du journal**.

1. Choisissez **Next** (Suivant), puis, pour **Filter name** (Nom du filtre), tapez **size**.

1. Sous **Metric details** (Détails de la métrique), pour **Metric namespace** (Espace de nom de la métrique), saisissez **MyNameSpace**. Comme il s'agit d'un nouvel espace de nom, assurez-vous que l'option **Create new** (Créer un nouveau) est sélectionnée.

1. Pour **Nom de la métrique**, saisissez **BytesTransferred**

1. Pour **Valeur de la métrique**, saisissez **\$1size**.

1. Pour **Unit** (Unité), sélectionnez **Bytes** (Octets).

1. Pour **Dimension Name**, tapez **IP**.

1. Pour **Dimension Value** (Valeur de la dimension), tapez **\$1ip** et ensuite choisissez **Next** (Suivant).

1. Choisissez **Créer un filtre de métriques**.

**Pour créer ce filtre métrique à l'aide du AWS CLI**  
A partir d'une invite de commande, exécutez la commande suivante :

```
aws logs put-metric-filter \
--log-group-name MyApp/access.log \
 --filter-name BytesTransferred \
 --filter-pattern '[ip, id, user, timestamp, request, status_code, size]' \
 --metric-transformations  \
 metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue='$size'
```

```
aws logs put-metric-filter \
--log-group-name MyApp/access.log \
--filter-name BytesTransferred \
--filter-pattern '[ip, id, user, timestamp, request, status_code, size]' \
--metric-transformations  \
metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue='$size',unit=Bytes,dimensions='{{IP=$ip}}'
```

**Note**  
Dans cette commande, utilisez ce format pour spécifier plusieurs dimensions.  

```
aws logs put-metric-filter \
--log-group-name my-log-group-name \
--filter-name my-filter-name \
--filter-pattern 'my-filter-pattern' \
--metric-transformations  \
metricName=my-metric-name,metricNamespace=my-metric-namespace,metricValue=my-token,unit=unit,dimensions='{dimension1=$dim,dimension2=$dim2,dim3=$dim3}'
```

Vous pouvez utiliser les données suivantes dans les put-log-event appels pour tester cette règle. Si vous n'avez pas supprimé la règle de surveillance de l'exemple précédent, vous allez générer deux métriques différentes.

```
127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287
127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /~test/ HTTP/1.1" 200 3
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308
127.0.0.1 - - [24/Sep/2013:11:51:34 -0700] "GET /~test/index.html HTTP/1.1" 200 3
```

# Liste des filtres de métriques
<a name="ListingMetricFilters"></a>

Vous pouvez lister tous les filtres de métriques d'un groupe de journaux.

**Pour répertorier les filtres métriques à l'aide de la CloudWatch console**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, choisissez **Groupes de journaux**.

1. Dans le volet de contenu, dans la liste des groupes de journaux, et plus précisément dans la colonne **Metric Filters**, choisissez le nombre de filtres.

   La fenêtre **Log Groups > Filters for** répertorie tous les filtres de métriques associés au groupe de journaux.

**Pour répertorier les filtres métriques à l'aide du AWS CLI**  
A partir d'une invite de commande, exécutez la commande suivante :

```
aws logs describe-metric-filters --log-group-name MyApp/access.log
```

Voici un exemple de sortie :

```
{
    "metricFilters": [
        {
            "filterName": "HTTP404Errors", 
            "metricTransformations": [
                {
                    "metricValue": "1", 
                    "metricNamespace": "MyNamespace", 
                    "metricName": "ApacheNotFoundErrorCount"
                }
            ], 
            "creationTime": 1399277571078, 
            "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]"
        }
    ]
}
```

# Suppression d'un filtre de métrique
<a name="DeletingMetricFilter"></a>

Une stratégie est identifiée par son nom et le groupe de journaux auquel elle appartient.

**Pour supprimer un filtre métrique à l'aide de la CloudWatch console**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, choisissez **Groupes de journaux**.

1. Dans le volet de contenu, dans la colonne **Metric Filter** (Filtre de métrique), choisissez le nombre de filtres de métriques pour le groupe de journaux.

1. Sous l'écran **Metric Filters** (Filtres de métriques), cochez la case à droite du nom du filtre que vous voulez supprimer. Ensuite, choisissez **Supprimer**.

1. Lorsque vous êtes invité à confirmer l’opération, choisissez **Supprimer**.

**Pour supprimer un filtre métrique à l'aide du AWS CLI**  
A partir d'une invite de commande, exécutez la commande suivante :

```
aws logs delete-metric-filter --log-group-name MyApp/access.log \
 --filter-name MyFilterName
```