We just finished a 6-month evaluation and migration of our core monitoring stack for a ~200-node Kubernetes environment. Team size is exactly 10 SREs/platform engineers. The short answer: we are not renewing Datadog, and have standardized on Prometheus/Victoriametrics with Grafana. The decision wasn't even close on a pure price/performance basis, but the devil is in the operational details.
Hereβs the breakdown of what we measured, what Datadog claimed, and what we actually experienced.
**Cost: The Obvious Divergence**
Datadogβs pricing model is a minefield for dynamic K8s environments. Their per-host, per-container, and APM metric billing compounds unpredictably.
* Vendor claim: "Predictable pricing with volume discounts."
* Reality: Our bill grew 40% month-over-month during a scaling event, not from traffic but from ephemeral pods. A single host with 50+ short-lived pods generated more cost than a steady-state host. We hit $45k/month before we slammed the brakes.
* Prometheus stack: Fixed cost. Our VictoriaMetrics cluster runs on 3 modest nodes. Total cloud infra cost: <$1.2k/month. The only variable is our time.
**Data Fidelity & Query Performance**
We ran synthetic benchmarks for query latency and cardinality explosion.
* **Test:** Scrape 1 million active series. Query `rate(container_cpu_usage_seconds_total[5m])` across 500 pods.
* **Datadog:** Query API averaged 1.8s response. Dashboard rendering added significant lag. High cardinality (pod tags) led to warnings about "query complexity."
* **Prometheus/VictoriaMetrics:** Same query, via Grafana, consistently 0
for: 5m
labels:
severity: critical
annotations:
summary: "Pod {{ $labels.namespace }}/{{ $labels.pod }} is restarting frequently"
```
**Conclusion for a 10-Person Team**
If your team's primary mandate is feature velocity and you have a large budget, Datadog reduces cognitive load. For a 10-person ops team focused on stability, cost control, and deep system introspection, the Prometheus ecosystem is superior. The initial investment in expertise pays for itself in 2-3 months of saved licensing fees. We now understand our systems better because we instrument them directly, rather than relying on a black-box dashboard.
Final note: We use Grafana Cloud for traces and logs, which bridges some of the UI convenience gap. Total spend for metrics, traces, logs, and alerting is still under 15% of the former Datadog bill.
Show me the benchmarks
I'm a principal engineer at a fintech startup, 15-person team running about 150 K8s nodes. We also run Prometheus/Thanos/Grafana in production, but we evaluated Datadog last year.
**Team Size Fit:** Datadog's sweet spot is large enterprises where the engineering time to build a monitoring stack costs more than the licensing. For a 10-person ops team that can handle some toil, Prometheus is a better fit.
**Real Net Cost:** Datadog started around $35k/month for us. Our in-house Prometheus/Thanos stack costs ~$2k/month in compute/storage, plus maybe 2-3 person-days a month of upkeep. The TCO difference was ~$400k/year.
**Query Language:** PromQL is a steeper learning curve, but it's a transferable skill. Datadog's query builder is easier for beginners, but we found it limiting for complex SRE use cases. For standard K8s monitoring, either works.
**Operational Overhead:** Datadog's agent is set-and-forget. Prometheus needs you to manage scraping configs, retention, and high availability yourself. We spend maybe 10-15 hours a quarter tuning our Thanos store layer.
I'd recommend the Prometheus stack for a team your size, unless you absolutely need the turn-key SaaS experience and have the budget. If you go Prometheus, use the VictoriaMetrics operator to cut the setup time in half.
measure twice, ship once
That cost example is eye opening, thanks for sharing. The scaling event bill spike from ephemeral pods is something I hadn't considered at all.
For a team of your size, how did the switch impact onboarding for newer SREs? Was it a big hurdle moving them from a vendor UI to managing the whole Prometheus stack?
Great question about onboarding. Honestly, that was my biggest worry too. The weird thing is, after the initial hump, it became a strength.
New SREs have to learn the actual system now, not just a vendor's abstraction of it. They learn PromQL, which is transferable, and they understand how metrics flow from scraping to storage to dashboards. It demystifies the whole stack. With Datadog, they'd just learn how to click around their UI, which is a dead-end skill if we ever changed vendors again.
The hurdle is real for the first month, though. We created a simple internal "monitoring bootcamp" - just a few docs and a sandbox cluster where they can break things. It eats maybe a week of a senior engineer's time to set up, but it pays off. Now, our juniors can actually troubleshoot a stuck Prometheus pod instead of just filing a ticket with Datadog support 😅
don't spam bro
That's a really good point about transferable skills. I hadn't considered it that way, but it's true. I've seen people get boxed in by a single vendor's workflow before.
How much of that "monitoring bootcamp" is about the core concepts vs the specific tooling? Like, is most of the time spent on the actual stack setup, or more on universal things like metric cardinality and alerting principles?
That 40% bill spike from ephemeral pods is the exact kind of surprise that keeps me up at night. We saw something similar, though on a smaller scale, with a batch processing workload.
One thing we did that helped with the "fixed cost" promise of the Prometheus stack was to set really aggressive metric retention and downsampling policies in VictoriaMetrics from day one. It forced the team to think about what data we actually need for alerts vs. long-term trends. With Datadog, the default is just "keep everything" which feels easy but obviously contributes to that cost unpredictability.
How did you handle the transition for existing alerting? Was it a full rewrite of all alerts into PromQL, or did you find a way to migrate some logic?
null
That 40% bill spike from scaling events hits home. We saw similar cost explosions tied to sidecar container churn, where a single host running a high-turnover job would get charged like ten normal ones. It felt punitive for actually using Kubernetes as designed.
Your point about the Prometheus stack being a fixed cost is exactly why we made the same call. We run our VictoriaMetrics on Spot instances with a clear, predictable compute budget. It's boring, and I love that.
I'm keen to hear more about your synthetic benchmark results, though, especially on query performance for high-cardinality data. We found a few trade-offs there.