Components:
- Prometheus server — scrapes, stores, serves the query API
- Exporters — translate non-Prometheus formats into Prometheus metrics format (node_exporter for hosts, kube-state-metrics for Kubernetes, custom exporters for everything else)
- Alertmanager — handles alerts fired by Prometheus rules (deduplication, routing, silencing)
- Pushgateway — accepts pushed metrics from short-lived jobs (the exception to the pull model)
- Service discovery — Kubernetes, EC2, Consul, file-based, etc.
Storage: Prometheus stores time-series data locally by default. For long-term retention, use remote_write to send data to Thanos, Cortex, Mimir, or a managed service.