macrostack

Layer 3 · self-hosting reality check

What it actually takes to self-host Grafana + Prometheus

The docs say 2 GB. In practice you want 8 GB. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.

Usually reached from Datadog alternatives, where Grafana + Prometheus is one of the picks.

Wondering whether you need to at all? Is Datadog free? — what the free tier actually allows, and where the wall is.

RAM — documented minimum2 GB
RAM — what it really needs8 GB
CPU4 vCPU
Disk~1–2 bytes per sample after compression. 10k active series at 15s scrape is roughly 40 GB/year.
Monthly cost$30–60/mo for a stack monitoring 20–50 hosts, against several hundred on Datadog for the same estate
Setup timeA day for the stack, a week before the dashboards are genuinely useful
How you install itdocker compose for one node; kube-prometheus-stack via Helm on Kubernetes
Ongoing maintenanceReal. You own retention policy, cardinality, alert-rule hygiene and upgrades. This is the piece people underestimate: expect a few hours a month once it matters.
Where it stops scalingA single Prometheus handles a few million active series on good hardware. Past that you need Thanos or Mimir for long-term storage and horizontal reads, which is a genuine step up in operational complexity.

The thing that catches people out

Cardinality is the thing that kills Prometheus, not volume. One label containing user IDs, request IDs or full URLs turns 5,000 series into 5 million and the server dies. Set a label budget before you instrument anything, and check `topk(10, count by (__name__)({__name__=~".+"}))` weekly.

When not to self-host Grafana + Prometheus

You have no one who wants to own an observability stack. Datadog's real product is that somebody else is on call for the monitoring itself, and that is worth money when your team is small.

Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.

Other Layer 3 self-hosting guides

Common questions

How much RAM does Grafana + Prometheus actually need?
8 GB in practice. The documented minimum is 2 GB, which is the figure at which the process starts rather than the figure at which it works under real use. 4 vCPU alongside it.
What does self-hosting Grafana + Prometheus cost per month?
$30–60/mo for a stack monitoring 20–50 hosts, against several hundred on Datadog for the same estate This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for real. You own retention policy, cardinality, alert-rule hygiene and upgrades. This is the piece people underestimate: expect a few hours a month once it matters.
How long does it take to set up Grafana + Prometheus?
A day for the stack, a week before the dashboards are genuinely useful, via docker compose for one node; kube-prometheus-stack via Helm on Kubernetes.
When should I NOT self-host Grafana + Prometheus?
You have no one who wants to own an observability stack. Datadog's real product is that somebody else is on call for the monitoring itself, and that is worth money when your team is small.
What is the most common mistake when self-hosting Grafana + Prometheus?
Cardinality is the thing that kills Prometheus, not volume. One label containing user IDs, request IDs or full URLs turns 5,000 series into 5 million and the server dies. Set a label budget before you instrument anything, and check `topk(10, count by (__name__)({__name__=~".+"}))` weekly.
The Macrostack brief

New swaps, worth your inbox.

A short, occasional email when we add a high-intent alternative or ship a new head-to-head. No spam, no selling your address — unsubscribe in one click.