PlanetScale の パフォーマンスモニタリング
PlanetScaleはWebダッシュボード上でデータベースのパフォーマンスモニタリングを行うことができます。
実行頻度の高すぎるクエリや実行時間の長すぎるクエリ、データ量が大きすぎるクエリ、エラーが発生しているクエリなどをグラフ化し実行されたクエリの詳細を確認することができます。
まだグラフ上にデプロイ履歴が表示されるため、デプロイ後にエラーの頻度が高くなったなどの検出を行うこともできるようです。
パフォーマンスグラフ
モニタリングはデータベースのInsightsタブから確認できます。
ブランチ切り替え
画面右上のリストでブランチの切り替えを行うことができます。
表示オプション
1秒あたりの読み取り行数、書き込み行数やクエリレイテンシなど下記5つのを表示切り替えすることができ、調査用途などに合わせて切り替えることで視覚的にとても認識がしやすいです。
- Rows read per second — Total count followed by rows read per second.
- Rows written per second — Total count followed by rows written per second.
- Query latency (ms) — Two line charts showing p50 and p90 latency. This means 50% and 90% of requests, respectively, completed faster than the time listed.
- Queries per second — Total queries per second.
- Query errors — Any errors that have been captured on your database. See the Errors tab on the table below for a deep dive.
クエリ詳細の確認
ここでは実際にデータベースに対して実行されたクエリを確認することができます。
テーブル形式で表示されているため、実行日時やクエリレイテンシなどでソートを行うことができます。
また、クエリをクリックすると更に詳細を確認することができます。次の項目で詳しく解説したいと思います。
グラフをドラッグアンドドロップで選択することで画面下部のクエリを選択範囲に絞り込み表示するとが可能です。
クエリ
先ほどでも少し触れましたがInsightsページでクエリの詳細も確認することができます。
この表では実際に実行されたSQLや実行回数、読み取り行数などが確認できます。
クエリをクリックすると詳細画面に遷移します。
実行計画を確認するには Show explain plan
のスイッチをオンにし、各パラメータに値を設定し Generate explain plan
をクリックすると Explain plan
(実行計画)が出力されます。
おわりに
PlanetScaleのパフォーマンスモニタリングはとてもシンプルで直感的に操作できました。
利用シーンとしては、グラフから異常な箇所を範囲指定で絞り込み、更に画面下の表でソートを行い異常なクエリやエラーが発生しているクエリを特定、実際に問題のクエリをWebコンソール上で実行し実行計画から原因を追求するなどのケースで利用できそうです。
PlanetScaleをモニタリングする方法は今回紹介したWebコンソールからだけではなくDatadogにメトリクスをプッシュして利用する方法もあるようです、ただこの方法を利用するには有料プランである必要があります。
参考
Discussion