qonto / prometheus-rds-exporter

Prometheus exporter for AWS RDS
MIT License
69 stars 11 forks source link

Manage dashboards as code #133

Closed vmercierfr closed 7 months ago

vmercierfr commented 7 months ago

Objective

Manage dashboards as code

Why

Dashboards are currently manually edited via Grafana web UI and published on Grafana labs. This presents us with maintenance difficulties:

In this PR we are introducing dashboard as code, using Grafonnet. Which is a Jsonnet library maintainted by Grafana that allow generating all Grafana resources.

By defining dashboards as code, I took the opportunity to fix incorrect Prometheus queries and make sure each panel has a description.

As the release cycle on grafana.com doesn't provide a good experience, we're going to quickly offer to deploy dashboards via the Grafana operator. This will eventually enable us to deploy the export and dashboards in a single deployment.

On long term, Grafonnet librairies could be moved to an external repositories to have consistency with upcoming PostgreSQL dashboards of DMF.

How

Release plan

vmercierfr commented 7 months ago

sre

vmercierfr commented 7 months ago

cc @ortizjavier you could be interested by this dashboard as code feature

airclovis commented 7 months ago

Should we explain how to test the rendered dashboards locally using the docker-compose file in scripts/prometheus? I don't know if we can change the volumes to automatically load the generated dashboards in configs/grafana/public or if we need to manually import them as json from the UI.

vmercierfr commented 7 months ago

Should we explain how to test the rendered dashboards locally using the docker-compose file in scripts/prometheus? I don't know if we can change the volumes to automatically load the generated dashboards in configs/grafana/public or if we need to manually import them as json from the UI. https://github.com/qonto/prometheus-rds-exporter/pull/133#issuecomment-1993728950

The local development environment already start everything out of the box, including dashboards. And the grafana-dashboard-update.md explains how to update dashboards.

I updated the docs and configuration to be more explicit. @airclovis does it fit your expectations? Feel free to start the local development, test a dashboard and share improvements.

github-actions[bot] commented 7 months ago

Code Coverage

Package Line Rate Health
github.com/qonto/prometheus-rds-exporter/internal/app/cloudwatch 88%
github.com/qonto/prometheus-rds-exporter/internal/app/ec2 88%
github.com/qonto/prometheus-rds-exporter/internal/app/exporter 80%
github.com/qonto/prometheus-rds-exporter/internal/app/rds 80%
github.com/qonto/prometheus-rds-exporter/internal/app/servicequotas 51%
github.com/qonto/prometheus-rds-exporter/internal/app/unit 100%
Summary 81% (939 / 1157)

Minimum allowed line rate is 60%