From 05b5bc3e7e8703664c636b4cb381c8f0efb9ad0a Mon Sep 17 00:00:00 2001 From: Vladimir Rutsky <rutsky.vladimir@gmail.com> Date: Thu, 2 Mar 2017 17:46:04 +0300 Subject: [PATCH] add script for wrapping saved from Grafana dashboard specifications --- hack/scripts/wrap-dashboard.sh | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 hack/scripts/wrap-dashboard.sh diff --git a/hack/scripts/wrap-dashboard.sh b/hack/scripts/wrap-dashboard.sh new file mode 100755 index 00000000..1b514387 --- /dev/null +++ b/hack/scripts/wrap-dashboard.sh @@ -0,0 +1,50 @@ +#!/bin/bash -eu + +# Intended usage: +# * Edit dashboard in Grafana (you need to login first with admin/admin +# login/password). +# * Save dashboard in Grafana to check is specification is correct. +# Looks like this is the only way to check is dashboard specification +# has error. +# * Download dashboard specification as JSON file in Grafana: +# Share -> Export -> Save to file. +# * Wrap dashboard specification to make it digestable by kube-prometheus: +# ./hack/scripts/wrap-dashboard.sh Nodes-1488465802729.json +# * Replace dashboard specification: +# mv Nodes-1488465802729.json assets/grafana/node-dashboard.json +# * Regenerate Grafana configmap: +# ./hack/scripts/generate-configmaps.sh +# * Apply new configmap: +# kubectl -n monitoring apply -f manifests/grafana/grafana-cm.yaml + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 path-to-dashboard.json" + exit 1 +fi + +json=$1 +temp=$(tempfile -m 0644) + +cat >> $temp <<EOF +{ + "dashboard": +EOF + +cat $json >> $temp + +cat >> $temp <<EOF +, + "inputs": [ + { + "name": "DS_PROMETHEUS", + "pluginId": "prometheus", + "type": "datasource", + "value": "prometheus" + } + ], + "overwrite": true +} +EOF + +mv $temp $json + -- GitLab