Dashboards As Resources in Kubernetes.
DARK provides a way to define and deploy Grafana dashboards via Kubernetes, next to the services they monitor.
If you are looking for a way to version your dashboards and deploy them across all environments, like you would do with your services, then this project is meant for you.
In addition to dashboards, DARK can also manage:
kubectl
grafana-operator/grafana-operator
grafana-foundation-sdk
: A set of tools, types and libraries for building and manipulating Grafana objects – built by Grafana Labsgrabana
: User-friendly Go library for building Grafana dashboardsapiVersion: k8s.kevingomez.fr/v1
kind: GrafanaDashboard
metadata:
name: example-dashboard
namespace: monitoring
annotations:
dark/folder: "Awesome folder"
spec:
title: Awesome dashboard
shared_crosshair: true
tags: [generated, yaml]
auto_refresh: 10s
variables:
- interval:
name: interval
label: interval
default: 1m
values: [30s, 1m, 5m, 10m, 30m, 1h, 6h, 12h]
rows:
- name: Prometheus
panels:
- timeseries:
title: HTTP Rate
datasource: prometheus-default
targets:
- prometheus:
query: "rate(promhttp_metric_handler_requests_total[$interval])"
legend: "{{ handler }} - {{ code }}"
- graph:
title: Heap allocations
datasource: prometheus-default
targets:
- prometheus:
query: "go_memstats_heap_alloc_bytes"
legend: "{{ job }}"
More examples can be found in the examples/
folder
Check out the documentation to dig deeper into how to set up and use DARK.
This library is under the MIT license.