Grafana
The single pane over the lab - dashboards that pull from metrics, APIs, and JSON endpoints, including a hand-tuned Infinity data source.
What it is & why I use it
Grafana is the visualization and dashboarding layer for AutomationLab. It sits on top of the monitoring stack and turns raw signals into something an operator can actually read at a glance. I use it as the front door to the platform's health: cluster state, provisioning outcomes, self-healing activity, and service-level views all land here.
What makes it interesting is that not everything I want to chart comes from a time-series database. Some of it lives behind plain REST/JSON APIs, so I lean on the Infinity data source to pull JSON directly into panels - which is exactly where the sharp edges live.
How I use it in the lab
- Metrics dashboards. Cluster and host health from the metrics backend, with alerting thresholds visualized alongside the raw series.
- API-sourced panels. The Infinity data source pulls JSON from internal service APIs so operational data that never went into a TSDB is still charted.
- Provisioning & healing views. Panels that summarize pipeline runs and auto-heal outcomes, so the lab's automation is observable, not a black box.
- Access-controlled. Grafana is published behind the same zero-trust edge and SSO as every other app in the lab - no bare port on the internet.
Architecture
In action
Lessons learned & gotchas
- Prove it with live probes, not docs. The fastest way I found the real boundary was to fire small, deliberate probe queries at a known endpoint and watch what parsed and what came back empty. The behavior, not the documentation, is the spec.
- Shape the JSON at the source when you can. If the parser cannot compute a column, the cheaper fix is to have the upstream API return the field already shaped, rather than fighting the query language to derive it.
- Backend vs. browser parsing differ. Choosing the parser mode changes which expressions are legal. Pin the mode you are testing against so you are not debugging two engines at once.
Impact
Grafana is where the lab stops being a set of independent services and starts being a system I can watch. The Infinity work in particular meant I could bring non-time-series operational data - things that only exist as API responses - into the same view as metrics, without standing up a whole extra pipeline to store it first.
Code & further reading
Exported dashboard JSON is scrubbed of internal endpoints and identifiers before it is published.