Merge pull request #904 from paulfantom/dashboarding_issues

Dashboarding issues
This commit is contained in:
Paweł Krupa
2021-02-02 11:09:11 +01:00
committed by GitHub
5 changed files with 97 additions and 84 deletions

View File

@@ -274,10 +274,11 @@ local template = grafana.template;
local graphPanel = grafana.graphPanel; local graphPanel = grafana.graphPanel;
local kp = (import 'kube-prometheus/main.libsonnet') + { local kp = (import 'kube-prometheus/main.libsonnet') + {
_config+:: { values+:: {
common+:: {
namespace: 'monitoring', namespace: 'monitoring',
}, },
grafana+:: { grafana+: {
dashboards+:: { dashboards+:: {
'my-dashboard.json': 'my-dashboard.json':
dashboard.new('My Dashboard') dashboard.new('My Dashboard')
@@ -304,6 +305,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + {
), ),
}, },
}, },
},
}; };
{ ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } + { ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } +
@@ -322,17 +324,16 @@ As jsonnet is a superset of json, the jsonnet `import` function can be used to i
[embedmd]:# (../examples/grafana-additional-rendered-dashboard-example.jsonnet) [embedmd]:# (../examples/grafana-additional-rendered-dashboard-example.jsonnet)
```jsonnet ```jsonnet
local kp = (import 'kube-prometheus/main.libsonnet') + { local kp = (import 'kube-prometheus/main.libsonnet') + {
_config+:: { values+:: {
common+:: {
namespace: 'monitoring', namespace: 'monitoring',
}, },
grafanaDashboards+:: { // monitoring-mixin compatibility grafana+: {
'my-dashboard.json': (import 'example-grafana-dashboard.json'),
},
grafana+:: {
dashboards+:: { // use this method to import your dashboards to Grafana dashboards+:: { // use this method to import your dashboards to Grafana
'my-dashboard.json': (import 'example-grafana-dashboard.json'), 'my-dashboard.json': (import 'example-grafana-dashboard.json'),
}, },
}, },
},
}; };
{ ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } + { ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } +
@@ -348,14 +349,16 @@ In case you have lots of json dashboard exported out from grafana UI the above a
[embedmd]:# (../examples/grafana-additional-rendered-dashboard-example-2.jsonnet) [embedmd]:# (../examples/grafana-additional-rendered-dashboard-example-2.jsonnet)
```jsonnet ```jsonnet
local kp = (import 'kube-prometheus/main.libsonnet') + { local kp = (import 'kube-prometheus/main.libsonnet') + {
_config+:: { values+:: {
common+:: {
namespace: 'monitoring', namespace: 'monitoring',
}, },
grafana+:: { grafana+: {
rawDashboards+:: { rawDashboards+:: {
'my-dashboard.json': (importstr 'example-grafana-dashboard.json'), 'my-dashboard.json': (importstr 'example-grafana-dashboard.json'),
}, },
}, },
},
}; };
{ ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } + { ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } +

View File

@@ -6,10 +6,11 @@ local template = grafana.template;
local graphPanel = grafana.graphPanel; local graphPanel = grafana.graphPanel;
local kp = (import 'kube-prometheus/main.libsonnet') + { local kp = (import 'kube-prometheus/main.libsonnet') + {
_config+:: { values+:: {
common+:: {
namespace: 'monitoring', namespace: 'monitoring',
}, },
grafana+:: { grafana+: {
dashboards+:: { dashboards+:: {
'my-dashboard.json': 'my-dashboard.json':
dashboard.new('My Dashboard') dashboard.new('My Dashboard')
@@ -36,6 +37,7 @@ local kp = (import 'kube-prometheus/main.libsonnet') + {
), ),
}, },
}, },
},
}; };
{ ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } + { ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } +

View File

@@ -1,12 +1,14 @@
local kp = (import 'kube-prometheus/main.libsonnet') + { local kp = (import 'kube-prometheus/main.libsonnet') + {
_config+:: { values+:: {
common+:: {
namespace: 'monitoring', namespace: 'monitoring',
}, },
grafana+:: { grafana+: {
rawDashboards+:: { rawDashboards+:: {
'my-dashboard.json': (importstr 'example-grafana-dashboard.json'), 'my-dashboard.json': (importstr 'example-grafana-dashboard.json'),
}, },
}, },
},
}; };
{ ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } + { ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } +

View File

@@ -1,15 +1,14 @@
local kp = (import 'kube-prometheus/main.libsonnet') + { local kp = (import 'kube-prometheus/main.libsonnet') + {
_config+:: { values+:: {
common+:: {
namespace: 'monitoring', namespace: 'monitoring',
}, },
grafanaDashboards+:: { // monitoring-mixin compatibility grafana+: {
'my-dashboard.json': (import 'example-grafana-dashboard.json'),
},
grafana+:: {
dashboards+:: { // use this method to import your dashboards to Grafana dashboards+:: { // use this method to import your dashboards to Grafana
'my-dashboard.json': (import 'example-grafana-dashboard.json'), 'my-dashboard.json': (import 'example-grafana-dashboard.json'),
}, },
}, },
},
}; };
{ ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } + { ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } +

View File

@@ -22,6 +22,10 @@ local defaults = {
}, },
prometheusName: error 'must provide prometheus name', prometheusName: error 'must provide prometheus name',
dashboards: {}, dashboards: {},
// TODO(paulfantom): expose those to have a stable API. After kubernetes-grafana refactor those could probably be removed.
rawDashboards: {},
folderDashboards: {},
containers: [],
}; };
function(params) { function(params) {
@@ -47,6 +51,9 @@ function(params) {
labels: g.config.commonLabels, labels: g.config.commonLabels,
dashboards: g.config.dashboards, dashboards: g.config.dashboards,
resources: g.config.resources, resources: g.config.resources,
rawDashboards: g.config.rawDashboards,
folderDashboards: g.config.folderDashboards,
containers: g.config.containers,
}, },
}, },
}, },