

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.

# Enregistrement des expériences pour AWS FIS
<a name="monitoring-logging"></a>

Vous pouvez utiliser la journalisation des expériences pour saisir des informations détaillées sur votre expérience au fur et à mesure de son exécution.

La journalisation des expériences vous est facturée en fonction des coûts associés à chaque type de destination de journal. Pour plus d'informations, consultez les [ CloudWatch tarifs Amazon](https://aws.amazon.com/cloudwatch/pricing/) (sous **Paid Tier**, **Logs**, **Vended Logs**) et [Amazon S3 Pricing](https://aws.amazon.com/s3/pricing/).

## Autorisations
<a name="permissions-experiment-logging"></a>

Vous devez accorder des autorisations AWS FIS pour envoyer des journaux à chaque destination de journal que vous configurez. Pour plus d'informations, consultez les informations suivantes dans le *guide de l'utilisateur d'Amazon CloudWatch Logs* :
+ [Logs envoyés à CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-CWL)
+ [Journaux envoyés à Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3)

## Schéma du journal
<a name="experiment-log-schema"></a>

Le schéma utilisé pour la journalisation des expériences est le suivant. La version actuelle du schéma est 2. Les champs pour `details` dépendent de la valeur de`log_type`. Les champs pour `resolved_targets` dépendent de la valeur de`target_type`. Pour de plus amples informations, veuillez consulter [Exemples d'enregistrements de journal](#example-log-records).

```
{
    "id": "EXP123abc456def789",
    "log_type": "experiment-start | target-resolution-start | target-resolution-detail | target-resolution-end | action-start | action-error | action-end | experiment-end",
    "event_timestamp": "yyyy-mm-ddThh:mm:ssZ",
    "version": "2",
    "details": {
        "account_id":"123456789012",
        "action_end_time": "yyyy-mm-ddThh:mm:ssZ",
        "action_id": "String",
        "action_name": "String",
        "action_start_time": "yyyy-mm-ddThh:mm:ssZ",
        "action_state": {
            "status": "pending | initiating | running | completed | cancelled | stopping | stopped | failed",
            "reason": "String"
        },
        "action_targets": "String to string map",
        "error_information": "String",
        "experiment_end_time": "yyyy-mm-ddThh:mm:ssZ",
        "experiment_state": {
            "status": "pending | initiating | running | completed | stopping | stopped | failed",
            "reason": "String"
        },
        "experiment_start_time": "yyyy-mm-ddThh:mm:ssZ",
        "experiment_template_id": "String",
        "page": Number,
        "parameters": "String to string map",
        "resolved_targets": [
            {
               "field": "value"
            }
        ],
        "resolved_targets_count": Number,
        "status": "failed | completed",
        "target_name": "String",
        "target_resolution_end_time": "yyyy-mm-ddThh:mm:ssZ",
        "target_resolution_start_time": "yyyy-mm-ddThh:mm:ssZ",
        "target_type": "String",
        "total_pages": Number,
        "total_resolved_targets_count": Number

    }
}
```

**Notes de mise à jour**
+ La version 2 introduit :
  + Le `target_type` champ fait passer le `resolved_targets` champ d'une liste d'objets ARNs à une liste d'objets. Les champs valides pour l'`resolved_targets`objet dépendent de la valeur de`target_type`, qui est le [type de ressource](targets.md#resource-types) des cibles.
  + Les types `target-resolution-detail` d'événements `action-error` et qui ajoutent le `account_id` champ.
+ La version 1 est la version initiale.

## Enregistrer les destinations
<a name="experiment-log-destinations"></a>

AWS FIS prend en charge la livraison de journaux vers les destinations suivantes :
+ Un compartiment Amazon S3
+ Un groupe de CloudWatch journaux Amazon Logs

**Livraison du journal S3**  
Les journaux sont livrés à l'emplacement suivant.

```
bucket-and-optional-prefix/AWSLogs/account-id/fis/region/experiment-id/YYYY/MM/DD/account-id_awsfislogs_region_experiment-id_YYYYMMDDHHMMZ_hash.log
```

Plusieurs minutes peuvent s'écouler avant que les journaux ne soient livrés au bucket.

**CloudWatch Logs et livraison de journaux**  
Les journaux sont transmis à un flux de journauxnamed /aws/fis/*experiment-id*.

Les journaux sont envoyés au groupe de journaux en moins d'une minute.

## Exemples d'enregistrements de journal
<a name="example-log-records"></a>

Voici des exemples d'enregistrements de journal pour une expérience qui exécute l'**aws:ec2:reboot-instances**action sur une EC2 instance sélectionnée au hasard.

**Enregistrements**
+ [démarrage de l'expérience](#experiment-start)
+ [target-resolution-start](#target-resolution-start)
+ [target-resolution-detail](#target-resolution-detail)
+ [target-resolution-end](#target-resolution-end)
+ [action-start](#action-start)
+ [fin de l'action](#action-end)
+ [action-erreur](#action-error)
+ [fin de l'expérience](#experiment-end)<a name="experiment-start"></a>

**démarrage de l'expérience**  
Voici un exemple d'enregistrement pour l'`experiment-start`événement.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "experiment-start",
    "event_timestamp": "2023-05-31T18:50:45Z",
    "version": "2",
    "details": {
        "experiment_template_id": "EXTCDh1M8HHkhxoaQ",
        "experiment_start_time": "2023-05-31T18:50:43Z"
    }
}
```<a name="target-resolution-start"></a>

**target-resolution-start**  
Voici un exemple d'enregistrement pour l'`target-resolution-start`événement.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "target-resolution-start",
    "event_timestamp": "2023-05-31T18:50:45Z",
    "version": "2",
    "details": {
        "target_resolution_start_time": "2023-05-31T18:50:45Z",
        "target_name": "EC2InstancesToReboot"
    }
}
```<a name="target-resolution-detail"></a>

**target-resolution-detail**  
Voici un exemple d'enregistrement pour l'`target-resolution-detail`événement. Si la résolution cible échoue, l'enregistrement inclut également le `error_information` champ.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "target-resolution-detail",
    "event_timestamp": "2023-05-31T18:50:45Z",
    "version": "2",
    "details": {
        "target_resolution_end_time": "2023-05-31T18:50:45Z",
        "target_name": "EC2InstancesToReboot",
        "target_type": "aws:ec2:instance",
        "account_id": "123456789012",
        "resolved_targets_count": 2,
        "status": "completed"

    }
}
```<a name="target-resolution-end"></a>

**target-resolution-end**  
Si la résolution cible échoue, l'enregistrement inclut également le `error_information` champ. S'il `total_pages` est supérieur à 1, le nombre de cibles résolues a dépassé la limite de taille pour un enregistrement. Des `target-resolution-end` enregistrements supplémentaires contiennent les cibles résolues restantes.

Voici un exemple d'enregistrement de l'`target-resolution-end`événement associé à une EC2 action.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "target-resolution-end",
    "event_timestamp": "2023-05-31T18:50:45Z",
    "version": "2",
    "details": {
        "target_resolution_end_time": "2023-05-31T18:50:46Z",
        "target_name": "EC2InstanceToReboot",
        "target_type": "aws:ec2:instance",
        "resolved_targets": [
            {
                "arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-0f7ee2abffc330de5"
            }
        ],
        "page": 1,
        "total_pages": 1
    }
}
```

Voici un exemple d'enregistrement de l'`target-resolution-end`événement associé à une action EKS.

```
{
    "id": "EXP24YfiucfyVPJpEJn",
    "log_type": "target-resolution-end",
    "event_timestamp": "2023-05-31T18:50:45Z",
    "version": "2",
    "details": {
        "target_resolution_end_time": "2023-05-31T18:50:46Z",
        "target_name": "myPods",
        "target_type": "aws:eks:pod",
        "resolved_targets": [
            {
                "pod_name": "example-696fb6498b-sxhw5",
                "namespace": "default",
                "cluster_arn": "arn:aws:eks:us-east-1:123456789012:cluster/fis-demo-cluster",
                "target_container_name": "example"
            }
        ],
        "page": 1,
        "total_pages": 1
    }
}
```<a name="action-start"></a>

**action-start**  
Voici un exemple d'enregistrement pour l'`action-start`événement. Si le modèle d'expérience spécifie les paramètres de l'action, l'enregistrement inclut également le `parameters` champ.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "action-start",
    "event_timestamp": "2023-05-31T18:50:56Z",
    "version": "2",
    "details": {
        "action_name": "Reboot",
        "action_id": "aws:ec2:reboot-instances",
        "action_start_time": "2023-05-31T18:50:56Z",
        "action_targets": {"Instances":"EC2InstancesToReboot"}
    }
}
```<a name="action-error"></a>

**action-erreur**  
Voici un exemple d'enregistrement pour l'`action-error`événement. Cet événement n'est renvoyé qu'en cas d'échec d'une action. Il est renvoyé pour chaque compte sur lequel l'action échoue. 

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "action-error",
    "event_timestamp": "2023-05-31T18:50:56Z",
    "version": "2",
    "details": {
        "action_name": "pause-io",
        "action_id": "aws:ebs:pause-volume-io",
        "account_id": "123456789012",
        "action_state": {
            "status": "failed",
            "reason":"Unable to start Pause Volume IO. Target volumes must be attached to an instance type based on the Nitro system. VolumeId(s): [vol-1234567890abcdef0]:"
        }
    }
}
```<a name="action-end"></a>

**fin de l'action**  
Voici un exemple d'enregistrement pour l'`action-end`événement.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "action-end",
    "event_timestamp": "2023-05-31T18:50:56Z",
    "version": "2",
    "details": {
        "action_name": "Reboot",
        "action_id": "aws:ec2:reboot-instances",
        "action_end_time": "2023-05-31T18:50:56Z",
        "action_state": {
            "status": "completed",
            "reason": "Action was completed."
        }
    }
}
```<a name="experiment-end"></a>

**fin de l'expérience**  
Voici un exemple d'enregistrement pour l'`experiment-end`événement.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "experiment-end",
    "event_timestamp": "2023-05-31T18:50:57Z",
    "version": "2",
    "details": {
        "experiment_end_time": "2023-05-31T18:50:57Z",
        "experiment_state": {
            "status": "completed",
            "reason": "Experiment completed"
        }
    }
}
```

## Activer la journalisation des expériences
<a name="enable-experiment-logging"></a>

La journalisation des expériences est désactivée par défaut. Pour recevoir des journaux d'expériences pour une expérience, vous devez créer l'expérience à partir d'un modèle d'expérience avec la journalisation activée. La première fois que vous exécutez un test configuré pour utiliser une destination qui n'a pas été utilisée auparavant pour la journalisation, nous retardons le test pour configurer la livraison du journal vers cette destination, ce qui prend environ 15 secondes.

**Pour activer la journalisation des expériences à l'aide de la console**

1. Ouvrez la console AWS FIS à [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/)l'adresse.

1. Dans le volet de navigation, sélectionnez **Modèles d'expériences**.

1. Sélectionnez le modèle d'expérience, puis choisissez **Actions**, **Mettre à jour le modèle d'expérience**.

1. Pour les **journaux**, configurez les options de destination. Pour envoyer des journaux vers un compartiment S3, choisissez **Envoyer vers un compartiment Amazon S3** et entrez le nom et le préfixe du compartiment. Pour envoyer des CloudWatch journaux à Logs, choisissez **Send to CloudWatch Logs** et entrez le groupe de journaux.

1. Choisissez **Mettre à jour le modèle d'expérience**.

**Pour activer la journalisation des expériences à l'aide du AWS CLI**  
Utilisez la [update-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/update-experiment-template.html)commande et spécifiez une configuration de journal.

## Désactiver la journalisation des expériences
<a name="disable-experiment-logging"></a>

Si vous ne souhaitez plus recevoir les journaux de vos expériences, vous pouvez désactiver la journalisation des expériences.

**Pour désactiver la journalisation des expériences à l'aide de la console**

1. Ouvrez la console AWS FIS à [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/)l'adresse.

1. Dans le volet de navigation, sélectionnez **Modèles d'expériences**.

1. Sélectionnez le modèle d'expérience, puis choisissez **Actions**, **Mettre à jour le modèle d'expérience**.

1. Pour les **journaux**, **décochez Envoyer vers un compartiment Amazon S3** et **Envoyer vers CloudWatch les journaux**.

1. Choisissez **Mettre à jour le modèle d'expérience**.

**Pour désactiver la journalisation des expériences à l'aide du AWS CLI**  
Utilisez la [update-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/update-experiment-template.html)commande et spécifiez une configuration de journal vide.