This project currently contains Giant Swarm public dashboards.
The goal of this repository is to have both public and Grafana Cloud dashboards defined in one place.
The dashboards located under helm/dashboards
are the dashboards hosted on each management cluster's grafana.
The "public" ones are accessible by the customer, and the "private" ones are only accessible by Giant Swarm employees.
This chart is divided in 4 different charts, to get around helm charts size limitations:
helm/dashboards/charts/public_dashboards/
for public dashboards.helm/dashboards/charts/private_dashboards_al/
for private dashboards starting with letters A to L.helm/dashboards/charts/private_dashboards_mz/
for private dashboards starting with letters M to Z.helm/dashboards/
for other dashboards.
All dashboards should have proper tags to facilitate their discovery. To that end, we advise the following tags:
owner:team-name
: Team that owns the dashboardcomponent:component_name
: Name of the component this dashboard is abouttopic:topic
: The topic that this dashboard is about (observability, security, networking, kubernetes, ...)
Atlas introduced a dashboard linter to ensure some basic dashboard rules are followed (e.g. always have a datasource present) to help with the migration to Mimir. This will most likely be moved to CI later but until it is you can run it like this:
make lint-dashboards
If you need help with the tool or its output, please contact @team-atlas.
pip install jsonnet
git clone https://github.com/grafana/grafonnet-lib.git $GOPATH/src/github.com/grafana/grafonnet-lib
The dashboards located under dashboards
are the dashboards hosted on Giant Swarm's Grafana Cloud.
To build and upload the Grafana Cloud dashboards, here is what you need to do:
To make the dashboards, run:
./scripts/make-dashboards.sh
To upload the dashboards, run:
./scripts/upload-dashboards.sh
To upload a dashboard while editing, run:
./scripts/upload-dashboard.sh metrics.json
-
Alertmanager dashboard
- The Github Action
update-monitoring-mixins
runs automatically every month and it creates a PR to update the dashboard. - Run
make update-alertmanager-mixin
manually.
- The Github Action
-
Alloy dashboards
- Run
make update-alloy-mixin
manually.
- Run
-
Kubernetes dashboards
- Follow the instructions in giantswarm-kubernetes-mixin.
- Run
make update-kubernetes-mixin
manually.
-
Mimir dashboards
- Run
make update-mimir-mixin
manually.
- Run
Some dashboards are crafted by us (Giant Swarm) or forked from public dashboards.
Some dashboards come from mixins, with a few manual updates. They have a .*-mixin
tag, like kubernetes-mixin
or prometheus-mixin
.
Some dashboards are coming from https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/ like the prometheus-remote-write
dashboard
Beware when updating them: even though they come from mixins, they may require tweaks to work with our architecture.
The dashboards that don't require tweaks can be automatically updated from pre-generated mixins at https://monitoring.mixins.dev/ with the update-mixins-monitoring
github workflow.
In the future we should provide documentation and automation to perform clean updates of mixins-based dashboards.
Comes from prometheus-mixins
, with the addition of support for multiple clusters.
Comes from https://github.com/kedacore/keda/blob/main/config/grafana/keda-dashboard.json
We added multi-cluster support and tags (team owner)