可观测性即代码入门
Grafana 提供了一套用于**可观测性即代码**的工具,帮助您以编程方式大规模管理 Grafana 资源。这种方法允许您在代码中定义仪表盘、数据源和其他配置,通过 CI/CD 流水线实现版本控制、自动化测试和可靠部署。
过去,将 Grafana 作为代码进行管理涉及各种社区和 Grafana Labs 工具,但缺乏统一、连贯的方案。Grafana 12 引入了基础性改进,包括新的版本化 API 和官方工具,提供了更清晰的发展路径。
Grafana CLI (grafanactl
)
使用官方命令行工具 grafanactl
,通过新的 API 与您的 Grafana 实例交互并管理资源。
- 它是自动化和直接 API 交互的推荐工具,适用于 CI/CD 流水线以及本地开发或自由形式的任务。它支持从远程实例拉取/推送配置、验证配置等。
grafanactl
可在 Grafana OSS、Enterprise 和 Cloud 的所有环境中工作。
请参阅Grafana CLI (grafanactl
) 文档了解更多信息。
Git Sync
对于专注于仪表盘的集成式 UI 驱动 Git 工作流程,请探索 Git Sync。
- 将文件夹或整个 Grafana 实例直接连接到 GitHub 仓库,以同步仪表盘定义,从而直接从 Grafana 实现版本控制、分支和拉取请求。
- Git Sync 提供了一种简单、开箱即用的方法来管理仪表盘作为代码。
注意
Git Sync 是 Grafana 12 中的一项**实验性功能**,可在 Grafana OSS 和 Enterprise 每夜版本中获得。它尚未在 Grafana Cloud 中提供。
请参阅 Git Sync 文档了解更多信息。
直接使用 API
为了获得最大的灵活性、满足高级用例或构建自定义工具,您可以直接与底层版本化 API 进行交互。
- 此方法需要处理 HTTP 请求和响应,但可以完全控制资源管理。
grafanactl
、Git Sync 和 Foundation SDK 都构建在这些 API 之上。- 要了解 API 接受的仪表盘 Schema,请参阅JSON 模型文档。
请参阅Grafana API 文档了解更多信息。
Foundation SDK
要使用熟悉的编程语言以编程方式定义您的 Grafana 资源(如仪表盘或警报),请使用 Foundation SDK。
- 使用 Go、TypeScript、Python、Java 和 PHP 等语言中的强类型构建器定义资源。
- 避免手动构建复杂的 JSON,并将资源生成集成到您现有的开发工作流程中。
- 在编译时捕获错误,并轻松将资源生成集成到您的 CI/CD 流水线中。
- 结合
grafanactl
使用,以推送您以编程方式生成的资源。
请参阅Foundation SDK 文档了解更多信息。
其他可观测性即代码工具
如果您已在使用成熟的基础设施即代码或其他配置管理工具,Grafana 提供了集成,可以在您现有的工作流程中管理资源。
- 使用 Grafana Terraform provider 管理仪表盘、警报等。
- 了解如何使用 HCL/JSON 配置定义和部署资源。
- 了解如何使用 Grafana Ansible collection 管理 Grafana Cloud 资源,包括文件夹和 Cloud stack。
- 编写 playbook 通过 Grafana API 自动化资源预配。
- 使用 Grafana Operator 利用 Kubernetes 原生管理。
- 通过 Kubernetes Custom Resources 管理仪表盘、文件夹和数据源。
- 与 GitOps 工作流程集成,实现无缝版本控制和部署。
Crossplane 允许您使用 Kubernetes manifest 和 Grafana Crossplane provider 管理 Grafana 资源。
Grafonnet 是一个 Jsonnet 库,用于以编程方式生成 Grafana 仪表盘 JSON 定义。它目前正处于弃用过程中。
Grizzly 是一个已弃用的命令行工具,它使用受 Kubernetes 启发的 YAML 语法简化了 Grafana 资源的管理。