{Aurora}Performance Insights API によるデータの取得

Performance Insights を使用するには、DB インスタンスで有効にします。

 

Aurora MySQL の Performance Schema を有効にすると、Performance Insights が提供する情報がより詳細になります。
Aurora MySQL の場合、db.t2 または db.t3 DB インスタンスクラスではサポートされていません。

 

-- 1. Performance Insights の有効化

aws rds modify-db-instance \
--db-instance-identifier cluster01-instance-1 \
--enable-performance-insights \
--performance-insights-retention-period 7

 

※ Aurora MySQL におけるパフォーマンスインサイトのパフォーマンススキーマの有効化


performance_schema -> 1
performance-schema-consumer-events-waits-current -> ON
performance-schema-instrument -> wait/%=ON
performance_schema_consumer_global_instrumentation -> ON
performance_schema_consumer_thread_instrumentation -> ON

インスタンス再起動必要

 

 

 

-- 1. Performance Insights の有効化

aws rds modify-db-instance \
--db-instance-identifier cluster02-instance-1 \
--enable-performance-insights \
--performance-insights-retention-period 7


-- 2. Performance Insights API によるデータの取得

-- identifierに使用するDbiResourceIdの確認
aws rds describe-db-instances | jq -c '.DBInstances[] | [ .DBInstanceIdentifier , .DbiResourceId ] '


aws pi describe-dimension-keys \
--service-type RDS \
--identifier db-XXXXXXXXXXXXXXXXXXXXXXXXXX \
--start-time 2021-07-18T04:15:00Z \
--end-time 2021-07-18T04:50:00Z \
--metric db.load.avg \
--group-by '{"Group":"db.wait_event_type"}'


aws pi describe-dimension-keys \
--service-type RDS \
--identifier db-XXXXXXXXXXXXXXXXXXXXXXXXXX \
--start-time 2021-07-18T04:15:00Z \
--end-time 2021-07-18T04:50:00Z \
--metric db.load.avg \
--group-by '{"Group":"db.sql","Dimensions":["db.sql.id"]}'

 

 

---- カウンターメトリクスの取得

vim query1.json
[
{
"Metric": "os.cpuUtilization.user.avg"
},
{
"Metric": "os.cpuUtilization.idle.avg"
}
]

aws pi get-resource-metrics \
--service-type RDS \
--identifier db-XXXXXXXXXXXXXXXXXXXXXXXXXX \
--start-time 2021-07-18T04:15:00Z \
--end-time 2021-07-18T04:50:00Z \
--period-in-seconds 60 \
--metric-queries file://query1.json

 


---- 上位の待機イベントに関する DB 平均負荷の取得
vim query2.json
[
{
"Metric": "db.load.avg",
"GroupBy": { "Group": "db.wait_event", "Limit": 7 }
}
]

aws pi get-resource-metrics \
--service-type RDS \
--identifier db-XXXXXXXXXXXXXXXXXXXXXXXXXX \
--start-time 2021-07-18T04:15:00Z \
--end-time 2021-07-18T04:50:00Z \
--period-in-seconds 60 \
--metric-queries file://query2.json


---- 上位の SQL に関する DB 平均負荷の取得
vim query3.json
[
{
"Metric": "db.load.avg",
"GroupBy": { "Group": "db.sql_tokenized", "Limit": 10 }
}
]

aws pi get-resource-metrics \
--service-type RDS \
--identifier db-XXXXXXXXXXXXXXXXXXXXXXXXXX \
--start-time 2021-07-18T04:15:00Z \
--end-time 2021-07-18T04:50:00Z \
--period-in-seconds 60 \
--metric-queries file://query3.json


---- SQL によってフィルタリングされた DB 平均負荷の取得
vim query4.json
[
{
"Metric": "db.load.avg",
"GroupBy": { "Group": "db.wait_event", "Limit": 5 },
"Filter": { "db.sql_tokenized.id": "9999999999999999999999999999999999999999" }
}
]

aws pi get-resource-metrics \
--service-type RDS \
--identifier db-XXXXXXXXXXXXXXXXXXXXXXXXXX \
--start-time 2021-07-18T04:15:00Z \
--end-time 2021-07-18T04:50:00Z \
--period-in-seconds 60 \
--metric-queries file://query4.json


---- SQL ステートメントの全文の取得

aws pi get-dimension-key-details
マニュアルには記載があるが、コマンドがない