prometheus v2.48 releases: monitoring system and time series database
Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true.
Prometheus’ main distinguishing features as compared to other monitoring systems are:
- a multi-dimensional data model (timeseries defined by metric name and set of key/value dimensions)
- a flexible query language to leverage this dimensionality
- no dependency on distributed storage; single server nodes are autonomous
- timeseries collection happens via a pull model over HTTP
- pushing timeseries is supported via an intermediary gateway
- targets are discovered via service discovery or static configuration
- multiple modes of graphing and dashboarding support
- support for hierarchical and horizontal federation
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.
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.
Alerts are defined based on Prometheus’s flexible PromQL and maintain dimensional information. An alertmanager handles notifications and silencing.
Many client libraries
Client libraries allow easy instrumentation of services. Over ten languages are supported already and custom libraries are easy to implement.
Existing exporters allow the bridging of third-party data into Prometheus. Examples: system statistics, as well as Docker, HAProxy, StatsD, and JMX metrics.
- [CHANGE] Remote-write: respect Retry-After header on 5xx errors. #12677
- [FEATURE] Alerting: Add AWS SigV4 authentication support for Alertmanager endpoints. #12774
- [FEATURE] Promtool: Add support for histograms in the TSDB dump command. #12775
- [FEATURE] PromQL: Add warnings (and annotations) to PromQL query results. #12152 #12982 #12988 #13012
- [FEATURE] Remote-write: Add Azure AD OAuth authentication support for remote write requests. #12572
- [ENHANCEMENT] Remote-write: Add a header to count retried remote write requests. #12729
- [ENHANCEMENT] TSDB: Improve query performance by re-using iterator when moving between series. #12757
- [ENHANCEMENT] UI: Move /targets page discovered labels to expandable section #12824
- [ENHANCEMENT] TSDB: Optimize WBL loading by not sending empty buffers over channel. #12808
- [ENHANCEMENT] TSDB: Reply WBL mmap markers concurrently. #12801
- [ENHANCEMENT] Promtool: Add support for specifying series matchers in the TSDB analyze command. #12842
- [ENHANCEMENT] PromQL: Prevent Prometheus from overallocating memory on subquery with large amount of steps. #12734
- [ENHANCEMENT] PromQL: Add warning when monotonicity is forced in the input to histogram_quantile. #12931
- [ENHANCEMENT] Scraping: Optimize sample appending by reducing garbage. #12939
- [ENHANCEMENT] Storage: Reduce memory allocations in queries that merge series sets. #12938
- [ENHANCEMENT] UI: Show group interval in rules display. #12943
- [ENHANCEMENT] Scraping: Save memory when scraping by delaying creation of buffer. #12953
- [ENHANCEMENT] Agent: Allow ingestion of out-of-order samples. #12897
- [ENHANCEMENT] Promtool: Improve support for native histograms in TSDB analyze command. #12869
- [ENHANCEMENT] Scraping: Add configuration option for tracking staleness of scraped timestamps. #13060
- [BUGFIX] SD: Ensure that discovery managers are properly canceled. #10569
- [BUGFIX] TSDB: Fix PostingsForMatchers race with creating new series. #12558
- [BUGFIX] TSDB: Fix handling of explicit counter reset header in histograms. #12772
- [BUGFIX] SD: Validate HTTP client configuration in HTTP, EC2, Azure, Uyuni, PuppetDB, and Lightsail SDs. #12762 #12811 #12812 #12815 #12814 #12816
- [BUGFIX] TSDB: Fix counter reset edgecases causing native histogram panics. #12838
- [BUGFIX] TSDB: Fix duplicate sample detection at chunk size limit. #12874
- [BUGFIX] Promtool: Fix errors not being reported in check rules command. #12715
- [BUGFIX] TSDB: Avoid panics reported in logs when head initialization takes a long time. #12876
- [BUGFIX] TSDB: Ensure that WBL is repaired when possible. #12406
- [BUGFIX] Storage: Fix crash caused by incorrect mixed samples handling. #13055
- [BUGFIX] TSDB: Fix compactor failures by adding min time to histogram chunks. #13062
© Prometheus Authors 2014-2019