Prometheus v2.29.0 is out with a lot of new features. We can see a lot of enhancements and several bug fixes too. We will look at all of these items in this article. But first, we have to know what Prometheus is?
Prometheus is a Cloud Native Computing Foundation project, and we can define it as 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 when we observe specified conditions.
With the release of v2.29.0, the first change we can see is promoting
--storage.tsdb.allow-overlapping-blocks flag to stable. Also, we can see the promotion of
--storage.tsdb.retention.size flag to stable.
The new release brings several new features. We can see a new feature like the addition of Kuma service discovery. There is also the addition of another new feature which includes the
present_over_time PromQL function. Again, we can see another new feature like configuring exemplar storage via file and making it reloadable. Another unique feature of UI is the allowing of selecting time range with mouse drag. For promtool, we can see new features like the addition of feature flags like the
--enable-feature flag and also, there is the addition of
file_sd file validation.
The new release brings a lot of new enhancements concerning the previous release. We can see the reduction of the blocking of outgoing remote write requests from series garbage collection. We can also see the improvement of
write-ahead-log decoding performance. Also, the new release brings an improvement to append performance in TSDB by reducing mutexes usage. New enhancements allow the configuration of
max_samples_per_send for remote write metadata.
There are enhancements like addition to
__meta_gce_interface_ipv4_<name> meta label to GCE discovery and addition of
__meta_ec2_availability_zone_id meta label to EC2 discovery. Also, we can see the addition of
__meta_azure_machine_computer_name meta label to Azure discovery as enhancements. There are additional enhancement of
__meta_hetzner_hcloud_labelpresent_<labelname> meta label to Hetzner discovery.
Enhancements for promtool bring compaction efficiency to promtool tsdb analyze reports and allow the configuration of max block duration for backfilling via
--max-block-duration flag. For enhancements on the user interface, we can observe the addition of sorting and filtering to the flags page. Again for UI, the new update also improves the alerts page, which will result in rendering performance.
With the release of version 2.29.0, we see several bug fixes for Prometheus. Firstly, we can see the logging when the total symbol size exceeds 2^32 bytes, causing compaction to fail and skip compaction. Again, we can see the fixing of incorrect trget_limit reloading of zero value. There is also fixing of head GC and pending readers race condition.
Another essential fix we can see is the fixing of timestamp handling in the OpenMetrics parser. Other fixes such as fixing potential duplicate metrics in /federate endpoint when specifying multiple matchers and fixing server configuration and validation for authentication via client cert came into immediate effect with the new release. The latest version will now allow start and end again as label names in PromQL queries. In the earlier releases, the devs have disallowed them since the introduction of @ timestamp feature.
Throughout the article, we have seen the various changes and enhancements that came through this new release. Also, we have discussed several bug fixes and the introduction of new features of version 2.29.0. I know you guys are also impatient to try out this new Prometheus. For that, you have to download the latest version by clicking here. Read more of our posts here: