系列文章
•Grafana 系列文章[1]•Terraform 系列文章[2]
概述
GaC(Grafana as Code, Grafana 即代码) 很明显是扩展自 IaC(Infrastructure as Code, 基础设施即代码)的概念.
在Terraform 系列 - 什么是 IaC?[3]一文中, 我们已经详细地说明了相关的概念, 我们可以直接套用在 GaC 上:
Grafana 即代码 (Grafana as Code, GaC) 是指通过 代码 而不是手动流程 / 控制台点击来管理和配置 Grafana。
这里有 2 个关键词:
•Grafana•Code
Grafana 是被管理对象,在这里,不仅仅是指 Grafana OSS 这一款产品, 还包括 Grafana Labs 提供的商业产品和云服务. 包括不限于:
•Grafana Alerting•Grafna Cloud Stack, 包括 Grafana Cloud 的:•认证•权限•策略•Service Account•组织•...•Grafana Enterprise (企业版)•Grafana OnCall[4]: 事件响应和管理平台(IRM)•Grafana SLO: SLA 和 可用性管理•Grafana Synthetic Monitoring: 拨测, 类似 BlackBoxProbe
Code 是管理方式,即像管理代码一样管理 Grafana 资源。那么管理代码最重要的部分: 版本管理是绕不开的。 ...
当然, 这一系列文章, 主要还是关注于通过代码的形式来管理 Grafana 这个产品.
这篇文章主要跟着Grafana as code: A complete guide to tools, tips, and tricks[5] 这篇官方文章的逻辑来进行, 变穿插笔者的评价和最终选择.
GaC 的几种官方方案
官方推荐这么几种方案, 另外我也会加几个我认为可行的方案:
•基于 Terraform 的 Grafana Terraform provider[6]•基于 Ansible 的 Grafana Ansible collection[7]•Grizzly[8]: Grafana 官方开源的一个部署和配置Grafana 一体化 cli 工具.•Tanka[9]: Grafana 官方开源的一个基于 jsonnet 的 Kubernetes 集群管理工具•基于 Crossplane 的Grafana Crossplane provider[10]•基于 Kubernetes CRD 的 Kubernetes Grafana Operator[11]•基于 API 的定制化开发:•grafana-api-golang-client[12]•Grafana API[13]•基于 Jsonnet 的 Dashboard as Code•grafana/jsonnet-libs: Grafana Labs' Jsonnet libraries (github.com)[14]•grafana/grafonnet: Jsonnet library for generating Grafana dashboards. (github.com)[15]•grafana/grafonnet-lib: Jsonnet library for generating Grafana dashboard files. (github.com)[16] (