[2] It records metrics in a time series database (allowing for high dimensionality) built using an HTTP pull model, with flexible queries and real-time alerting.
[6] Prometheus was developed at SoundCloud starting in 2012,[7] when the company discovered that its existing metrics and monitoring tools (using StatsD and Graphite) were insufficient for their needs.
The blog post announcing this stated that the tool was in use at many companies including DigitalOcean, Ericsson, CoreOS, Weaveworks, Red Hat, and Google.
Labels can include information on the data source (which server the data is coming from) and other application-specific breakdown information such as the HTTP status code (for metrics related to HTTP responses), query method (GET versus POST), endpoint, etc.
The ability to specify an arbitrary list of labels and to query based on these in real time is why Prometheus' data model is called multi-dimensional.
The time series are built through a pull model: the Prometheus server queries a list of data sources (sometimes called exporters) at a specific polling frequency.
PromQL is specifically adjusted to work in convention with a Time-Series Database and therefore provides time-related query functionalities.
Alertmanager can include logic to silence alerts and also to forward them to email, Slack, or notification services such as PagerDuty.
[22] Some other messaging systems like Microsoft Teams[23] could be configured using the Alertmanager Webhook Receiver as a mechanism for external integrations.
[34] Prometheus supports some monitoring and administration protocols to allow interoperability for transitioning: Graphite, StatsD, SNMP, JMX, and CollectD.
[36] Some products adopted the format: InfluxData's TICK suite,[37] InfluxDB, Google Cloud Platform,[38] and DataDog.