

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