Prometheus

Prometheus, a CNCF open-source project, is a service monitoring system founded in 2012 at CloudSound. It consists of monitoring, alerting, and a time-series database.

Prometheus' main features are:

  • a user-defined multi-dimensional data model
  • a powerful query language on multi-dimensional data (PromQL)
  • time-series data are fetched through HTTP pull
  • service discovery as well as static configuration
  • visualization of metrics and dashboarding

History

  • Nov 24, 2012: Prometheus was started at SoundCloud
  • Jan 26, 2015: Public release as an open source project
  • May 9, 2016: Joined Cloud Native Computing Foundation
  • Jul 18, 2016: Prometheus released 1.0.0
  • Aug 25, 2016: First Prometheus Conference at Berlin
  • Nov 7, 2017: Prometheus released 2.0.0

Checkpoints

Fuzzy

Prometheus supports periodic checkpointing, which is done every two hours by default. Checkpointing in Prometheus is done by compacting segments in a given WAL. Therefore when Prometheus recovers from failure, it can replay the WAL to restore its status before crash.

Concurrency Control

Not Supported

Similar to many time-series databases, Prometheus is log-structured and is not designed for ACID transactions.

Compression

Delta Encoding

Prometheus has an efficient data compression format due to the fact that data samples in the same series often change very little. One of the compression algorithms that Prometheus uses is similar to that of Facebook's Gorilla time-series database, called delta-of-delta compression algorithm. Prometheus also has other customized compression algorithms.

With regard to integration with remote storage engines, Prometheus uses a snappy-compressed protocol buffer encoding over HTTP for both read and write protocols.

Prometheus Logo
Website

https://prometheus.io

Source Code

https://github.com/prometheus/prometheus

Tech Docs

https://prometheus.io/docs/

Developer

SoundCloud

Country of Origin

DE

Start Year

2012

Project Type

Open Source

Written in

Go

Supported languages

Go

Licenses

Apache v2