

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.

# Récupération de métriques avec l’API Performance Insights pour Amazon RDS
<a name="USER_PerfInsights.API"></a>

Lorsque l'analyse des performances est activée, l'API fournit une visibilité sur les performances des instances. Amazon CloudWatch Logs fournit la source faisant autorité pour les métriques de surveillance vendues pour les services AWS. 

Performance Insights offre une vue spécifique au domaine de la charge de base de données mesurée en tant que moyenne des sessions actives (AAS). Cette métrique est présentée aux consommateurs de l'API sous la forme d'un ensemble de données de série chronologique bidimensionnel. La dimension temporelle des données fournit les données de charge de la base de données pour chaque point temporel de la plage de temps interrogée. Chaque point dans te temps décompose la charge globale par rapport aux dimensions demandées, par exemple, `SQL`, `Wait-event`, `User` ou `Host`, mesurée à ce point dans le temps.

Amazon RDS Performance Insights surveille votre instance de base de données Amazon RDS pour vous permettre d'analyser les performances de votre base de données et de résoudre les problèmes associés. Vous pouvez consulter les données de Performance Insights dans AWS Management Console. Performance Insights fournit également une API publique qui vous permet d'interroger vos propres données. Vous pouvez utiliser l'API pour effectuer les opérations suivantes :
+ Déchargement des données dans une base de données
+ Ajout de données Performance Insights aux tableaux de bord de surveillance existants
+ Création d'outils de surveillance

Pour utiliser l'API Performance Insights, activez Performance Insights sur l'une de vos instances de base de données Amazon RDS. Pour plus d’informations sur l’activation de Performance Insights, consultez [Activation ou désactivation de l’Analyse des performances pour Amazon RDS](USER_PerfInsights.Enabling.md). Pour plus d’informations sur l’API Performance Insights, consultez la [Référence d’API Amazon RDS Performance Insights](https://docs.aws.amazon.com/performance-insights/latest/APIReference/Welcome.html).

L'API Performance Insights fournit les opérations suivantes.


****  

|  Action Performance Insights  |  AWS CLI commande  |  Description  | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_CreatePerformanceAnalysisReport.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_CreatePerformanceAnalysisReport.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/CreatePerformanceAnalysisReport.html](https://docs.aws.amazon.com/cli/latest/reference/pi/CreatePerformanceAnalysisReport.html)  |  Crée un rapport d'analyse des performances pour une période spécifique pour l'instance de base de données. Le résultat est `AnalysisReportId` qui est l'identifiant unique du rapport.  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DeletePerformanceAnalysisReport.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DeletePerformanceAnalysisReport.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/DeletePerformanceAnalysisReport.html](https://docs.aws.amazon.com/cli/latest/reference/pi/DeletePerformanceAnalysisReport.html)  |  Supprime un rapport d'analyse des performances.  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html](https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html)  |  Récupère les N premières clés de dimension d'une mesure sur une période spécifique.  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html)  |  Récupère les attributs du groupe de dimensions spécifié pour une instance de base de données ou une source de données. Par exemple, si vous spécifiez un ID SQL et si les détails de la dimension sont disponibles, `GetDimensionKeyDetails` récupère le texte intégral de la dimension `db.sql.statement` associée à cet ID. Cette opération est utile, car `GetResourceMetrics` et `DescribeDimensionKeys` ne prennent pas en charge la récupération de texte d’instruction SQL volumineux.   | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetPerformanceAnalysisReport.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetPerformanceAnalysisReport.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/GetPerformanceAnalysisReport.html](https://docs.aws.amazon.com/cli/latest/reference/pi/GetPerformanceAnalysisReport.html)  |  Récupère le rapport, y compris les informations du rapport. Le résultat inclut l'état du rapport, l'ID du rapport, les détails temporels du rapport, les informations et les recommandations.  | 
| [GetResourceMetadata](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetadata.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html)  |  Récupérez les métadonnées de différentes fonctions. Par exemple, les métadonnées peuvent indiquer qu'une fonction est activée ou désactivée sur une instance de base de données spécifique.   | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html)  |  Récupère les métriques Performance Insights d'un ensemble de sources de données, au cours d'une période. Vous pouvez fournir des groupes de dimensions et des dimensions spécifiques, ainsi que des critères d'agrégation et de filtrage, pour chaque groupe.  | 
| [ListAvailableResourceDimensions](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceDimensions.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html)  |  Récupérez les dimensions pouvant être interrogées pour chaque type de métrique spécifié sur une instance spécifiée.   | 
| [ListAvailableResourceMetrics](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceMetrics.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html)  |  Récupérez toutes les métriques disponibles des types de métriques spécifiés pouvant être interrogés pour une instance de base de données spécifiée.  | 
|  `[ListPerformanceAnalysisReports](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListPerformanceAnalysisReports.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-performance-analysis-reports.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-performance-analysis-reports.html)  | Récupère tous les rapports d'analyse disponibles pour l'instance de base de données. Les rapports sont répertoriés en fonction de l'heure de début de chaque rapport. | 
|  `[ListTagsForResource](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListTagsForResource.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-tags-for-resource.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-tags-for-resource.html)  |  Répertorie toutes les balises de métadonnées ajoutées à la ressource. La liste inclut le nom et la valeur de la balise.  | 
|  `[TagResource](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_TagResource.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/tag-resource.html](https://docs.aws.amazon.com/cli/latest/reference/pi/tag-resource.html)  |  Ajoute des balises de métadonnées à la ressource Amazon RDS. La balise inclut un nom et une valeur.  | 
|  `[UntagResource](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_UntagResource.html)` |  [https://docs.aws.amazon.com/cli/latest/reference/pi/untag-resource.html](https://docs.aws.amazon.com/cli/latest/reference/pi/untag-resource.html)  |  Supprime la balise de métadonnées de la ressource.  | 

Pour plus d’informations sur la récupération des métriques de séries chronologiques et des exemples d’AWS CLI pour Performance Insights, consultez les rubriques ci-dessous.

**Topics**
+ [Récupération de métriques de séries chronologiques pour Performance Insights](USER_PerfInsights.API.TimeSeries.md)
+ [AWS CLI exemples de Performance Insights](USER_PerfInsights.API.Examples.md)

# Récupération de métriques de séries chronologiques pour Performance Insights
<a name="USER_PerfInsights.API.TimeSeries"></a>

L'opération `GetResourceMetrics` récupère une ou plusieurs métriques de série chronologique à partir des données de Performance Insights. `GetResourceMetrics` exige une métrique et une période, et renvoie une réponse contenant la liste des points de données. 

Par exemple, AWS Management Console utilise `GetResourceMetrics` pour renseigner le graphique **Counter Metrics (Métriques de compteur)** et le graphique **Database Load (Charge de base de données)**, comme illustré dans l'image ci-dessous.

![\[Graphiques Counter Metrics (Métriques de compteur) et Database Load (Charge de base de données)\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/perf-insights-api-charts.png)


Toutes les métriques renvoyées par `GetResourceMetrics` sont des métriques de série chronologique standard, à l'exception de `db.load`. Elle apparaît dans le graphique **Database Load** (Charge de base de données). La métrique `db.load` est différente des autres métriques de séries chronologiques, car vous pouvez la décomposer en sous-composants appelés *dimensions*. Dans l'image précédente, `db.load` est décomposé et regroupé en fonction des états d'attente qui constituent `db.load`.

**Note**  
`GetResourceMetrics` peut également renvoyer la métrique `db.sampleload`, mais la métrique `db.load` est appropriée dans la plupart des cas.

Pour plus d’informations sur les métriques de compteur renvoyées par `GetResourceMetrics`, consultez [Métrique de compteur de Performance Insights](USER_PerfInsights_Counters.md).

Les calculs suivants sont pris en charge pour les métriques :
+ Moyenne – Moyenne de la métrique sur une période. Ajoutez `.avg` au nom de la métrique.
+ Minimum – Valeur minimale de la métrique sur une période. Ajoutez `.min` au nom de la métrique.
+ Maximum – Valeur maximale de la métrique sur une période. Ajoutez `.max` au nom de la métrique.
+ Somme – Somme des valeurs de la métrique sur une période. Ajoutez `.sum` au nom de la métrique.
+ Nombre échantillon – Nombre de fois où la métrique a été collectée sur une période. Ajoutez `.sample_count` au nom de la métrique.

Par exemple, supposons qu'une métrique soit collectée pendant 300 secondes (5 minutes) et qu'elle soit collectée une fois toutes les minutes. Les valeurs pour chaque minute sont 1, 2, 3, 4 et 5. Dans ce cas, les calculs suivants sont renvoyés :
+ Moyenne – 3
+ Minimum – 1
+ Maximum – 5
+ Somme – 15
+ Nombre échantillon – 5

Pour plus d'informations sur l'utilisation de la commande AWS CLI `get-resource-metrics`, consultez [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html).

Pour l'option `--metric-queries`, spécifiez une ou plusieurs requêtes pour lesquelles vous souhaitez obtenir les résultats. Chaque requête se compose d'un paramètre `Metric` obligatoire et des paramètres `GroupBy` et `Filter` facultatifs. Voici un exemple de spécification de l'option `--metric-queries`.

```
{
   "Metric": "string",
   "GroupBy": {
     "Group": "string",
     "Dimensions": ["string", ...],
     "Limit": integer
   },
   "Filter": {"string": "string"
     ...}
```

# AWS CLI exemples de Performance Insights
<a name="USER_PerfInsights.API.Examples"></a>

Dans les sections suivantes, découvrez le AWS Command Line Interface (AWS CLI) pour Performance Insights et des AWS CLI exemples d'utilisation.

**Topics**
+ [Aide intégrée AWS CLI pour Performance Insights](#USER_PerfInsights.API.CLI)
+ [Récupération de métriques de compteur](#USER_PerfInsights.API.Examples.CounterMetrics)
+ [Récupération de la charge de base de données moyenne pour les principaux événements d’attente](#USER_PerfInsights.API.Examples.DBLoadAverage)
+ [Récupération de la charge de base de données moyenne pour les principales instructions SQL](#USER_PerfInsights.API.Examples.DBLoadAverageTop10SQL)
+ [Récupération de la charge de base de données moyenne filtrée par instruction SQL](#USER_PerfInsights.API.Examples.DBLoadAverageFilterBySQL)
+ [Récupération du texte complet d’une instruction SQL](#USER_PerfInsights.API.Examples.GetDimensionKeyDetails)
+ [Création d’un rapport d’analyse des performances pour une période donnée](#USER_PerfInsights.API.Examples.CreatePerfAnalysisReport)
+ [Récupération d’un rapport d’analyse des performances](#USER_PerfInsights.API.Examples.GetPerfAnalysisReport)
+ [Établissement de la liste de tous les rapports d’analyse des performances pour l’instance de base de données](#USER_PerfInsights.API.Examples.ListPerfAnalysisReports)
+ [Suppression d’un rapport d’analyse des performances](#USER_PerfInsights.API.Examples.DeletePerfAnalysisReport)
+ [Ajout d’une balise à un rapport d’analyse des performances](#USER_PerfInsights.API.Examples.TagPerfAnalysisReport)
+ [Établissement de la liste de toutes les balises pour un rapport d’analyse des performances](#USER_PerfInsights.API.Examples.ListTagsPerfAnalysisReport)
+ [Suppression des balises d’un rapport d’analyse des performances](#USER_PerfInsights.API.Examples.UntagPerfAnalysisReport)

## Aide intégrée AWS CLI pour Performance Insights
<a name="USER_PerfInsights.API.CLI"></a>

Vous pouvez consulter les données de Performance Insights à l’aide d AWS CLI. Vous pouvez consulter l'aide relative aux AWS CLI commandes de Performance Insights en saisissant ce qui suit sur la ligne de commande.

```
aws pi help
```

Si ce n'est pas le AWS CLI cas, reportez-vous à la section [Installation du AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) *guide de l'AWS CLI utilisateur* pour plus d'informations sur son installation.

## Récupération de métriques de compteur
<a name="USER_PerfInsights.API.Examples.CounterMetrics"></a>

L’image suivante illustre deux graphiques de métriques de compteur dans AWS Management Console.

![\[Graphiques Counter Metrics (Métriques de compteur).\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/perf-insights-api-counters-charts.png)


L'exemple suivant montre comment collecter les mêmes données que celles AWS Management Console utilisées pour générer les deux graphiques contre-métriques.

Pour Linux, macOS ou Unix :

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

Pour Windows :

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

Vous pouvez également simplifier la lecture d’une commande en spécifiant un fichier pour l’option `--metrics-query`. L’exemple suivant utilise un fichier nommé query.json pour l’option. Le contenu du fichier est le suivant.

```
[
    {
        "Metric": "os.cpuUtilization.user.avg"
    },
    {
        "Metric": "os.cpuUtilization.idle.avg"
    }
]
```

Exécutez la commande suivante pour utiliser le fichier.

Pour Linux, macOS ou Unix :

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

Pour Windows :

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

L’exemple précédent spécifie les valeurs suivantes pour les options :
+ `--service-type` – `RDS` pour Amazon RDS
+ `--identifier` : ID de ressource de l’instance de base de données
+ `--start-time` et `--end-time` : valeurs `DateTime` conformes à l’ISO 8601 pour la période à interroger, avec plusieurs formats pris en charge

L’interrogation se déroule pendant un intervalle d’une heure :
+ `--period-in-seconds` – `60` pour une requête toutes les minutes
+ `--metric-queries` : tableau de deux requêtes s’appliquant chacune à une métrique.

  Le nom de la métrique utilise des points pour classifier la métrique dans une catégorie utile, l’élément final étant une fonction. Dans l’exemple, la fonction est `avg` pour chaque requête. Comme pour Amazon CloudWatch, les fonctions prises en charge sont `min``max`,`total`, et`avg`.

La réponse ressemble à ce qui suit.

```
{
    "Identifier": "db-XXX",
    "AlignedStartTime": 1540857600.0,
    "AlignedEndTime": 1540861200.0,
    "MetricList": [
        { //A list of key/datapoints 
            "Key": {
                "Metric": "os.cpuUtilization.user.avg" //Metric1
            },
            "DataPoints": [
                //Each list of datapoints has the same timestamps and same number of items
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 4.0
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 4.0
                },
                {
                    "Timestamp": 1540857780.0, //Minute 3
                    "Value": 10.0
                }
                //... 60 datapoints for the os.cpuUtilization.user.avg metric
            ]
        },
        {
            "Key": {
                "Metric": "os.cpuUtilization.idle.avg" //Metric2
            },
            "DataPoints": [
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 12.0
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 13.5
                },
                //... 60 datapoints for the os.cpuUtilization.idle.avg metric 
            ]
        }
    ] //end of MetricList
} //end of response
```

La réponse contient les éléments `Identifier`, `AlignedStartTime` et `AlignedEndTime`. Étant donné que la valeur de `--period-in-seconds` était définie sur `60`, les heures de début et de fin ont été arrondies à la minute près. Si `--period-in-seconds` était défini sur `3600`, les heures de début et de fin auraient été arrondies à l’heure près.

L’élément `MetricList` dans la réponse comporte un certain nombre d’entrées, chacune associée à une entrée `Key` et `DataPoints`. Chaque élément `DataPoint` comporte une entrée `Timestamp` et `Value`. Chaque liste `Datapoints` répertorie 60 points de données, car les requêtes sont exécutées toutes les minutes pendant une heure, avec `Timestamp1/Minute1`, `Timestamp2/Minute2`, etc. jusqu’à `Timestamp60/Minute60`. 

Étant donné que la requête s’applique à deux métriques de compteur différentes, contient deux élément `MetricList`.

## Récupération de la charge de base de données moyenne pour les principaux événements d’attente
<a name="USER_PerfInsights.API.Examples.DBLoadAverage"></a>

L'exemple suivant est la même requête que celle AWS Management Console utilisée pour générer un graphique linéaire à aires empilées. Il récupère la valeur de `db.load.avg` sur la dernière heure en divisant la charge conformément aux sept principaux événements d’attente. La commande est identique à la commande de la rubrique [Récupération de métriques de compteur](#USER_PerfInsights.API.Examples.CounterMetrics). Le contenu du fichier query.json est cependant différent :

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_event", "Limit": 7 }
    }
]
```

Exécutez la commande suivante.

Pour Linux, macOS ou Unix :

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

Pour Windows :

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

L’exemple spécifie la métrique de `db.load.avg` et exécute une action `GroupBy` pour les sept principaux événements d’attente. Pour plus de détails sur les valeurs valides pour cet exemple, consultez [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)le manuel *Performance Insights API Reference.*

La réponse ressemble à ce qui suit.

```
{
    "Identifier": "db-XXX",
    "AlignedStartTime": 1540857600.0,
    "AlignedEndTime": 1540861200.0,
    "MetricList": [
        { //A list of key/datapoints 
            "Key": {
                //A Metric with no dimensions. This is the total db.load.avg
                "Metric": "db.load.avg"
            },
            "DataPoints": [
                //Each list of datapoints has the same timestamps and same number of items
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 0.5166666666666667
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 0.38333333333333336
                },
                {
                    "Timestamp": 1540857780.0, //Minute 3
                    "Value": 0.26666666666666666
                }
                //... 60 datapoints for the total db.load.avg key
            ]
        },
        {
            "Key": {
                //Another key. This is db.load.avg broken down by CPU
                "Metric": "db.load.avg",
                "Dimensions": {
                    "db.wait_event.name": "CPU",
                    "db.wait_event.type": "CPU"
                }
            },
            "DataPoints": [
                {
                    "Timestamp": 1540857660.0, //Minute1
                    "Value": 0.35
                },
                {
                    "Timestamp": 1540857720.0, //Minute2
                    "Value": 0.15
                },
                //... 60 datapoints for the CPU key
            ]
        },
        //... In total we have 8 key/datapoints entries, 1) total, 2-8) Top Wait Events
    ] //end of MetricList
} //end of response
```

Dans cette réponse, comporte huit entrée `MetricList`. Une entrée s’applique à la valeur totale de `db.load.avg` et les sept autres entrées s’appliquent à chacune des valeurs de `db.load.avg` divisées conformément à l’un des sept principaux événements d’attente. Contrairement au premier exemple qui comportait une dimension de regroupement, cet exemple doit définir un élément Key pour chaque regroupement de la métrique. Un seul élément Key peut être associé à chaque métrique, comme dans le cas d’utilisation de la métrique de compteur de base.

## Récupération de la charge de base de données moyenne pour les principales instructions SQL
<a name="USER_PerfInsights.API.Examples.DBLoadAverageTop10SQL"></a>

L’exemple suivant regroupe `db.wait_events` par les 10 principales instructions SQL. Il existe deux groupes différents pour les instructions SQL :
+ `db.sql` – Instruction SQL complète, telle que `select * from customers where customer_id = 123`
+ `db.sql_tokenized` – Instruction SQL tokenisée, telle que `select * from customers where customer_id = ?`

Lors de l’analyse des performances de base de données, il peut s’avérer utile de considérer les instructions SQL dont les paramètres sont différents comme un seul élément logique. Vous pouvez donc utiliser `db.sql_tokenized` lors de l’interrogation. Toutefois, en particulier si vous êtes intéressé par les plans d’explication, il est parfois plus utile d’examiner les instructions SQL complètes avec leurs paramètres, et le regroupement des requêtes par `db.sql`. Il existe une relation parent-enfant entre une instruction SQL tokenisée et une instruction SQL complète, où plusieurs instructions SQL complètes (enfants) sont regroupées sous la même instruction SQL tokenisée (parent).

La commande illustrée dans cet exemple est identique à la commande de la rubrique [Récupération de la charge de base de données moyenne pour les principaux événements d’attente](#USER_PerfInsights.API.Examples.DBLoadAverage). Le contenu du fichier query.json est cependant différent :

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.sql_tokenized", "Limit": 10 }
    }
]
```

L’exemple suivant utilise `db.sql_tokenized`.

Pour Linux, macOS ou Unix :

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-29T00:00:00Z \
   --end-time   2018-10-30T00:00:00Z \
   --period-in-seconds 3600 \
   --metric-queries file://query.json
```

Pour Windows :

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-29T00:00:00Z ^
   --end-time   2018-10-30T00:00:00Z  ^
   --period-in-seconds 3600 ^
   --metric-queries file://query.json
```

Cet exemple demande plus de 24 heures, avec une heure period-in-seconds.

L’exemple spécifie la métrique de `db.load.avg` et exécute une action `GroupBy` pour les sept principaux événements d’attente. Pour plus de détails sur les valeurs valides pour cet exemple, consultez [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)le manuel *Performance Insights API Reference.*

La réponse ressemble à ce qui suit.

```
{
    "AlignedStartTime": 1540771200.0,
    "AlignedEndTime": 1540857600.0,
    "Identifier": "db-XXX",

    "MetricList": [ //11 entries in the MetricList
        {
            "Key": { //First key is total
                "Metric": "db.load.avg"
            }
            "DataPoints": [ //Each DataPoints list has 24 per-hour Timestamps and a value
                {
                    "Value": 1.6964980544747081,
                    "Timestamp": 1540774800.0
                },
                //... 24 datapoints
            ]
        },
        {
            "Key": { //Next key is the top tokenized SQL  
                "Dimensions": {
                    "db.sql_tokenized.statement": "INSERT INTO authors (id,name,email) VALUES\n( nextval(?)  ,?,?)",
                    "db.sql_tokenized.db_id": "pi-2372568224",
                    "db.sql_tokenized.id": "AKIAIOSFODNN7EXAMPLE"
                },
                "Metric": "db.load.avg"
            },
            "DataPoints": [ //... 24 datapoints 
            ]
        },
        // In total 11 entries, 10 Keys of top tokenized SQL, 1 total key 
    ] //End of MetricList
} //End of response
```

Cette réponse comporte 11 entrées dans `MetricList` (1 correspondant au total, les 10 autres correspondant aux principales instructions SQL tokenisées), chaque entrée étant associée à 24 `DataPoints` par heure.

Pour les instructions SQL tokenisées, chaque liste de dimensions répertorie trois entrées :
+ `db.sql_tokenized.statement` – Instruction SQL tokenisée.
+ `db.sql_tokenized.db_id ` : ID de base de données native utilisé pour faire référence à l’instruction SQL, ou ID synthétique généré par Performance Insights si l’ID de base de données native n’est pas disponible. Cet exemple renvoie l’ID synthétique `pi-2372568224`.
+ `db.sql_tokenized.id` – ID de la requête dans Performance Insights.

  Dans le AWS Management Console, cet ID est appelé Support ID. Il est nommé ainsi parce que l'ID est une donnée que le AWS Support peut examiner pour vous aider à résoudre un problème lié à votre base de données. AWS prend très au sérieux la sécurité et la confidentialité de vos données, et presque toutes les données sont stockées cryptées avec votre AWS KMS clé. Par conséquent, personne à l'intérieur ne AWS peut consulter ces données. Dans l’exemple précédent, `tokenized.statement` et `tokenized.db_id` sont tous les deux stockés sous forme chiffrée. Si vous rencontrez un problème avec votre base de données, le AWS Support peut vous aider en faisant référence à l'ID de support.

Lors de l’interrogation, il peut s’avérer utile de spécifier une entrée `Group` dans `GroupBy`. Toutefois, pour contrôler les données renvoyées de manière plus précise, spécifier la liste des dimensions. Par exemple, si `db.sql_tokenized.statement` est le seul élément nécessaire, un attribut `Dimensions` peut être ajouté au fichier query.json.

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": {
            "Group": "db.sql_tokenized",
            "Dimensions":["db.sql_tokenized.statement"],
            "Limit": 10
        }
    }
]
```

## Récupération de la charge de base de données moyenne filtrée par instruction SQL
<a name="USER_PerfInsights.API.Examples.DBLoadAverageFilterBySQL"></a>

![\[Graphique de filtrage par instruction SQL.\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/perf-insights-api-filter-chart.png)


L’image précédente indique qu’une requête particulière est sélectionnée et que le graphique en aires empilées Average active sessions (Sessions actives en moyenne) qui apparaît dans la section supérieure s’y applique. Bien que la requête concerne toujours les sept principaux événements d’attente globaux, la valeur de la réponse est filtrée. Le filtre permet à la requête de prendre uniquement en compte les sessions qui correspondent à un filtre en particulier.

La requête d’API correspondante illustrée dans cet exemple est identique à la commande de la rubrique [Récupération de la charge de base de données moyenne pour les principales instructions SQL](#USER_PerfInsights.API.Examples.DBLoadAverageTop10SQL). Le contenu du fichier query.json est cependant différent :

```
[
 {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_event", "Limit": 5  }, 
        "Filter": { "db.sql_tokenized.id": "AKIAIOSFODNN7EXAMPLE" }
    }
]
```

Pour Linux, macOS ou Unix :

```
aws pi get-resource-metrics \
   --service-type RDS \
   --identifier db-ID \
   --start-time 2018-10-30T00:00:00Z \
   --end-time   2018-10-30T01:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

Pour Windows :

```
aws pi get-resource-metrics ^
   --service-type RDS ^
   --identifier db-ID ^
   --start-time 2018-10-30T00:00:00Z ^
   --end-time   2018-10-30T01:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

La réponse ressemble à ce qui suit.

```
{
    "Identifier": "db-XXX", 
    "AlignedStartTime": 1556215200.0, 
    "MetricList": [
        {
            "Key": {
                "Metric": "db.load.avg"
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 1.4878117913832196
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 1.192823803967328
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "io", 
                    "db.wait_event.name": "wait/io/aurora_redo_log_flush"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 1.1360544217687074
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 1.058051341890315
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "io", 
                    "db.wait_event.name": "wait/io/table/sql/handler"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.16241496598639457
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.05163360560093349
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "synch", 
                    "db.wait_event.name": "wait/synch/mutex/innodb/aurora_lock_thread_slot_futex"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.11479591836734694
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.013127187864644107
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "CPU", 
                    "db.wait_event.name": "CPU"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.05215419501133787
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.05805134189031505
                }
            ]
        }, 
        {
            "Key": {
                "Metric": "db.load.avg", 
                "Dimensions": {
                    "db.wait_event.type": "synch", 
                    "db.wait_event.name": "wait/synch/mutex/innodb/lock_wait_mutex"
                }
            }, 
            "DataPoints": [
                {
                    "Timestamp": 1556218800.0, 
                    "Value": 0.017573696145124718
                }, 
                {
                    "Timestamp": 1556222400.0, 
                    "Value": 0.002333722287047841
                }
            ]
        }
    ], 
    "AlignedEndTime": 1556222400.0
} //end of response
```

Dans cette réponse, toutes les valeurs sont filtrées en fonction de la contribution de l'AKIAIOSFODNN7EXEMPLE SQL tokenisé spécifié dans le fichier query.json. Les éléments Key peuvent également suivre un ordre différent d’une requête sans filtre, car ils correspondent aux cinq principaux événements d’attente qui ont affecté l’instruction SQL filtrée.

## Récupération du texte complet d’une instruction SQL
<a name="USER_PerfInsights.API.Examples.GetDimensionKeyDetails"></a>

L’exemple suivant montre comment récupérer le texte intégral d’une instruction SQL pour une instance de base de données `db-10BCD2EFGHIJ3KL4M5NO6PQRS5`. Le `--group` est `db.sql` et l’`--group-identifier` est `db.sql.id`. Dans cet exemple, *my-sql-id* représente un ID SQL récupéré en invoquant `pi get-resource-metrics` ou`pi describe-dimension-keys`.

Exécutez la commande suivante.

Pour Linux, macOS ou Unix :

```
aws pi get-dimension-key-details \
   --service-type RDS \
   --identifier db-10BCD2EFGHIJ3KL4M5NO6PQRS5 \
   --group db.sql \
   --group-identifier my-sql-id \
   --requested-dimensions statement
```

Pour Windows :

```
aws pi get-dimension-key-details ^
   --service-type RDS ^
   --identifier db-10BCD2EFGHIJ3KL4M5NO6PQRS5 ^
   --group db.sql ^
   --group-identifier my-sql-id ^
   --requested-dimensions statement
```

Dans cet exemple, les détails des dimensions sont disponibles. Ainsi, Performance Insights récupère le texte intégral de l’instruction SQL, sans le tronquer.

```
{
    "Dimensions":[
    {
        "Value": "SELECT e.last_name, d.department_name FROM employees e, departments d WHERE e.department_id=d.department_id",
        "Dimension": "db.sql.statement",
        "Status": "AVAILABLE"
    },
    ...
    ]
}
```

## Création d’un rapport d’analyse des performances pour une période donnée
<a name="USER_PerfInsights.API.Examples.CreatePerfAnalysisReport"></a>

L’exemple suivant crée un rapport d’analyse des performances avec l’heure de début `1682969503` et l’heure de fin `1682979503` pour la base de données `db-loadtest-0`.

```
aws pi create-performance-analysis-report \
        --service-type RDS \
        --identifier db-loadtest-0 \
        --start-time 1682969503 \
        --end-time 1682979503 \
        --region us-west-2
```

La réponse est l’identifiant unique `report-0234d3ed98e28fb17` du rapport.

```
{
   "AnalysisReportId": "report-0234d3ed98e28fb17"
}
```

## Récupération d’un rapport d’analyse des performances
<a name="USER_PerfInsights.API.Examples.GetPerfAnalysisReport"></a>

L’exemple suivant extrait les détails du rapport d’analyse pour le rapport `report-0d99cc91c4422ee61`.

```
aws pi get-performance-analysis-report \
--service-type RDS \
--identifier db-loadtest-0 \
--analysis-report-id report-0d99cc91c4422ee61 \
--region us-west-2
```

La réponse fournit l’état du rapport, son identifiant, les détails temporels et des informations.

```
        {
    "AnalysisReport": {
        "Status": "Succeeded", 
        "ServiceType": "RDS", 
        "Identifier": "db-loadtest-0", 
        "StartTime": 1680583486.584, 
        "AnalysisReportId": "report-0d99cc91c4422ee61", 
        "EndTime": 1680587086.584, 
        "CreateTime": 1680587087.139, 
        "Insights": [
           ... (Condensed for space)
        ]
    }
}
```

## Établissement de la liste de tous les rapports d’analyse des performances pour l’instance de base de données
<a name="USER_PerfInsights.API.Examples.ListPerfAnalysisReports"></a>

L’exemple suivant répertorie tous les rapports d’analyse des performances disponibles pour la base de données `db-loadtest-0`.

```
aws pi list-performance-analysis-reports \
--service-type RDS \
--identifier db-loadtest-0 \
--region us-west-2
```

La réponse répertorie tous les rapports avec l’ID du rapport, le statut et les détails temporels de la période.

```
{
    "AnalysisReports": [
        {
            "Status": "Succeeded", 
            "EndTime": 1680587086.584, 
            "CreationTime": 1680587087.139, 
            "StartTime": 1680583486.584, 
            "AnalysisReportId": "report-0d99cc91c4422ee61"
        }, 
        {
            "Status": "Succeeded", 
            "EndTime": 1681491137.914, 
            "CreationTime": 1681491145.973, 
            "StartTime": 1681487537.914, 
            "AnalysisReportId": "report-002633115cc002233"
        }, 
        {
            "Status": "Succeeded", 
            "EndTime": 1681493499.849, 
            "CreationTime": 1681493507.762, 
            "StartTime": 1681489899.849, 
            "AnalysisReportId": "report-043b1e006b47246f9"
        }, 
        {
            "Status": "InProgress", 
            "EndTime": 1682979503.0, 
            "CreationTime": 1682979618.994, 
            "StartTime": 1682969503.0, 
            "AnalysisReportId": "report-01ad15f9b88bcbd56"
        }
    ]
}
```

## Suppression d’un rapport d’analyse des performances
<a name="USER_PerfInsights.API.Examples.DeletePerfAnalysisReport"></a>

L’exemple suivant supprime le rapport d’analyse pour la base de données `db-loadtest-0`.

```
aws pi delete-performance-analysis-report \
--service-type RDS \
--identifier db-loadtest-0 \
--analysis-report-id report-0d99cc91c4422ee61 \
--region us-west-2
```

## Ajout d’une balise à un rapport d’analyse des performances
<a name="USER_PerfInsights.API.Examples.TagPerfAnalysisReport"></a>

L’exemple suivant ajoute une balise avec une clé `name` et une valeur `test-tag` au rapport `report-01ad15f9b88bcbd56`.

```
aws pi tag-resource \
--service-type RDS \
--resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \
--tags Key=name,Value=test-tag \
--region us-west-2
```

## Établissement de la liste de toutes les balises pour un rapport d’analyse des performances
<a name="USER_PerfInsights.API.Examples.ListTagsPerfAnalysisReport"></a>

L’exemple suivant répertorie toutes les balises pour le rapport `report-01ad15f9b88bcbd56`.

```
aws pi list-tags-for-resource \
--service-type RDS \
--resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \
--region us-west-2
```

La réponse répertorie la valeur et la clé de toutes les balises ajoutées au rapport :

```
{
    "Tags": [
        {
            "Value": "test-tag", 
            "Key": "name"
        }
    ]
}
```

## Suppression des balises d’un rapport d’analyse des performances
<a name="USER_PerfInsights.API.Examples.UntagPerfAnalysisReport"></a>

L’exemple suivant montre comment supprimer la balise `name` du rapport `report-01ad15f9b88bcbd56`.

```
aws pi untag-resource \
--service-type RDS \
--resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \
--tag-keys name \
--region us-west-2
```

Une fois la balise supprimée, l’appel de l’API `list-tags-for-resource` ne répertorie pas cette balise.