Exemples d’utilisation de l’AWS CLI avec l’analyse des performances d’Amazon RDS - AWS Command Line Interface

Exemples d’utilisation de l’AWS CLI avec l’analyse des performances d’Amazon RDS

Les exemples de code suivants montrent comment réaliser des actions et mettre en œuvre des scénarios courants en utilisant l’AWS Command Line Interface avec l’analyse des performances d’Amazon RDS.

Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la configuration et l’exécution du code en contexte.

Rubriques

Actions

L’exemple de code suivant montre comment utiliser create-performance-analysis-report.

AWS CLI

Pour créer un rapport d’analyse des performances

L’exemple create-performance-analysis-report 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-abcdefg123456789.

aws pi create-performance-analysis-report \ --service-type RDS \ --identifier db-abcdefg123456789 \ --start-time 1682969503 \ --end-time 1682979503

Sortie :

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

Pour plus d’informations sur la création de rapports d’analyse des performances, consultez Création d’un rapport d’analyse des performances dans Performance Insights dans le Guide de l’utilisateur Amazon RDS et Création d’un rapport d’analyse des performances dans Performance Insights dans le Guide de l’utilisateur Amazon Aurora.

L’exemple de code suivant montre comment utiliser delete-performance-analysis-report.

AWS CLI

Pour supprimer un rapport d’analyse des performances

L’exemple delete-performance-analysis-report suivant supprime le rapport d’analyse des performances avec l’ID du rapport report-0d99cc91c4422ee61.

aws pi delete-performance-analysis-report \ --service-type RDS \ --identifier db-abcdefg123456789 \ --analysis-report-id report-0d99cc91c4422ee61

Cette commande ne produit aucune sortie.

Pour plus d’informations sur la suppression de rapports d’analyse des performances, consultez Suppression d’un rapport d’analyse des performances dans Performance Insights dans le Guide de l’utilisateur Amazon RDS et Suppression d’un rapport d’analyse des performances dans Performance Insights dans le Guide de l’utilisateur Amazon Aurora.

L’exemple de code suivant montre comment utiliser describe-dimension-keys.

AWS CLI

Exemple 1 : pour décrire les clés de dimension

Cet exemple demande les noms de tous les événements d’attente. Les données sont résumées par nom d’événement et par valeurs agrégées de ces événements sur la période spécifiée.

Commande :

aws pi describe-dimension-keys --service-type RDS --identifier db-LKCGOBK26374TPTDFXOIWVCPPM --start-time 1527026400 --end-time 1527080400 --metric db.load.avg --group-by '{"Group":"db.wait_event"}'

Sortie :

{ "AlignedEndTime": 1.5270804E9, "AlignedStartTime": 1.5270264E9, "Keys": [ { "Dimensions": {"db.wait_event.name": "wait/synch/mutex/innodb/aurora_lock_thread_slot_futex"}, "Total": 0.05906906851195666 }, { "Dimensions": {"db.wait_event.name": "wait/io/aurora_redo_log_flush"}, "Total": 0.015824722186149193 }, { "Dimensions": {"db.wait_event.name": "CPU"}, "Total": 0.008014396230265477 }, { "Dimensions": {"db.wait_event.name": "wait/io/aurora_respond_to_client"}, "Total": 0.0036361612526204477 }, { "Dimensions": {"db.wait_event.name": "wait/io/table/sql/handler"}, "Total": 0.0019108398419382965 }, { "Dimensions": {"db.wait_event.name": "wait/synch/cond/mysys/my_thread_var::suspend"}, "Total": 8.533847837782684E-4 }, { "Dimensions": {"db.wait_event.name": "wait/io/file/csv/data"}, "Total": 6.864181956477376E-4 }, { "Dimensions": {"db.wait_event.name": "Unknown"}, "Total": 3.895887056379051E-4 }, { "Dimensions": {"db.wait_event.name": "wait/synch/mutex/sql/FILE_AS_TABLE::LOCK_shim_lists"}, "Total": 3.710368625122906E-5 }, { "Dimensions": {"db.wait_event.name": "wait/lock/table/sql/handler"}, "Total": 0 } ] }

Exemple 2 : pour trouver l’ID SQL des instructions qui contribuent le plus à la charge de base de données

La clé describe-dimension-keys suivante demande l’instruction SQL et l’ID SQL pour les 10 instructions qui ont le plus contribué à la charge de base de données.

aws pi describe-dimension-keys \ --service-type RDS \ --identifier db-abcdefg123456789 \ --start-time 2023-05-01T00:00:00Z \ --end-time 2023-05-01T01:00:00Z \ --metric db.load.avg \ --group-by '{"Group": "db.sql", "Dimensions": ["db.sql.id", "db.sql.statement"],"Limit": 10}'

Sortie :

{ "AlignedEndTime": 1.5270804E9, "AlignedStartTime": 1.5270264E9, "Identifier": "db-abcdefg123456789", "MetricList": [ { "Keys": [ { "Dimensions": {"db.sql.id": "AKIAIOSFODNN7EXAMPLE", "db.sql.statement": "SELECT * FROM customers WHERE customer_id = 123"}, "Total": 25.5,"Partitions": [12.3, 13.2] } ] } ] }

Pour plus d’informations sur les dimensions dans Performance Insights, consultez Charge de la base de données dans le Guide de l’utilisateur Amazon RDS et Charge de la base de données dans le Guide de l’utilisateur Amazon Aurora.

  • Pour plus de détails sur l’API, consultez DescribeDimensionKeys dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-dimension-key-details.

AWS CLI

Pour obtenir des détails sur un groupe de dimensions spécifié pour une instance de base de données

L’exemple get-dimension-key-details suivant récupère 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, example-sql-id représente un ID SQL extrait à l’aide des opérations get-resource-metrics ou describe-dimension-keys. 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.

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

Sortie :

{ "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" }, ... ] }

Pour plus d’informations sur les dimensions dans Performance Insights, consultez Charge de la base de données dans le Guide de l’utilisateur Amazon RDS et Charge de la base de données dans le Guide de l’utilisateur Amazon Aurora.

  • Pour plus de détails sur l’API, consultez GetDimensionKeyDetails dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-performance-analysis-report.

AWS CLI

Pour obtenir un rapport d’analyse des performances

L’exemple get-performance-analysis-report suivant fournit le rapport d’analyse des performances de la base de données db-abcdefg123456789 avec l’ID du rapport report-0d99cc91c4422ee61. La réponse fournit l’état du rapport, son identifiant, les détails temporels et des informations.

aws pi get-performance-analysis-report \ --service-type RDS \ --identifier db-abcdefg123456789 \ --analysis-report-id report-0d99cc91c4422ee61

Sortie :

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

Pour plus d’informations sur les rapports d’analyse des performances, consultez Analyse des performances de base de données pour une période donnée dans le Guide de l’utilisateur Amazon RDS et Analyse des performances de base de données pour une période donnée dans le Guide de l’utilisateur Amazon Aurora.

L’exemple de code suivant montre comment utiliser get-resource-metadata.

AWS CLI

Pour obtenir les métadonnées des ressources d’une base de données

L’exemple get-resource-metadata suivant fournit les métadonnées des ressources pour la base de données db-abcdefg123456789. La réponse indique que les statistiques SQL Digest sont activées.

aws pi get-resource-metadata \ --service-type RDS \ --identifier db-abcdefg123456789

Sortie :

{ "Identifier": "db-abcdefg123456789", "Features":{ "SQL_DIGEST_STATISTICS":{ "Status": "ENABLED" } } }

Pour plus d’informations sur les statistiques SQL pour Performance Insights, consultez Statistiques SQL pour Performance Insights dans le Guide de l’utilisateur Amazon RDS et Statistiques SQL pour Performance Insights dans le Guide de l’utilisateur Amazon Aurora.

  • Pour plus de détails sur l’API, consultez GetResourceMetadata dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-resource-metrics.

AWS CLI

Pour obtenir les métriques des ressources

Cet exemple demande des points de données pour le groupe de dimensions db.wait_event et pour la dimension db.wait_event.name au sein de ce groupe. Dans la réponse, les points de données pertinents sont regroupés selon la dimension demandée (db.wait_event.name).

Commande :

aws pi get-resource-metrics --service-type RDS --identifier db-LKCGOBK26374TPTDFXOIWVCPPM --start-time 1527026400 --end-time 1527080400 --period-in-seconds 300 --metric db.load.avg --metric-queries file://metric-queries.json

Les arguments pour --metric-queries sont stockés dans le fichier JSON, metric-queries.json. Voici le contenu de ce fichier :

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

Sortie :

{ "AlignedEndTime": 1.5270804E9, "AlignedStartTime": 1.5270264E9, "Identifier": "db-LKCGOBK26374TPTDFXOIWVCPPM", "MetricList": [ { "Key": { "Metric": "db.load.avg" }, "DataPoints": [ { "Timestamp": 1527026700.0, "Value": 1.3533333333333333 }, { "Timestamp": 1527027000.0, "Value": 0.88 }, <...remaining output omitted...> ] }, { "Key": { "Metric": "db.load.avg", "Dimensions": { "db.wait_event.name": "wait/synch/mutex/innodb/aurora_lock_thread_slot_futex" } }, "DataPoints": [ { "Timestamp": 1527026700.0, "Value": 0.8566666666666667 }, { "Timestamp": 1527027000.0, "Value": 0.8633333333333333 }, <...remaining output omitted...> ], }, <...remaining output omitted...> ] }
  • Pour plus de détails sur l’API, consultez GetResourceMetrics dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-available-resource-dimensions.

AWS CLI

Pour répertorier les dimensions pouvant être interrogées pour un type de métrique sur une instance de base de données

L’exemple list-available-resource-dimensions suivant répertorie les métriques db.load que vous pouvez interroger pour la base de données db-abcdefg123456789.

aws pi list-available-resource-dimensions \ --service-type RDS \ --identifier db-abcdefg123456789 \ --metrics db.load

Sortie :

{ "MetricDimensions": [ { "Metric": "db.load", "Groups": [ { "Group": "db.user", "Dimensions": [ { "Identifier": "db.user.id" }, { "Identifier": "db.user.name" } ] }, { "Group": "db.sql_tokenized", "Dimensions": [ { "Identifier": "db.sql_tokenized.id" }, { "Identifier": "db.sql_tokenized.db_id" }, { "Identifier": "db.sql_tokenized.statement" } ] }, ... ] } ] }

Pour plus d’informations sur les dimensions dans Performance Insights, consultez Charge de la base de données dans le Guide de l’utilisateur Amazon RDS et Charge de la base de données dans le Guide de l’utilisateur Amazon Aurora.

L’exemple de code suivant montre comment utiliser list-available-resource-metrics.

AWS CLI

Pour répertorier les métriques pouvant être interrogées pour un type de métrique sur une instance de base de données

L’exemple list-available-resource-metrics suivant répertorie les métriques db.load que vous pouvez interroger pour la base de données db-abcdefg123456789.

aws pi list-available-resource-metrics \ --service-type RDS \ --identifier db-abcdefg123456789 \ --metric-types "os" "db"

Sortie :

{ "Metrics": [ { "Description": "The number of virtual CPUs for the DB instance", "Metric": "os.general.numVCPUs", "Unit": "vCPUs" }, ......, { "Description": "Time spent reading data file blocks by backends in this instance", "Metric": "db.IO.read_latency", "Unit": "Milliseconds per block" }, ...... ] }

Pour plus d’informations sur les métriques dans Performance Insights, consultez Charge de la base de données dans le Guide de l’utilisateur Amazon RDS et Charge de la base de données dans le Guide de l’utilisateur Amazon Aurora.

L’exemple de code suivant montre comment utiliser list-performance-analysis-reports.

AWS CLI

Pour répertorier les rapports d’analyse des performances d’une base de données

L’exemple list-performance-analysis-reports suivant répertorie tous les rapports d’analyse des performances disponibles pour la base de données db-abcdefg123456789. La réponse répertorie tous les rapports avec l'ID du rapport, le statut et les détails temporels de la période.

aws pi list-performance-analysis-reports \ --service-type RDS \ --identifier db-abcdefg123456789

Sortie :

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

Pour plus d’informations sur les rapports d’analyse des performances, consultez Analyse des performances de base de données pour une période donnée dans le Guide de l’utilisateur Amazon RDS et Analyse des performances de base de données pour une période donnée dans le Guide de l’utilisateur Amazon Aurora.

L’exemple de code suivant montre comment utiliser list-tags-for-resource.

AWS CLI

Pour répertorier les balises pour un rapport d’analyse des performances

L’exemple list-tags-for-resource suivant répertorie les balises d’un rapport d’analyse des performances avec l’ID du rapport report-0d99cc91c4422ee61.

aws pi list-tags-for-resource \ --service-type RDS \ --resource-arn arn:aws:pi:us-west-2:123456789012:perf-reports/RDS/db-abcdefg123456789/report-0d99cc91c4422ee61

Sortie :

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

Pour plus d’informations sur le balisage de rapports d’analyse des performances, consultez Ajout de balises à un rapport d’analyse des performances dans Performance Insights dans le Guide de l’utilisateur Amazon RDS et Ajout de balises à un rapport d’analyse des performances dans Performance Insights dans le Guide de l’utilisateur Amazon Aurora.

  • Pour plus de détails sur l’API, consultez ListTagsForResource dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser tag-resource.

AWS CLI

Pour ajouter une balise à un rapport d’analyse des performances

L’exemple tag-resource suivant ajoute la clé de balise name avec la valeur de la balise test-tag à un rapport d’analyse des performances avec l’ID du rapport report-0d99cc91c4422ee61.

aws pi tag-resource \ --service-type RDS \ --resource-arn arn:aws:pi:us-west-2:123456789012:perf-reports/RDS/db-abcdefg123456789/report-0d99cc91c4422ee61 \ --tags Key=name,Value=test-tag

Cette commande ne produit aucune sortie.

Pour plus d’informations sur le balisage de rapports d’analyse des performances, consultez Ajout de balises à un rapport d’analyse des performances dans Performance Insights dans le Guide de l’utilisateur Amazon RDS et Ajout de balises à un rapport d’analyse des performances dans Performance Insights dans le Guide de l’utilisateur Amazon Aurora.

  • Pour plus de détails sur l’API, consultez TagResource dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser untag-resource.

AWS CLI

Pour supprimer une balise d’un rapport d’analyse des performances

L’exemple untag-resource suivant supprime la balise name d’un rapport d’analyse des performances avec l’ID du rapport report-0d99cc91c4422ee61.

aws pi untag-resource \ --service-type RDS \ --resource-arn arn:aws:pi:us-west-2:123456789012:perf-reports/RDS/db-abcdefg123456789/report-0d99cc91c4422ee61 \ --tag-keys name

Cette commande ne produit aucune sortie.

Pour plus d’informations sur le balisage de rapports d’analyse des performances, consultez Ajout de balises à un rapport d’analyse des performances dans Performance Insights dans le Guide de l’utilisateur Amazon RDS et Ajout de balises à un rapport d’analyse des performances dans Performance Insights dans le Guide de l’utilisateur Amazon Aurora.

  • Pour plus de détails sur l’API, consultez UntagResource dans la Référence des commandes de l’AWS CLI.