Sign inSign up

stelminator/grafana-watcher

By stelminator

•Updated over 8 years ago

grafana-watcher with support for alert-notifications (at least that's the idea)

Image
0

1.5K

stelminator/grafana-watcher repository overview

⁠Grafana Watcher

The Grafaner Watcher was built for the kube-prometheus collection⁠ in order to run Grafana in an easily replicable manner without the need to run a complicated database, and rather provision dashboards from configs off of files. It subscribes to filesystem changes in a given directory, reads files matching *-datasource.json and *-dashboard.json and imports the datasources and dashboards to a given Grafana instance via Grafana's REST API.

⁠How to use

A Docker container is provided on quay.io/coreos/grafana-watcher or can be built by your self. Run the container and make sure Grafana is reachable from Grafana Watcher. Pass source directory and Grafana URL to start command, e.g:

When running on Kubernetes, make sure to mount a volume containing the desired dashboards and datasources to watch-dir, e.g. as ConfigMap, as showed below. Minimal Kubernetes example configuration:

deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: grafana
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: grafana
    spec:
      containers:
      - name: grafana
        image: grafana/grafana:4.4.3
      - name: grafana-watcher
        image: quay.io/coreos/grafana-watcher:v0.0.8
        args:
        - '--watch-dir=/var/grafana-dashboards'
        - '--grafana-url=http://localhost:3000'
        volumeMounts:
        - name: grafana-dashboards
          mountPath: /var/grafana-dashboards
    volumes:
    - name: grafana-dashboards
      configMap:
        name: grafana-dashboards

configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: grafana-dashboards
data:
  prometheus-datasource.json: |
    {"access":"proxy","basicAuth":true, ... }

  overview-dashboard.json: |
    {"dashboard":{"annotations":{"list":[]}, ... }}

When the dashboard JSON is exported via the Grafana web-ui, it has to be wrapped in {"dashboard": {}}, variables, marked by ${}, have to be replaced and the fields __input and __requires have to be removed, for the dashboard JSON to be parseable by Grafana via the REST API used by the Grafana Watcher.

Alternatively use make generate as described in Developing Alerts and Dashboards⁠ to create the ConfigMap.

Tag summary

Content type

Image

Digest

Size

3.3 MB

Last updated

over 8 years ago

docker pull stelminator/grafana-watcher:alertnotifications