【发布时间】:2021-08-30 17:31:41
【问题描述】:
我想使用单个模板部署和管理许多类似的带有 jsonnet/grafonnet 的 Grafana 仪表板,其中在每个仪表板实例中替换变量。
到目前为止,我的(不工作)方法的简化示例如下所示:
# main.jsonnet
(import 'template.json') {
_config+:: {
name: 'thing1',
},
metric:: {
name: 'metric1',
},
} +
(import 'template.json') {
_config+:: {
name: 'thing2',
},
metric:: {
name: 'metric2',
},
}
#template.json
local grafana = import 'github.com/grafana/grafonnet-lib/grafonnet/grafana.libsonnet';
local prometheus = grafana.prometheus;
local dashboard = grafana.dashboard;
local graphPanel = grafana.graphPanel;
{
grafanaDashboards+:: {
local fileName = $._config.name + '.json',
fileName:
dashboard.new(
'%(name)s Dashboard' % $._config.name,
).addPanel(
grafana.text.new(
title='%(name)s dashboard' % $.metric.name,
content='Dashboard for metric ' + $.metric.name,
),
)
},
}
但是,在渲染时,它只输出一个仪表板,其值为“thing2”“metric2”。
这样的模板的正确方法是什么?我正在寻找像这样输出的多个仪表板...
dashboard1 - “thing1” “metric1”
dashboard2 - "thing2" metric2"
【问题讨论】:
标签: grafana grafana-templating jsonnet