Prometheus and Grafana: self-hosted monitoring and dashboards
What Prometheus and Grafana are, what they are known for, and why self-hosting your own metrics and dashboards beats a per-host SaaS bill.
Prometheus + Grafana is the standard open-source monitoring stack: Prometheus collects and stores metrics, Grafana draws dashboards over them. Together they are the self-hosted answer to Datadog, New Relic or CloudWatch.
What they are
Prometheus — a time-series database and scraper. It reaches out to "exporters" on your servers on a schedule, pulls numeric metrics (CPU, RAM, disk, request rates, queue depth) and stores them with timestamps. It also evaluates alert rules and fires alerts to Alertmanager.
Grafana — a visualisation layer. It queries Prometheus (and many other sources) and renders graphs, gauges and dashboards, with alerting and sharing.
They are separate tools that are almost always run together, plus node_exporter (a small agent on each server that exposes its metrics) and often Alertmanager (routes alerts to email, Slack, etc.).
What they do
Collect metrics from every server and service you point them at.
Store them as a searchable time series, so you can ask "what was CPU at 3 a.m. last Tuesday?"
Visualise them as dashboards you design or import (thousands of community dashboards exist).
Alert when a metric crosses a threshold — with rules, silences and routing.
What they are known for
Prometheus — being the cloud-native monitoring standard; its pull-based model and
PromQLquery language are ubiquitous. Known for reliability and for scrape-based collection that fits dynamic fleets.Grafana — being the dashboard tool, famous for beautiful, flexible visualisations and for connecting to almost any data source.
Why use it
No per-host bill. SaaS monitoring charges per host/metric/seat; self-hosted Prometheus+Grafana is a flat VPS cost, whether you monitor 3 servers or 30.
Your metrics stay yours — useful for compliance and for avoiding egress costs.
Full control over retention and alerting — keep a year of data if you want; write exactly the alert rules you need.
One pane of glass — the same stack monitors your servers, databases, web apps and containers.
Where and how
A 2–4 vCPU, 4 GB VPS is a good start for a small fleet; give Prometheus storage sized to your retention window (metrics grow steadily). Deploy Prometheus, Grafana, node_exporter (on each monitored host) and Alertmanager — usually with Docker Compose or the Prometheus Operator. Put Grafana behind TLS and strong auth; keep Prometheus internal.
If you would rather not run it yourself, our Server Monitoring service covers checks, graphs and alerting, and Monitoring alerts that matter explains how to design alerts that do not cry wolf.