使用 Amazon CLI 的 Amazon RDS 性能详情示例 - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文档仅适用于 Amazon CLI 版本 1。有关 Amazon CLI 版本 2 的相关文档,请参阅版本 2 用户指南

使用 Amazon CLI 的 Amazon RDS 性能详情示例

以下代码示例演示了如何将 Amazon Command Line Interface与 Amazon RDS 性能详情结合使用,以执行操作和实现常见场景。

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示了如何使用 create-performance-analysis-report

Amazon CLI

创建性能分析报告

以下 create-performance-analysis-report 示例为数据库 db-abcdefg123456789 创建了一个开始时间为 1682969503、结束时间为 1682979503 的性能分析报告。

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

输出:

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

有关创建性能分析报告的更多信息,请参阅《Amazon RDS 用户指南》中的在性能详情中创建性能分析报告和《Amazon Aurora 用户指南》中的在性能详情中创建性能分析报告

以下代码示例演示了如何使用 delete-performance-analysis-report

Amazon CLI

删除性能分析报告

以下 delete-performance-analysis-report 示例删除报告 ID 为 report-0d99cc91c4422ee61 的性能分析报告。

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

此命令不生成任何输出。

有关删除性能分析报告的更多信息,请参阅《Amazon RDS 用户指南》中的在性能详情中删除性能分析报告和《Amazon Aurora 用户指南》中的在性能详情中删除性能分析报告

以下代码示例演示了如何使用 describe-dimension-keys

Amazon CLI

示例 1:描述维度键

此示例请求所有等待事件的名称。数据按事件名称以及指定时间段内这些事件的汇总值进行汇总。

命令:

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"}'

输出:

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

示例 2:查找对数据库负载贡献最大的语句的 SQL ID

以下 describe-dimension-keys 请求对数据库负载贡献最大的 10 条语句的 SQL 语句和 SQL ID。

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}'

输出:

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

有关性能详情中维度的更多信息,请参阅《Amazon RDS 用户指南》中的数据库负载和《Amazon Aurora 用户指南》中的数据库负载

以下代码示例演示了如何使用 get-dimension-key-details

Amazon CLI

获取数据库实例的指定维度组的详细信息

以下 get-dimension-key-details 示例检索数据库实例 db-10BCD2EFGHIJ3KL4M5NO6PQRS5 的 SQL 语句的全文。--groupdb.sql--group-identifierdb.sql.id。在此示例中,example-sql-id 表示通过使用 get-resource-metricsdescribe-dimension-keys 检索到的 SQL ID。在此示例中,有维度详细信息。因此,Performance Insights 将检索 SQL 语句的全文,而不会将其截断。

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

输出:

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

有关性能详情中维度的更多信息,请参阅《Amazon RDS 用户指南》中的数据库负载和《Amazon Aurora 用户指南》中的数据库负载

以下代码示例演示了如何使用 get-performance-analysis-report

Amazon CLI

获取性能分析报告

以下 get-performance-analysis-report 示例获取数据库 db-abcdefg123456789 的报告 ID 为 report-0d99cc91c4422ee61 的性能分析报告。响应提供报告状态、ID、时间详细信息和见解。

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

输出:

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

有关性能分析报告的更多信息,请参阅《Amazon RDS 用户指南》中的分析一段时间内的数据库性能和《Amazon Aurora 用户指南》中的分析一段时间内的数据库性能

以下代码示例演示了如何使用 get-resource-metadata

Amazon CLI

获取数据库的资源元数据

以下 get-resource-metadata 示例获取数据库 db-abcdefg123456789 的资源元数据。响应显示 SQL 摘要统计信息已启用。

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

输出:

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

有关性能详情的 SQL 统计数据的更多信息,请参阅《Amazon RDS 用户指南》中的性能详情的 SQL 统计数据和《Amazon Aurora 用户指南》中的性能详情的 SQL 统计数据

  • 有关 API 详细信息,请参阅《Amazon CLI Command Reference》中的 GetResourceMetadata

以下代码示例演示了如何使用 get-resource-metrics

Amazon CLI

获取资源指标

此示例为 db.wait_event 维度组以及该组中的 db.wait_event.name 维度请求数据点。在响应中,相关的数据点按请求的维度(db.wait_event.name)分组。

命令:

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

--metric-queries 的参数存储在 JSON 文件(metric-queries.json)中。以下是该文件的内容:

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

输出:

{ "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...> ] }
  • 有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 GetResourceMetrics

以下代码示例演示了如何使用 list-available-resource-dimensions

Amazon CLI

列出可以在数据库实例上针对指标类型查询的维度

以下 list-available-resource-dimensions 示例列出了您可以为数据库 db-abcdefg123456789 查询的 db.load 指标。

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

输出:

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

有关性能详情中维度的更多信息,请参阅《Amazon RDS 用户指南》中的数据库负载和《Amazon Aurora 用户指南》中的数据库负载

以下代码示例演示了如何使用 list-available-resource-metrics

Amazon CLI

列出可以在数据库实例上针对指标类型查询的指标

以下 list-available-resource-metrics 示例列出了您可以为数据库 db-abcdefg123456789 查询的 db.load 指标。

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

输出:

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

有关性能详情中指标的更多信息,请参阅《Amazon RDS 用户指南》中的数据库负载和《Amazon Aurora 用户指南》中的数据库负载

以下代码示例演示了如何使用 list-performance-analysis-reports

Amazon CLI

列出数据库的性能分析报告

以下 list-performance-analysis-reports 示例列出了数据库 db-abcdefg123456789 的性能分析报告。响应列出了所有带有报告 ID、状态和时间段详细信息的报告。

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

输出:

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

有关性能分析报告的更多信息,请参阅《Amazon RDS 用户指南》中的分析一段时间内的数据库性能和《Amazon Aurora 用户指南》中的分析一段时间内的数据库性能

以下代码示例演示了如何使用 list-tags-for-resource

Amazon CLI

列出性能分析报告的标签

以下 list-tags-for-resource 示例列出报告 ID 为 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

输出:

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

有关向性能分析报告添加标签的更多信息,请参阅《Amazon RDS 用户指南》中的在性能详情中向性能分析报告添加标签和《Amazon Aurora 用户指南》中的在性能详情中向性能分析报告添加标签

  • 有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 ListTagsForResource

以下代码示例演示了如何使用 tag-resource

Amazon CLI

向性能分析报告添加标签

以下 tag-resource 示例将标签键 name 以及标签值 test-tag 添加到报告 ID 为 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

此命令不生成任何输出。

有关向性能分析报告添加标签的更多信息,请参阅《Amazon RDS 用户指南》中的在性能详情中向性能分析报告添加标签和《Amazon Aurora 用户指南》中的在性能详情中向性能分析报告添加标签

  • 有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 TagResource

以下代码示例演示了如何使用 untag-resource

Amazon CLI

删除性能分析报告的标签

以下 untag-resource 示例删除报告 ID 为 report-0d99cc91c4422ee61 的性能分析报告的标签 name

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

此命令不生成任何输出。

有关向性能分析报告添加标签的更多信息,请参阅《Amazon RDS 用户指南》中的在性能详情中向性能分析报告添加标签和《Amazon Aurora 用户指南》中的在性能详情中向性能分析报告添加标签

  • 有关 API 详细信息,请参阅《Amazon CLI 命令参考》中的 UntagResource