Grafana 仪表板代码生成器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/grafana-dashboard-as-code-generator
技能介绍
解决什么问题
手动维护 Grafana 仪表板常遇到这些问题:修改某个指标的查询条件需要在大量 JSON 中逐一查找;同一套面板在多个环境(如测试、生产)重复配置,却无法复用;多数据源(Prometheus、Loki、Tempo)的混合查询手写配置容易出错,且难以批量更新。当仪表板数量增多,纯手工操作会变得低效且容易引入配置偏差。
核心能力
该技能通过程序化方式生成仪表板,核心依赖三部分:Grafonnet(基于 Jsonnet 的库)负责用代码描述面板与布局;Grafana HTTP API 用于将生成的配置直接同步到 Grafana;grafana-toolkit 辅助处理构建与部署流程。支持在同一面板中混合使用 Prometheus 的指标查询、Loki 的日志检索与 Tempo 的链路追踪,解决多数据源统一配置的痛点。
关键步骤大致为:使用 Jsonnet 编写可参数化的模板,通过 grafonnet.dashboard 组合面板与数据源绑定,调用 Grafana HTTP API 将生成的 JSON 推送到指定实例,再借助 grafana-toolkit 验证格式与依赖。配置不再是零散的文件,而是可版本控制、可复用的代码。
注意点
该方案依赖 Grafonnet、Jsonnet 和 grafana-toolkit 等工具链,需提前在环境中准备。重要:Jsonnet 的 C 实现存在明显性能问题,应优先使用 go-jsonnet 实现。生成的配置需符合 Grafana 当前版本的 API 规范,跨大版本升级时可能需要调整模板。文档参考 Grafonnet 官方指南,适合需要批量生成、多环境管理仪表板的工程团队,对单页快速配置场景偏重。
使用场景
- 微服务团队要把 Prometheus、Loki、Tempo 查询放到同一面板,统一生成 Grafana 仪表板
- 平台工程师需要用 Grafonnet 与 grafana-toolkit 把仪表板配置纳入版本控制并批量更新
- 运维人员通过 Grafana HTTP API 将生成的 JSON 同步到多个环境,避免逐台手改
- 使用 Jsonnet 编写可参数化仪表板模板的开发者,需要跨项目复用数据源与布局定义
适合人员
- 后端开发者,需要把服务监控指标和日志整合进同一 Grafana 仪表板并可重复生成
- 平台工程师,希望用代码管理 Grafana 配置并按环境批量发布更新
- SRE 工程师,负责通过 HTTP API 同步仪表板并减少手动配置错误
- 数据观测工程师,使用 Jsonnet 编写模板以复用多数据源面板定义