Prometheus implements a highly dimensional data model. Time series are identified by a metric name and a set of key-value pairs.
PromQL allows slicing and dicing of collected time series data in order to generate ad-hoc graphs, tables, and alerts.
Prometheus has multiple modes for visualizing data: a built-in expression browser, Grafana integration, and a console template language.
Each server is independent for reliability, relying only on local storage. Written in Go, all binaries are statically linked and easy to deploy.
Alerts are defined based on Prometheus's flexible PromQL and maintain dimensional information. An alertmanager handles notifications and silencing.
Client libraries allow easy instrumentation of services. Over ten languages are supported already and custom libraries are easy to implement.
«Even though Borgmon remains internal to Google, the idea of treating time-series data as a data source for generating alerts is now accessible to everyone through those open source tools like Prometheus [...]»
— Site Reliability Engineering: How Google Runs Production Systems (O'Reilly Media)