The central component of the system.
It scrapes metrics from configured targets at regular intervals, stores them as time-series data, and allows querying through PromQL.
It also evaluates alerting rules.
Targets
Applications, services, or exporters that expose metrics over HTTP (usually at /metrics).
Prometheus periodically pulls data from these endpoints.
Receives alerts fired by Prometheus rule evaluations.
It manages:
Alert grouping
Deduplication
Routing (email, Slack, PagerDuty, etc.)
Silencing and inhibition
It ensures alerts are delivered properly without noise.
Client Libraries
Libraries used to instrument your application code.
They allow you to define and expose custom metrics such as counters, gauges, histograms, and summaries.
Available for many languages: Go, Java, Python, Node.js, and more.
For a deeper look at how these components fit together, see the official Prometheus Overview.