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:
- data sources
- API keys
- alert manager configuration (alert routing, notification policies, ...)
- full description of dashboards via YAML
- integration with
kubectl
- seamless integration with Grafana
- delegate YAML decoding and dashboard generation to Grabana
- creation and operation of Grafana instances themselves. For that, check out
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 dashboards
apiVersion: 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.
- Creating a Grafana Dashboard with Kubernetes Resource Objects — SoByte
- How VOI went DARK — VOI Technology
This library is under the MIT license.