
Who Prometheus is for#
SRE teams monitoring production services
Track request latency, error rate, saturation, and service health with PromQL queries and alerting rules that match each team's reliability targets.
Skip if:
Skip if the team needs logs, traces, and metrics in one managed product from day one.
Platform engineers running Kubernetes clusters
Use service discovery, labels, exporters, and dashboards to monitor changing workloads without manually registering every target.
Skip if:
Skip if the team cannot own metric naming, scrape configs, and retention settings.
Infrastructure teams reducing observability spend
Run metrics collection and alerting on owned infrastructure instead of paying usage-based SaaS rates for every host, service, and time series.
Skip if:
Skip if internal operations time costs more than the managed monitoring bill.
Developers instrumenting custom applications
Expose application metrics through Prometheus client libraries, then query and alert on application-specific behavior without waiting for a vendor integration.
Skip if:
Skip if the application already emits only vendor-specific telemetry and migration is not planned.
The problem it solves#
Managed monitoring platforms become expensive as services, labels, retention, and alert volume grow. Platform teams also lose direct control over scrape strategy, storage policy, and where operational telemetry lives. Prometheus gives those teams a self-hosted metrics system that runs close to their infrastructure and keeps collection, querying, and alerting under their control.
How it solves it#
Pull-based metric collection
Prometheus scrapes configured HTTP endpoints on a schedule, so teams control exactly which targets emit metrics and how often data is collected. Static configs and service discovery both work for changing infrastructure.
PromQL time-series queries
PromQL lets teams aggregate, filter, and calculate over metric labels for latency, error rate, saturation, and capacity questions. Queries can drive dashboards, alerts, and recording rules.
Dimensional data model
Metrics use names plus key-value labels, which makes it practical to slice data by service, instance, job, environment, or cluster without creating separate metric families for every view.
Rules and alert routing
Prometheus evaluates recording and alerting rules locally, then can route firing alerts through Alertmanager for grouping, deduplication, and notification workflows.
Exporter and client library ecosystem
Teams can instrument applications with client libraries or collect metrics from existing systems through exporters for services such as databases, hosts, proxies, and container platforms.
Strengths and trade-offs#
Strengths
- Control over telemetry ownershipPrometheus runs on your infrastructure, so teams define retention, access, scrape targets, and alert logic without sending core operational metrics through a proprietary telemetry plane.
- Reliable during infrastructure failureEach Prometheus server is autonomous and does not depend on distributed storage by default, which makes it useful during outages when other shared infrastructure may be degraded.
- Strong cloud-native fitThe pull model, service discovery support, labels, exporters, and PromQL all map well to dynamic service-oriented infrastructure and Kubernetes-style workloads.
- Apache 2.0 licenseThe Apache 2.0 license allows commercial use, modification, and redistribution, which fits teams that need an open monitoring stack with clear enterprise licensing terms.
Trade-offs
- -Metrics-first scopePrometheus focuses on numeric time-series metrics. Teams that need logs, traces, session replay, or all-in-one incident workflows usually pair it with other observability tools.
- -Cardinality needs disciplineUnbounded labels can create too many time series and pressure storage or query performance. Teams need metric naming and label rules before large production rollout.
- -Not for exact billing dataPrometheus favors reliable operational monitoring, not perfect per-request accounting. The official docs advise against using it when 100 percent accuracy is required for use cases such as billing.
Prometheus vs alternatives#
Prometheus vs Datadog
Prometheus and Datadog both help teams monitor infrastructure and applications, but they make opposite tradeoffs. Prometheus is an Apache 2.0 self-hosted metrics system: you own scrape configuration, storage, PromQL queries, and alert rules. Datadog is proprietary SaaS: it reduces setup work and combines metrics, logs, traces, dashboards, and managed integrations in one hosted product.
Choose Prometheus when data ownership, cost control, open standards, and custom metric design matter more than managed convenience. It fits SRE and platform teams that can operate their own monitoring stack and want telemetry close to their infrastructure. Choose Datadog when a team needs an all-in-one managed observability product with less internal operations work, especially if logs and traces must ship with metrics immediately.
Quick start#
# Docker quick start from the official README
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
# Local binary flow from the official getting-started guide
tar xvfz prometheus-*.tar.gz
cd prometheus-*
./prometheus --config.file=prometheus.ymlWhat it's built on#
- Languages
- GoTypeScript
- Frameworks
- React
FAQ#
Is Prometheus a Datadog replacement?
Prometheus can replace the metrics and alerting parts of Datadog for teams that want self-hosted control. It does not replace Datadog's full managed logs, traces, dashboards, and incident workflow package by itself.
Does Prometheus require Kubernetes?
No. Prometheus can monitor hosts, applications, and services outside Kubernetes. Kubernetes is a common fit because Prometheus handles dynamic targets and labeled time-series data well.
What is PromQL used for?
PromQL is the query language for selecting, filtering, aggregating, and calculating over Prometheus time-series data. Teams use it for dashboards, alerts, recording rules, and incident investigation.
Can Prometheus collect logs and traces?
Prometheus is built for numeric metrics, not log storage or distributed tracing. Teams commonly pair it with Grafana, Loki, Tempo, Jaeger, or another tool when they need those telemetry types.
What is the easiest way to try Prometheus?
The official README shows a Docker command that starts Prometheus on port 9090. The official getting-started guide also shows how to download a release, create a prometheus.yml file, and run the binary locally.
Similar open-source tools#
ClawTrace
Visualize agent execution trees and track token costs per step
Stakpak
Open source agent that automates app deployment and monitoring
OpenObserve
Self-hosted observability for logs, metrics, and traces
Coroot
Instant observability with no-code setup.
Grafana
Open source dashboards for metrics, logs, and traces
Netdata
Real-time infrastructure monitoring with zero configuration

