Skip to content

Watchtower

Scheduled Oct 4, 2026

Metrics, logs and traces on OpenTelemetry, in your account.

Replaces

  • Datadog · Datadog, Inc. $15 per seat per month (Infrastructure — Pro (per host, annual billing)), about $72,000/yr at 400 seats
  • New Relic · New Relic, Inc. $349 per seat per month (Full Platform user — Pro edition (annual commitment)), about $1,675,200/yr at 400 seats

Rented, per year

$72,000

Datadog list price at 400 seats.

Owned, per year

$37,800

AWS infrastructure only. Azure is $41,760.

Build

12 weeks

2 engineers. To parity on the ten core features, including collector rollout across the estate, migration of existing dashboards and alert rules, tail-sampling policy design and a cardinality budget per team. This is an integration and operations build, not a database build — we deploy and tune proven open source rather than writing a time-series engine.

Difficulty

5/5

Among the hardest in Techtons. Read the parity table closely.

Reference organisation: 250 hosts, ~1,200 containers, 1.2M active metric series, 120 GB of logs per day, 8% trace sampling after tail-based selection, 30 days of hot log retention with 13 months of metrics, single region, prod + non-prod. 3-year Compute Savings Plan on EKS node groups / 3-year reservation on AKS. Ingest tier sized for the stated cardinality with a 3x replication factor. Object storage modelled at the tiering policy described above. Excludes any vendor support plan, excludes cross-AZ data transfer above 5 TB/month, and excludes the engineering time to operate the platform, which at this scale we estimate at 0.3 to 0.5 of an engineer. These figures are infrastructure only and exclude the build. For comparison, the same estate at Datadog's published list prices — Infrastructure Pro at $15 per host, APM at $31 per host, logs at $0.10 per ingested GB plus $1.70 per million indexed events — is roughly $12,600 a month.

What it is

Watchtower is a metrics, logs and traces platform built on OpenTelemetry ingest with a Prometheus-compatible metric store, a log store with object-storage chunks, and a trace backend, all running in your account behind your own SSO. It is honest about what it is: an assembly of proven open source — the OpenTelemetry Collector, a Mimir-shaped metric tier, a Loki-shaped log tier, a Tempo-shaped trace tier and Grafana — deployed, tuned, secured and operated as one system, with the dashboards, alert rules and pipelines as code in your repo. We are not writing a time-series database. We are removing a per-host, per-GB, per-user meter from between you and your own telemetry.

Why this one stops making sense

  • The reference org below — 250 hosts, APM on all of them, 120 GB of logs a day — costs about $12,600 a month at Datadog's published list prices. That is roughly $151,000 a year, and it is the bill before anyone turns on a new integration.
  • Every pricing axis punishes visibility. Adding a host costs money. Adding a label costs money through custom metrics. Retaining logs longer costs money. So teams instrument less, and the tool you bought to see more makes you see less.
  • New Relic's $349 per Full Platform user per month means the people who most need to look at production — the on-call engineers you rotate through — are the most expensive thing on the invoice.
  • Telemetry is the highest-volume data your business produces and it is subject to data residency rules like everything else. Shipping all of it to a US vendor is a decision worth making deliberately rather than by default.
  • OpenTelemetry has made the instrumentation layer portable. Once your applications emit OTLP, the backend is a deployment choice, not a rewrite.

What ships

  • OpenTelemetry Collector fleet as the single ingest path for metrics, logs and traces
  • Prometheus-compatible metric store with remote write, PromQL, and object-storage long-term blocks
  • Log store with label-based indexing and chunks in object storage, queryable by LogQL
  • Distributed tracing with tail-based sampling decided at the collector, not at the SDK
  • Exemplars linking a metric spike to the specific traces behind it
  • Alert rules and recording rules as version-controlled files, with a staging evaluation before merge
  • Dashboards as code, provisioned from git, with drift detection against console edits
  • Per-team tenancy with enforced label scoping and per-tenant ingest and query limits
  • Cardinality reporting: which labels, which services and which teams are producing the series growth
  • Synthetic checks from your own regions, and a status endpoint your service desk can poll

Data model

TenantServiceHostMetricSeriesLogStreamTraceSpanAlertRuleRecordingRuleDashboardSilenceNotificationSyntheticCheckAuditEvent

Stack

frontend
Grafana, provisioned from git, with Next.js for the tenancy and ingest-budget console
backend
OpenTelemetry Collector (gateway mode) in front of a Mimir-shaped metric tier, Loki-shaped log tier and Tempo-shaped trace tier
database
PostgreSQL 16 for tenancy, rule metadata, silences and audit; telemetry itself lives in object storage
cache
Memcached for chunk, index and query-result caching across all three tiers
queue
Kafka-compatible stream in front of the ingesters, so a backend restart does not drop telemetry
auth
OIDC against the customer IdP; per-tenant scoping enforced at the query gateway, not in Grafana
search
LogQL over label indexes with a bloom-filter accelerator for high-selectivity terms
ai
Optional: incident timeline summarisation and alert-storm grouping through a pluggable LLM gateway

Parity, honestly

What we match, and what we do not.

The rows marked No are the important ones. If one of them is the reason you bought Datadog, keep buying it — and we will tell you that on the first call rather than the fifth month.

CapabilityDatadogOursNote
Metrics ingest, PromQL query and alertingYesYes
Log ingest, search and live tailYesYes
Distributed tracing with service mapsYesYes
Correlation across metrics, logs and tracesYesYesThrough exemplars and shared resource attributes, which is how Datadog does it too.
Tail-based samplingYesYesDecided in the collector, so you keep the slow and errored traces and drop the boring ones before they cost storage.
Unmetered retention decisionsNoYesRetention is a lifecycle policy on your own bucket, not a pricing tier.
Free unlimited viewersNoYesNew Relic charges $349 per Full Platform user. Watchtower charges nothing to look at a dashboard.
900+ vendor-maintained integrationsYesNoDatadog's integration catalogue is its real moat. Watchtower covers what OpenTelemetry receivers and Prometheus exporters cover, which is broad but not equivalent, and each gap is a collector configuration someone has to write and maintain.
Operating the platform at very large scaleYesNoRead this one carefully. Below roughly 500 hosts and a few million active series, Watchtower is a system a competent platform team runs alongside their other work. Above that, the ingest tier, compaction and query performance become a specialism, and at genuinely large scale — tens of thousands of hosts, terabytes of logs a day — you are staffing an observability team. Datadog's price at that scale is enormous and it is also, sometimes, correct. This is a partial replacement and the boundary is real.
ML anomaly detection and automated root-cause surfacingYesNoDatadog Watchdog and New Relic's applied intelligence are trained on cross-customer telemetry at a scale we do not have. Watchtower ships statistical baselining and outlier alerts, which covers the common cases and is not the same thing.
Session replay and real user monitoringYesPartialWatchtower does RUM through OpenTelemetry browser instrumentation. Session replay — the video-like reconstruction — is not in scope and is a separate build.
Global synthetic monitoring points of presenceYesPartialWe run synthetics from the cloud regions you already use. Datadog runs them from dozens of cities and hundreds of network vantage points. If you sell to consumers in twenty countries, that difference matters.
Cloud SIEM and security monitoringYesNoOut of scope. Watchtower is observability. Security detection is a different product with different retention and chain-of-custody requirements.
24/7 vendor support during your incidentYesPartialCovered under a Conseiltek Run agreement. Once handed over, when the observability platform is down during an incident, it is your team's problem — which is exactly the argument for keeping it simple and boring.

Reference architecture

Built twice, on purpose.

Every application in Techtons ships with a production architecture for AWS and one for Azure, using the same diagram grammar so you can read them side by side. Your cloud, your account, your bill.

Amazon Web Services

Compute
EKS for the ingest, store and query tiers; ECS Fargate for the console and synthetics
Data
PostgreSQL on Aurora Serverless v2 for metadata; Amazon MSK Serverless as the ingest write-ahead log
Storage and edge
S3 for metric blocks, log chunks and trace blocks, with lifecycle rules per signal type
Identity
Cognito federated to the customer IdP; per-tenant tokens issued to collectors
Observability
Watchtower monitors itself into a separate small deployment, plus CloudWatch for the floor
Infrastructure as code
Terraform for infrastructure, Helm and Argo CD for the workloads, both in the customer's repo

Services

EKSECS FargateS3MSK ServerlessAurora Serverless v2ElastiCache MemcachedNLBCognitoKMSSecrets ManagerCloudWatch

The decision worth arguing about

The two costs that decide whether a self-hosted observability platform is cheap or a disaster are cardinality and tiering, and they behave in opposite ways to what people expect. Cardinality is not a storage problem. A compressed Prometheus sample is somewhere around one and a half to two bytes, so a million active series scraped every fifteen seconds produces roughly ten gigabytes a day of blocks — on S3 that is a rounding error. Cardinality is a memory problem: the ingest tier holds every active series' head chunk in RAM at roughly eight kilobytes a series, so a million series is about eight gigabytes per ingester replica, and you run three replicas for the replication factor. Double your label cardinality and you double the most expensive compute in the system while the storage bill barely moves. That is why Watchtower enforces per-tenant active-series limits at the distributor and reports series growth by team, and why the collector drops high-cardinality labels — pod name, request id, full URL path — before they ever reach an ingester. Tiering is where the second trap sits. It is tempting to lifecycle log chunks aggressively into Glacier Instant Retrieval, and for compliance retention beyond ninety days we do exactly that. But retrieval from Glacier tiers carries a per-gigabyte fetch charge, and the moment an engineer runs a four-month LogQL query during an incident they scan across the boundary and generate a bill nobody budgeted for. So the policy we deploy is deliberately conservative: thirty days in Standard, sixty more in Standard-Infrequent Access, and only then a Glacier tier that the query gateway refuses to read from without an explicit flag and a warning showing the estimated fetch volume. The other S3 detail worth naming is request cost rather than storage cost — a wide query fans out across thousands of small blocks and generates a lot of GET requests, which is why the memcached chunk cache is not optional and why the compactor's block sizes are tuned rather than left at defaults.

Microsoft Azure

Compute
AKS for the ingest, store and query tiers; Container Apps for the console and synthetics
Data
PostgreSQL Flexible Server for metadata; Event Hubs (Kafka surface) as the ingest write-ahead log
Storage and edge
Azure Blob Storage for metric blocks, log chunks and trace blocks
Identity
Microsoft Entra ID; workload identity for the store tiers rather than storage keys
Observability
A second small Watchtower, plus Azure Monitor for the platform floor
Infrastructure as code
Bicep for infrastructure, Helm and Argo CD for workloads

Services

AKSContainer AppsBlob StorageEvent HubsPostgreSQL Flexible ServerAzure Cache for RedisStandard Load BalancerEntra IDKey VaultLog Analytics

The decision worth arguing about

Azure's blob tiers look like S3's but they bill differently in a way that quietly breaks the obvious lifecycle policy, and this is the Azure-specific decision worth understanding. Cool, Cold and Archive tiers each carry an early-deletion penalty: move a blob to Cool and delete it before thirty days and you are billed as if it had stayed thirty days; Cold is ninety days, Archive is one hundred and eighty. Observability backends delete constantly. The compactor's whole job is to merge small blocks into large ones and delete the originals, and log chunks get rewritten by retention enforcement. Put a naive lifecycle rule on the bucket that tiers everything after seven days and the compactor will spend the next month generating early-deletion charges on blocks it created and destroyed inside a fortnight. So on Azure we keep the entire compaction window — all levels, not just the newest — in Hot, and only apply tiering to blocks that the compactor has finished with and marked terminal, which the deployment tracks explicitly rather than inferring from age. The second Azure divergence is Event Hubs versus MSK: Event Hubs' Kafka surface is good enough for the ingest write-ahead log and cheaper to operate than a managed Kafka cluster, but it caps message size at one megabyte on the standard tier, so the collector's batch sizes are tuned down accordingly, which trades a little throughput efficiency for not having to run Kafka. And the reason we run this at all rather than pointing everything at Azure Monitor: Log Analytics bills per gigabyte ingested, which is the same meter shape as Datadog's, just with a Microsoft logo on it.

Sources

Every price on this page, with the page we read it from and the date we read it.

ProductPlanList priceCheckedSource
DatadogInfrastructure — Pro (per host, annual billing)$15 / seat/month2026-09-05www.datadoghq.com/pricing/

The unit here is a host, not a person. Datadog lists Infrastructure Pro at $15 per host per month billed annually ($18 on-demand), Enterprise at $23. APM is a separate $31 per host per month with Infrastructure attached. Log Management is $0.10 per ingested GB plus $1.70 per million indexed log events per month at standard 15-day retention.

New RelicFull Platform user — Pro edition (annual commitment)$349 / seat/month2026-09-05newrelic.com/pricing

New Relic bills on two axes. Full Platform users are $349 per user per month on an annual commitment ($418.80 pay-as-you-go); Core users are $49. Data is separate: 100 GB free per month, then $0.40 per GB on Original and $0.60 per GB on Data Plus. Note that New Relic bills people where Datadog bills hosts: runCost.billableSeats on this entry is the 250-host population Datadog charges for, so it is not the right denominator for this line.

Should you still be paying for Datadog?

Two weeks, fixed price. We audit what you actually use, map it against Watchtower, cost the replacement on your own AWS or Azure account, and give you a delivery plan. If the honest answer is to keep the licence, that is what the report will say.