I LOVE SOUNDCLOUD!
From time to time I read their tech blog…
Today I’v found Prometheus! Hooray SoundCloud! Hooray!
An open-source service monitoring system and time series database.
Prometheus is developed in the open and has a growing community outside of SoundCloud.
Prometheus implements a highly dimensional data model. Time series are identified by a metric name and a set of key-value pairs.
A flexible query language 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, a GUI-based dashboard builder, and a console template language.
Prometheus stores time series in memory and on local disk in an efficient custom format. Scaling is achieved by functional sharding and federation.
Each server is independent for reliability, relying only on local storage. Written in Go, all binaries are statically linked and easy to deploy.
Client libraries allow easy instrumentation of services. Currently, Go, Java, and Ruby are supported. Custom libraries are easy to implement.
Alerts are defined based on Prometheus’s flexible query language and maintain dimensional information. An alert manager handles notifications and silencing.
Existing exporters allow bridging of third-party data into Prometheus. Examples: system statistics, as well as Docker, HAProxy, StatsD, and JMX metrics.