Prometheus needs to be able to collect detailed dimensional data from many systems and services at once. To this end, especially the following components have been highly optimized:
- Scraping and parsing of incoming metrics
- Writing to and reading from the time series database
- Evaluating PromQL expressions based on TSDB data.
As a rule of thumb, a single large Prometheus server can ingest up to 1 million time series samples per second and uses 1-2 bytes for the storage of each sample on disk. It can handle several million concurrently active (present in one scrape iteration of all targets) time series at once.