What is the visualization layer?

The visualization layer is the “single pane of glass” of an observability stack: the place where you actually look at the metrics, build dashboards, run ad-hoc queries, drill down into incidents.

It sits on top of the storage (VictoriaMetrics in our case) and queries it via PromQL. It doesn’t store data itself, doesn’t scrape anything — its only state is the configuration: dashboards, datasources, users, alerts.

In our stack, this layer is Grafana, the de-facto standard for metrics visualization.

Why Grafana

A few reasons it became the standard:

  • Multi-datasource: speaks Prometheus, VictoriaMetrics, Loki, Elasticsearch, InfluxDB, ClickHouse, PostgreSQL, MySQL, CloudWatch, MQTT, Tempo, Jaeger, and ~70 others. The same dashboard can mix data from multiple sources in different panels.
  • Open-source core (AGPL), no SaaS lock-in. Self-host forever.
  • Massive dashboard ecosystem: grafana.com/dashboards has thousands of community-maintained, ready-to-import dashboards. Often you don’t need to write anything — just import.
  • PromQL native, so the queries you write here transfer 1:1 to a Prometheus shop.

In this folder

  • Grafana — Docker container on the VPS, exposed via nginx reverse-proxy at farnetiandrea.it/metrics.
  • Dashboards — import Node Exporter Full and walk through your first PromQL queries.