ExplainerIntermediateMonitoring

What Is Prometheus? Open-Source Monitoring and Alerting Explained

Prometheus is an open-source monitoring and alerting toolkit designed for reliability and scalability. It collects time-series metrics via a pull model, stores them in a custom TSDB, and evaluates alerting rules using PromQL. Part of the CNCF graduated project ecosystem alongside Kubernetes.

Emanuel De AlmeidaJuly 20, 20267 min read

Level

Intermediate

Reading time

7 min

Concept

Prometheus

Last reviewed

July 19, 2026

Prometheus is an open-source monitoring and alerting toolkit that has become the standard for cloud-native observability. Per CNCF (Cloud Native Computing Foundation), Prometheus is a graduated project alongside Kubernetes. It collects time-series metrics from targets via a pull model (HTTP scraping), stores them in a custom time-series database, and evaluates alerting rules using its query language, PromQL.

Key takeaways

  • Prometheus is a CNCF graduated project for metrics monitoring and alerting.
  • Pull-based: scrapes /metrics HTTP endpoints on a schedule.
  • PromQL: powerful query language for time-series analysis and alerting rules.
  • Kubernetes-native with built-in service discovery.
  • Pair with Grafana for dashboards and Alertmanager for notifications.

Quick explanation

In simple terms

Prometheus is an open-source tool that monitors computer systems by collecting performance data (CPU, memory, request rates) and sending alerts when something goes wrong.

Technical definition

Prometheus is a CNCF graduated monitoring system that implements pull-based metric collection via HTTP, stores time-series data in a custom TSDB with a multi-dimensional data model (metric name + labels), queries via PromQL, and fires alerts through Alertmanager.

Analogy

Prometheus is like a health inspector who visits restaurants (services) on a regular schedule, checks vital signs (metrics), writes them in a logbook (TSDB), and calls the health department (Alertmanager) if something is wrong.

Definition

Prometheus is an open-source monitoring and alerting toolkit that collects time-series metrics via HTTP pull, stores them in a custom TSDB, queries them with PromQL, and fires alerts through Alertmanager. It's a CNCF graduated project.

Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud in 2012 and now a CNCF graduated project. Per the official documentation, Prometheus collects metrics from configured targets at given intervals, evaluates rule expressions, displays results, and triggers alerts when conditions are met.

Prometheus uses a pull model: it scrapes HTTP endpoints (/metrics) exposed by applications and exporters. Metrics are stored as time series, identified by metric name and key-value labels. PromQL provides a query language for selecting, aggregating, and computing rates on this data. Alertmanager handles alert routing, deduplication, and notification.

Why it matters

Prometheus is the de facto standard for monitoring in Kubernetes and cloud-native environments. Per CNCF surveys, it's the most widely adopted monitoring tool in the cloud-native ecosystem.

Core concepts

Exporter

A component that exposes metrics in Prometheus format on an HTTP endpoint.

Exporters bridge between existing systems and Prometheus. They collect metrics from the target system and expose them in a text format that Prometheus can scrape. Hundreds of exporters exist for databases (MySQL, PostgreSQL), web servers (nginx, Apache), message queues (RabbitMQ, Kafka), and hardware.

Example

Node Exporter exposes Linux system metrics (CPU, memory, disk, network) on :9100/metrics.

Time series (metric + labels)

A unique combination of metric name and label set that represents a single measurable value over time.

Every metric in Prometheus is a time series identified by a metric name and key-value labels. Labels provide dimensionality: the same metric name can have different series for different instances, methods, or status codes.

Example

http_requests_total{method="GET", handler="/api/v1/query", status="200"} 1234

How it works

1

Target discovery

Prometheus discovers targets via static configuration or dynamic service discovery (Kubernetes, Consul, DNS). Each target exposes a /metrics HTTP endpoint.

Service discovery → Targets

2

Metric scraping (pull)

Prometheus sends HTTP GET requests to each target's /metrics endpoint on a configurable interval (default 15 seconds). Targets return metrics in Prometheus text format.

Prometheus → HTTP GET → /metrics

3

Storage in TSDB

Scraped metrics are stored in Prometheus's built-in time-series database (TSDB) with configurable retention.

TSDB storage

4

Alerting via PromQL rules

Prometheus evaluates alerting rules (written in PromQL) against stored metrics. Fired alerts are sent to Alertmanager for deduplication, grouping, and routing to Slack, PagerDuty, email, or webhooks.

PromQL rules → Alertmanager

Benefits

Pull-based metric collection

Prometheus scrapes metrics from targets via HTTP. No agents push data; Prometheus pulls on a schedule. This simplifies target configuration and NAT traversal.

PromQL query language

PromQL is a powerful query language for selecting, aggregating, and computing rates on time-series data. It drives both dashboards and alerting rules.

Cloud-native, Kubernetes-native

Per CNCF, Prometheus is a graduated project with wide adoption. It integrates natively with Kubernetes for auto-discovery of pods and services.

Limitations

Metrics only, not logs or traces

Medium

Prometheus is designed for metrics (numerical time-series data). It doesn't handle logs or traces. Use Loki for logs and Jaeger/Tempo for traces.

Workaround — Deploy the full observability stack: Prometheus (metrics) + Loki (logs) + Tempo (traces) + Grafana (visualization).

Limited long-term storage by default

Medium

By default, Prometheus stores data locally with limited retention. It's not designed for multi-year metric storage.

Workaround — Use Thanos or Cortex for long-term storage with object storage backends (S3, GCS, Azure Blob).

Examples

Kubernetes cluster monitoring

A DevOps team deploys Prometheus with Grafana to monitor a Kubernetes cluster running 50 microservices.

Prometheus auto-discovers Kubernetes pods with specific annotations, scrapes their /metrics endpoints, and stores the metrics. Grafana dashboards visualize CPU, memory, request rates, and error rates. Alertmanager sends Slack or PagerDuty notifications when thresholds are exceeded.

OutcomeReal-time visibility into application and infrastructure health with automated alerting.

Comparisons

Prometheus vs. Zabbix

Myths, corrected

Myth

Prometheus replaces all monitoring tools

Correction

Prometheus excels at metrics collection and alerting in cloud-native environments. It doesn't handle logs, traces, SNMP polling, or synthetic monitoring. A complete observability stack combines Prometheus with complementary tools.

Why it happens: Prometheus's popularity in the Kubernetes ecosystem creates the impression it's a complete monitoring solution.

Practical implications

For admins

Deploy kube-prometheus-stack (Helm chart) for a complete Kubernetes monitoring setup: Prometheus, Grafana, Alertmanager, and default dashboards.

For security

Monitor security-relevant metrics: authentication failure rates, certificate expiration, and network connection anomalies.

Related terms

PromQL

Prometheus's query language for selecting and computing on time-series data.

Grafana

An open-source visualization platform commonly paired with Prometheus.

Alertmanager

A Prometheus component that handles alert deduplication, grouping, and routing.

Frequently asked questions

How does Prometheus collect metrics?

Prometheus scrapes (pulls) metrics from targets via HTTP endpoints. This is different from push-based systems (like Graphite or StatsD) where applications push metrics to a collector.

What is PromQL?

PromQL (Prometheus Query Language) is used to query time-series data. Example: rate(http_requests_total[5m]) returns the per-second rate of HTTP requests over the last 5 minutes.

Does Prometheus support long-term storage?

Prometheus stores metrics locally with configurable retention (default 15 days). For long-term storage, use Thanos or Cortex, which extend Prometheus with object storage backends (S3, GCS).

Can Prometheus collect logs?

Prometheus handles metrics (time-series numerical data). For logs, use Loki (from Grafana Labs). For traces, use Jaeger or Tempo. Together, they form the observability stack: metrics, logs, and traces.

Conclusion

Prometheus is the standard monitoring toolkit for cloud-native and Kubernetes environments. It pulls metrics from exporters via HTTP, stores them in a custom TSDB, evaluates alerting rules using PromQL, and fires alerts through Alertmanager.

Per CNCF, Prometheus is a graduated project alongside Kubernetes. For visualization, pair with Grafana. For long-term storage, use Thanos or Cortex.

Main takeaway

Prometheus pulls metrics via HTTP, stores them as time series, and alerts via PromQL rules. Pair with Grafana for visualization.

Reader reviews

Rate this articleBe the first to rate
No written reviews yetRate the article above, or be the first to share your experience.

Related articles