Git 同步
注意
Git 同步是一项实验性功能,在 Grafana v12 开源版和 Enterprise 版本中引入。不提供工程和 on-call 支持。除了代码注释外,文档有限或未提供。不提供 SLA。请在 Grafana 中启用
provisioning
和kubernetesDashboards
功能开关来使用此功能。Git 同步在 Grafana Cloud 中不可用。
使用 Git 同步,您可以
- 为创建和修改仪表盘引入审查流程
- 在 Grafana 实例外部管理仪表盘配置
- 在多个实例之间复制仪表盘
每当仪表盘被修改时,Grafana 可以在保存时将更改提交到 Git。用户可以配置设置,以强制在合并前进行 PR 审批,或允许直接提交。
用户可以直接将更改推送到 GitHub 并在 Grafana 中看到它们。类似地,自动化工作流可以进行更改,通过更新 Git 自动在 Grafana 中体现。
由于仪表盘定义在 JSON 文件中,您可以启用 as-code 工作流,其中 JSON 以仪表盘 schema 的格式从 Go、TypeScript 或其他编程语言输出。
要了解更多关于使用编程语言创建仪表盘并通过 Git 同步进行预置的信息,请参阅Foundation SDK 文档。
工作原理
Git 同步是双向的,它既适用于直接在 GitHub 中进行的更改,也适用于在 Grafana UI 中进行的更改。Grafana 定期轮询 GitHub 以同步任何更改。启用 webhook 功能后,仓库通知几乎会立即出现。如果没有 webhook,Grafana 会按照指定的间隔轮询更改。默认轮询间隔为 60 秒。
在存储于 GitHub 仓库中的预置文件中进行的任何更改都会反映在 Grafana 数据库中。Grafana UI 读取数据库并更新 UI 以反映这些更改。
常见用例
Grafana 中的 Git 同步让您能够将仪表盘作为代码进行管理。由于您的仪表盘 JSON 文件存储在 GitHub 中,您和您的团队可以有效地进行版本控制、协作和自动化部署。
版本控制和审计
组织可以维护 Grafana 仪表盘的结构化、版本控制的历史记录。版本控制使您可以在必要时回滚到以前的版本,比较跨提交的修改,并确保仪表盘管理的透明度。此外,详细的更改历史记录有助于合规性工作,因为团队可以生成审计日志来记录谁进行了更改、何时进行以及原因。
自动化部署和 CI/CD 集成
团队可以通过将仪表盘更新集成到其 CI/CD 流水线中来简化工作流。通过将更改推送到 GitHub,自动化流程可以触发验证检查、测试仪表盘配置,并使用 grafanactl CLI 和 Foundation SDK 以编程方式部署更新。这降低了人为错误的风险,确保了跨环境的一致性,并为用于生产监控和分析的仪表盘实现了更快、更可靠的发布周期。
协作式仪表盘开发
借助 Git 同步,多个用户可以同时处理仪表盘,而不会覆盖彼此的修改。通过利用拉取请求和基于分支的工作流,团队可以在将更改合并到主分支之前提交更改进行审查。此过程不仅提高了质量控制,还确保仪表盘符合最佳实践和组织标准。此外,GitHub 内置的讨论和审查工具促进了有效的协作,使得在更改生效之前更容易处理反馈。
多环境同步
管理多个 Grafana 实例(例如开发、预演和生产环境)的企业可以无缝地在这些实例之间同步仪表盘。这确保了可视化和监控配置的一致性,减少了因在不同环境中手动管理仪表盘而可能产生的差异。通过使用 Git 同步,团队可以自动化跨环境的部署,消除重复的设置任务,并在整个组织中维护标准化的监控基础设施。
灾难恢复和备份
通过持续将仪表盘同步到 GitHub,组织可以创建持续更新的备份,确保仪表盘不会因意外删除或系统故障而丢失。如果出现问题(例如仪表盘损坏、意外修改或系统崩溃),团队可以从 Git 仓库快速恢复最新的可用版本。这不仅最大限度地减少了停机时间,还为 Grafana 监控设置增加了一层弹性,确保关键仪表盘在需要时保持可用。