我正在尝试使用grafana仪表板的jsonnet(my-custom-grafana.jsonnet)。我尝试了以下代码。
local grafana = import 'grafonnet/grafana.libsonnet';
local dashboard = grafana.dashboard;
local row = grafana.row;
local prometheus = grafana.prometheus;
local template = grafana.template;
local graphPanel = grafana.graphPanel;local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + {
_config+:: {
namespace: 'monitoring',
},
grafana+:: {
dashboards+:: {
'cluster-autoscaler-dashboard.json': (import 'grafana-cluster-autoscaler.json'),
},
},
};{ ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } +
{ ['0prometheus-operator-' + name]: kp.prometheusOperator[name] for name in std.objectFields(kp.prometheusOperator) } +
{ ['node-exporter-' + name]: kp.nodeExporter[name] for name in std.objectFields(kp.nodeExporter) } +
{ ['kube-state-metrics-' + name]: kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics) } +
{ ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } +
{ ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }
然后我执行了
jsonnet -J vendor -m manifests "my-custom-grafana.jsonnet" | xargs -I{} sh -c 'cat {} | gojsontoyaml > {}.yaml' -- {}
在执行过程中我没有任何错误,但是我没有看到清单文件中的任何文件都通过此grafana仪表板更新进行了更新。我尝试了使用普罗米修斯规则的相同过程,并且发现manifests / prometheus-rules.yaml得到了更新,我能够部署yaml文件而不会出现问题。 但是使用grafana仪表板我不确定哪个文件会更新以及如何部署。有人可以帮忙吗?
答案 0 :(得分:0)
我通过删除-m清单来完成这项工作。
jsonnet -J vendor my-custom-grafana.jsonnet > grafana-test.json
但是,如果有人可以验证以下步骤,那就太好了。
自定义grafana仪表板(例如:集群自动缩放器仪表板)已添加到jsonnet文件中。 PFA my-custom-grafana.jsonnet。 注意:import'grafana-cluster-autoscaler.json'-> Configmap“数据”键的值
下面的命令被执行以编译jsonnet,
jsonnet -J vendor my-custom-grafana.jsonnet > grafana-test.json
cat grafana-test.json|gojsontoyaml > grafana-test.yaml
yaml文件包含所有资源,例如部署,服务,命名空间等。 由于我们拥有Prometheus运营商,因此已经部署了所有资源。 此外,“ grafana-dashboardDefinitions”包含自我们启用以来由grafana部署的所有仪表板 “ defaultDashboardsEnabled:true”
因此,我仅从grafana-test.yaml中提取了与“ grafana-dashboard-cluster-autoscaler-dashboard”相关的ConfigMap并进行了部署。
Cluster Autoscaler仪表板现已在grafana中提供。