World Congress 2023 • Oct 6, 2023

Monitoring as Code - Managing your dashboards at scale

Gabriel Labachelerie

Manual dashboard configuration fails at scale. Learn how to programmatically build, test, and deploy Grafana dashboards across massive microservices architectures using Jsonnet and CI/CD pipelines.

Pause
Mute Enter Fullscreen
#1 about 3 min

Managing monitoring and observability at a large scale

Handling massive transaction volumes requires immediate and reliable observability tools.

#2 about 2 min

Architecting the availability stack with Prometheus and Grafana

Combining Prometheus instances via Thanos federation simplifies dashboard querying in Grafana.

#3 about 2 min

Transitioning from manual to automated dashboard creation

Industrializing dashboard creation ensures testability, quality, and faster deployment cycles.

#4 about 3 min

Leveraging Jsonnet for generating dashboard configurations

Using Jsonnet and Grafana's standard libraries allows engineers to define JSON-based dashboards as code.

#5 about 3 min

Generating an initial baseline dashboard with code

Compiling source files through a custom CLI tool outputs a foundational dashboard structure.

#6 about 4 min

Constructing panel templates with dynamic PromQL parameters

Declaring variables within query templates enables context-aware metric filtering across different dashboards.

#7 about 2 min

Instantiating configured panels into dashboard layouts

Calling a predefined template within the dashboard code automatically maps filters and generates queries.

#8 about 3 min

Extending metrics and visualizing error code variations

Adding new instances of a template allows for side-by-side comparison of success and failure metrics.

#9 about 2 min

Injecting dynamic template variables for dashboard interactivity

Defining query variables in code creates dropdown selectors that automatically update underlying PromQL expressions.

#10 about 2 min

Scaling production dashboards through loop iterations

Iterating over configuration lists programmatically generates thousands of dedicated rows or isolated dashboards.

#11 about 2 min

Implementing unit tests for dashboard structural integrity

Treating dashboards as code permits automated validation of panel counts and layout structures prior to deployment.

#12 about 2 min

Validating PromQL expressions using simulated data sets

Integrating promtool ensures generated queries behave correctly against mocked time series data.

#13 about 1 min

Automating deployments with Jenkins continuous integration pipelines

Reviewing JSON diffs on pull requests enables teams to understand dashboard modifications before merging.

#14 about 3 min

Leveraging auxiliary libraries for formatting and linking

Utilizing ecosystem tooling handles auto-formatting, linting, and maintaining context-aware links between panels.

#15 about 3 min

Enhancing developer experience with localized command line tools

Providing a single Go-based CLI ensures consistent testing and deployment workflows across local workstations and CI servers.

#16 about 3 min

Addressing practical deployment questions and incident resolution

Pre-computing customer-specific dashboards reduces time to resolution during critical production incidents.

Matching moments

10:40 min

Visualizing Prometheus open metrics using custom Grafana dashboards

Stijn Polfliet · LIVE

4:47 min

Automating frontend performance metrics with Google Lighthouse

Miki Lombardi · JS Congress

3:43 min

Limitations of infrastructure and dashboards as code approaches

Robert Lehmann Robert Lehmann · World Congress 2025

2:01 min

Shifting from reactive observability to runtime intelligence models

May Walter May Walter · World Congress 2026 Europe

55 sec

Understanding observability through a practical dashboard analogy

Jemiah Sius Jemiah Sius · World Congress 2023

28:32 min

Configuring Prometheus remote write and connecting Grafana dashboards

Liam Hurrell · LIVE