作業リスト
- SQLの実行ログを出力するように設定変更
- ログから指定した処理時間以上のログを抽出
作業内容
1. SQLの実行ログを出力するように設定変更
PostgreSQLのパラメータグループで以下の設定を変更します。
今回は、CloudWatchの方で処理時間を指定するのですが、処理時間が300ms未満を除外しておきたいので300
を指定します。
これで、300ms以上かかるSQLと処理時間がログに出力されます。
※処理時間に関わらず全て出力したい場合は0
を指定します。
項目名 | 設定値 | 備考 |
---|---|---|
log_min_duration_statement | 300 | SQL実行にかかったミリ秒を指定 |
(参考)マネジメントコンソールの画面
RDSのパラメータグループの設定から、AuroraのClusterで利用する設定値を以下の通り変更
※タイプの適用がDynamic
となっているので動的に設定されます。
2. ログから指定した処理時間以上のログを抽出
今回は、1000ms超のログを抽出します。
CloudWatchのログのインサイトにて、以下のクエリを作成して実行します。
fields @message
| filter @message like /duration:/
| parse @message "duration: * ms" as duration
| filter duration > 1000
| sort duration desc
| display @timestamp, duration, @message
(参考)マネジメントコンソールの画面
最後に
- 開発中は、この遅いSQLのログは開発中に随時チェックすることで変なSQLが無いか随時チェックしましょう
- 開発者以外も見られるように、CloudWatchのダッシュボードを共有することでログを見られるようにするのもお勧めです