データベースオブザーバビリティ でーたべーすおぶざーばびりてぃ
DBオブザーバビリティモニタリングクエリ分析スロークエリパフォーマンスチューニングメトリクス
DBオブザーバビリティって何を見るの?
簡単に言うとこんな感じ!
DBオブザーバビリティは「データベースが今どんな状態か・どこが遅いか・何が問題の原因か」を見える化する取り組みだよ!「なんか最近アプリが遅い…」という原因がDBにある場合、クエリの実行時間・接続数・ロック状況などを監視することで問題を特定できるんだ。
データベースオブザーバビリティとは
データベースオブザーバビリティ(Database Observability) とは、データベースのパフォーマンス・健全性・動作状況を継続的に観測・分析・診断する実践と仕組みです。
一般的な「モニタリング(決まった指標を監視)」に加え、「知らない問題も発見できる」状態を目指すのがオブザーバビリティの特徴です(メトリクス・ログ・トレースの3本柱)。
監視すべき主要指標
| カテゴリ | 指標 | 内容 |
|---|---|---|
| パフォーマンス | クエリ実行時間 | スロークエリの特定(閾値: 1秒超など) |
| パフォーマンス | QPS(Query per Second) | 1秒あたりのクエリ数 |
| リソース | CPU使用率 | DB本体のCPU負荷 |
| リソース | メモリ使用量 | バッファプール使用率 |
| リソース | ディスクI/O | 読み書きのスループット・待ち時間 |
| 接続 | 接続数 | アクティブ接続・最大接続数との比較 |
| レプリケーション | レプリケーション遅延 | プライマリとレプリカの時間差 |
| ロック | デッドロック数 | トランザクション競合の頻度 |
スロークエリの対処フロー
スロークエリログで遅いSQLを特定
↓
EXPLAIN ANALYZEで実行計画を確認
↓
フルスキャン箇所にインデックスを追加
↓
クエリの書き直し(JOINの最適化等)
↓
実行後の改善効果を測定
歴史と背景
- 2000年代:MySQLのslow_query_logなど単純なログ機能が登場
- 2010年代:クラウドDB・マイクロサービスの普及でDB監視の複雑性が増大
- 現在:DatadogのDatabase Monitoring・New RelicなどSaaSツールが高度なオブザーバビリティを提供