prometheus v2.21 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] Disable HTTP/2 because of concerns with the Go HTTP/2 client. #7588 #7701
- [CHANGE] PromQL:
query_log_filepath is now relative to the config file. #7701
- [CHANGE] Promtool: Replace the tsdb command line tool by a promtool tsdb subcommand. #6088
- [CHANGE] Rules: Label
rule_group_iterationsmetric with group name. #7823
- [FEATURE] Eureka SD: New service discovery. #3369
- [FEATURE] Hetzner SD: New service discovery. #7822
- [FEATURE] Kubernetes SD: Support Kubernetes EndpointSlices. #6838
- [FEATURE] Scrape: Add per scrape-config targets limit. #7554
- [ENHANCEMENT] Support composite durations in PromQL, config and UI, e.g. 1h30m. #7713 #7833
- [ENHANCEMENT] DNS SD: Add SRV record target and port meta labels. #7678
- [ENHANCEMENT] Docker Swarm SD: Support tasks and service without published ports. #7686
- [ENHANCEMENT] PromQL: Reduce the amount of data queried by remote read when a subquery has an offset. #7667
- [ENHANCEMENT] Promtool: Add
--timeoption to query instant command. #7829
- [ENHANCEMENT] UI: Respect the
--web.page-titleparameter in the React UI. #7607
- [ENHANCEMENT] UI: Add duration, labels, annotations to alerts page in the React UI. #7605
- [ENHANCEMENT] UI: Add duration on the React UI rules page, hide annotation and labels if empty. #7606
- [BUGFIX] API: Deduplicate series in /api/v1/series. #7862
- [BUGFIX] PromQL: Drop metric name in bool comparison between two instant vectors. #7819
- [BUGFIX] PromQL: Exit with an error when time parameters can’t be parsed. #7505
- [BUGFIX] Remote read: Re-add accidentally removed tracing for remote-read requests. #7916
- [BUGFIX] Rules: Detect extra fields in rule files. #7767
- [BUGFIX] Rules: Disallow overwriting the metric name in the
labelssection of recording rules. #7787
- [BUGFIX] Rules: Keep evaluation timestamp across reloads. #7775
- [BUGFIX] Scrape: Do not stop scrapes in progress during reload. #7752
- [BUGFIX] TSDB: Fix
chunks.HeadReadWriter: maxt of the files are not seterror. #7856
- [BUGFIX] TSDB: Delete blocks atomically to prevent corruption when there is a panic/crash during deletion. #7772
- [BUGFIX] Triton SD: Fix a panic when triton_sd_config is nil. #7671
- [BUGFIX] UI: Fix react UI bug with series going on and off. #7804
- [BUGFIX] UI: Fix styling bug for target labels with special names in React UI. #7902
- [BUGFIX] Web: Stop CMUX and GRPC servers even with stale connections, preventing the server to stop on SIGTERM. #7810
© Prometheus Authors 2014-2019