← All open source projects

Prometheus

prometheus/prometheus

Prometheus is a monitoring system and time series database for application and infrastructure metrics.

Forks 10,514
Author prometheus
Language Go
License Apache-2.0
Synced 2026-06-20

What it is

Prometheus is a monitoring system and time series database. It collects numeric metrics from applications and infrastructure, stores them with timestamps, queries them with PromQL, and powers alerts.

It became a standard in cloud infrastructure because it fits services, containers, and dynamic targets well.

How the model works

In a typical setup, applications and exporters expose metrics over HTTP, and Prometheus regularly scrapes them. This pull model keeps control in the monitoring server.

Metrics are stored as time series with names and labels. Labels distinguish instances, methods, status codes, queues, and other dimensions, while PromQL computes over those series.

PromQL query example

This example asks a common metrics question: calculate request rate over the last five minutes and group it by HTTP status.

Language: Plain text
sum by (status) (
  rate(http_requests_total[5m])
)

What is inside

The repository contains the Prometheus server, storage, queries, alerting, service discovery, and UI pieces. Some ecosystem parts live elsewhere, but this repository is the core.

Prometheus works well with exporters, which translate metrics from databases, systems, brokers, and applications into a common format.

Strengths

The main strength is labeled metrics plus a powerful query language. Teams can move from “is the service alive?” to precise questions about latency, errors, resource saturation, and request groups.

The ecosystem is another strength: many common systems already have exporters, dashboards, and alerting practices.

Limits

Prometheus is not a log or trace store. It is excellent for numeric time series, while event data needs other tools.

Label cardinality must be controlled. Putting user IDs, order IDs, or request IDs into labels can quickly make the time series database expensive and hard to operate.

Who it fits

Prometheus fits teams that need metrics for applications, infrastructure, containers, and services with understandable alerts and queries.

It works best when the team agrees on metric names, labels, alerting rules, and ownership for noisy signals.