The scraper discovers and polls targets, the TSDB persists the collected metrics, and the HTTP/query layer lets you query and visualize stored metrics using
PromQL.
Prometheus is more than a single server — it’s an ecosystem of exporters, client libraries, discovery mechanisms, alerting integrations, and visualization tools that interact to provide full monitoring and alerting capabilities.

\/metrics“ endpoint. Exporters are lightweight processes that:
- Collect internal metrics from an application or system.
- Convert those metrics into Prometheus’ exposition format.
- Expose the metrics on an HTTP endpoint (typically
\/metrics“) so Prometheus can scrape them.

These exporters let you collect OS- and application-level metrics without changing the target’s code.

- Go, Java, Python, Ruby, Rust (official or widely used libraries).
- Third-party libraries for additional languages and frameworks.
\/metrics“ to be scraped by Prometheus.

- The Prometheus server initiates HTTP requests to targets’
\/metrics“ endpoints on a schedule. - Prometheus must therefore know which targets to monitor (via static config or service discovery).
- Pull models make it straightforward to detect failed scrapes (i.e., target is down) and to maintain a canonical list of targets.

- Graphite, OpenTSDB (typical push-capable setups).
- Logstash or custom metric collectors that accept pushed metrics/events.

- Clear detection of target availability: failed scrape vs intentionally removed target.
- Prevents uncontrolled inbound connections from newly online devices that could overwhelm a central server.
- Maintains a centralized source of truth for monitored targets (static config + service discovery).

- Push is appropriate for short-lived, ephemeral jobs (batch jobs, short-lived containers) that terminate before a scrape can occur.
- Prometheus itself is designed for numeric metrics; it’s not an event or log ingestion system.
Use the Pushgateway only when a job cannot be scraped directly (for example, very short-lived batch jobs). Prefer direct instrumentation or exporters for long-lived services.
The Pushgateway is intended for ephemeral or batch jobs only. It is not a general-purpose replacement for exporters or for instrumenting long-lived services.
- Kubernetes service discovery
- AWS/EC2 discovery
- Consul, Docker, Azure, GCE, and more
- Prometheus can evaluate alerting rules and generate alerts based on
PromQLexpressions. - However, Prometheus does not handle notification delivery (email, Slack, PagerDuty, etc.) itself.
- Deduplication and grouping of similar alerts.
- Routing alerts to appropriate receivers.
- Notification delivery via email, Slack, PagerDuty, webhooks, and other integrations.
- Query Prometheus directly using
PromQLvia the HTTP API or the built-in Prometheus UI. - For richer dashboards, use Grafana to visualize Prometheus metrics. (Grafana is commonly paired with Prometheus; Loki is used for log aggregation and can complement Prometheus-based monitoring.)
- Prometheus HTTP API / PromQL docs
- Grafana for dashboards and visualizations
Links and references
- Prometheus documentation
- PromQL basics
- Grafana – official site
- Courses referenced (examples):