mcpField
D
database-observability

database-observability

github.com/grafana云与 DevOps2954.3k 次安装1 天前更新
代码仓库

关于 database-observability

面向监控 MySQL 和 PostgreSQL 的 Grafana Cloud Database Observability 技能,无需更改应用代码即可获取查询级性能数据,并提供链路关联与告警指引。

主要功能

  1. 01查询级 RED 指标
  2. 02查询样本与执行计划
  3. 03监控 MySQL 和 PostgreSQL
  4. 04APM 链路关联
  5. 05延迟、错误及饱和度告警

适用场景

  1. 01查找延迟或调用次数较高的查询
  2. 02检查 SQL 样本和执行计划
  3. 03从慢服务链路追踪到对应 SQL
  4. 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.
  1. 添加references/alloy-config.md § PostgreSQL中的 [Alloy 配置块]
  2. 重启 Alloy,并等待约 60 秒以完成首次抓取
  3. 在 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.
  1. 添加references/alloy-config.md § MySQL中的 [Alloy 配置块]
  2. 重启 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 已预装但处于禁用状态 — 请通过参数组 / 标志启用,然后在数据库级别重新创建扩展。

可获得的功能

  • 查询性能仪表板(自动配置):按总耗时 / 调用次数 / 平均延迟排列的热门查询、带参数的采样查询文本、可视化执行计划、每个查询摘要的 RED 指标
  • APM 关联:从服务延迟较高的 span 深入查看具体的慢 SQL,使用 db.statement / db.system / db.name OTel 属性 — 参见 references/queries-alerts.md § 跟踪关联
  • 告警:针对查询延迟、错误率和连接池饱和进行告警 — 完整的告警 YAML 见 references/queries-alerts.md § 告警规则

参考资料

  • 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