database-observability について
MySQL と PostgreSQL を監視する Grafana Cloud Database Observability のスキルです。アプリケーションコードを変更せずにクエリ単位の性能データを取得し、トレース連携やアラートの設定にも役立ちます。
主な機能
- 01クエリ単位の RED メトリクス
- 02クエリサンプルと実行計画
- 03MySQL と PostgreSQL の監視
- 04APM トレース連携
- 05レイテンシ、エラー、飽和度のアラート
活用シーン
- 01高レイテンシや呼び出し頻度の高いクエリの特定
- 02SQL サンプルと実行計画の確認
- 03遅いサービススパンから該当 SQL への追跡
- 04エラーやコネクションプール飽和度のアラート
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ grafana/ skills --skill database-observabilityインストール後、Claude Code で/database-observabilityを入力して読み込まれたか確認します。
同梱ファイルreferences/alloy-config.mdreferences/queries-alerts.md
詳細
Grafana Cloud データベースオブザーバビリティ
ドキュメント: https://grafana.com/docs/grafana-cloud/monitor-applications/database-observability/
アプリケーションコードを変更せずに、MySQL と PostgreSQL のクエリレベルのインサイト(RED メトリクス、クエリサンプル、実行計画)を取得できます。2026年4月から一般提供されています。
よくあるワークフロー
PostgreSQL のセットアップ
-- 1. Enable pg_stat_statements (requires restart)
-- In postgresql.conf: shared_preload_libraries = 'pg_stat_statements'
-- Then restart PostgreSQL.
-- 2. Create a least-privilege monitoring user
CREATE USER grafana_monitoring WITH PASSWORD 'secret';
GRANT pg_monitor TO grafana_monitoring;
GRANT CONNECT ON DATABASE mydb TO grafana_monitoring;
-- 3. Enable the extension on each monitored DB
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
-- 4. Verify
SELECT count(*) FROM pg_stat_statements;
-- Should return >= 0 (not an error). If "relation does not exist": step 3 didn't run.
- references/alloy-config.md § PostgreSQL の Alloy 設定ブロックを追加します
- Alloy を再起動し、最初のスクレイプまで約60秒待ちます
- Grafana Cloud で確認 → Database Observability — インスタンスが表示され、
db_query_total{db_instance="mydb"}シリーズに値が含まれているはずです。2分経っても空の場合:Alloy のログで接続エラーを確認し、次に pg_stat_statements の権限を再確認します。
MySQL のセットアップ
-- 1. Create least-privilege monitoring user
CREATE USER 'grafana_monitoring'@'%' IDENTIFIED BY 'secret';
GRANT SELECT, PROCESS, REPLICATION CLIENT ON *.* TO 'grafana_monitoring'@'%';
GRANT SELECT ON performance_schema.* TO 'grafana_monitoring'@'%';
FLUSH PRIVILEGES;
-- 2. Verify performance_schema is enabled (default in MySQL 8+)
SELECT @@performance_schema;
-- Returns 1 → enabled. 0 → set performance_schema=ON in my.cnf + restart.
- references/alloy-config.md § MySQL の Alloy 設定ブロックを追加します
- Alloy を再起動して約60秒待ち、Grafana Cloud → Database Observability でインスタンスが表示されることを確認します
対応データベース
| データベース | バリエーション |
|---|---|
| MySQL | セルフマネージド、RDS MySQL、Aurora MySQL、Cloud SQL MySQL、Azure Database for MySQL |
| PostgreSQL | セルフマネージド、RDS PostgreSQL、Aurora PostgreSQL、Cloud SQL PostgreSQL、Azure Database for PostgreSQL |
マネージドデータベース(RDS/Cloud SQL/Azure)では、pg_stat_statements はあらかじめインストールされていますが、無効になっています。パラメーターグループ/フラグで有効にしてから、DB レベルで拡張機能を再作成してください。
利用できる機能
- クエリパフォーマンスダッシュボード(自動プロビジョニング):合計時間/呼び出し回数/平均レイテンシ別の上位クエリ、パラメーター付きのサンプリング済みクエリテキスト、視覚的な実行計画、クエリダイジェストごとの RED メトリクス
- APM との相関付け:
db.statement/db.system/db.nameOTel 属性を使用して、レイテンシの高いサービスのスパンから、遅い SQL を特定できます。references/queries-alerts.md § Trace correlation を参照してください - クエリレイテンシ、エラー率、コネクションプールの飽和に対するアラート設定 — 完全なアラート YAML は references/queries-alerts.md § Alert rules を参照してください
参考資料
references/alloy-config.md— Alloy のdatabase_observability.postgres/database_observability.mysql設定ブロックの全容と、コレクターのリファレンス(pg_stat_statements、query_samples、schema_details、explain_plans)references/queries-alerts.md— 主要な PromQL クエリ、アラートルール YAML、トレース相関の設定
コメント
Markdown 対応