Prometheus kindles version 2.26.0, built with Go 1.16


The Prometheus team has pushed out v2.26.0 of the open source monitoring and alerting tool. One of the main changes is that this release is built with Go 1.16, which addresses a memory allocation issue seen previously.

With Prometheus v2.26.0 being built with Go 1.16, common resident set size (RSS) usage metrics should now show more accurate figures for the actual amount of memory used by Prometheus. This is because Go 1.16 reverts on a memory release pattern added in Go 1.12 which caused applications built using Go to report higher memory usage on Linux.

The issue, which is explained here, was caused by the Go runtime changing the way it used the madvise system call in Go 1.12 to inform the Linux kernel whether memory pages are required are not. This was intended to make memory handling more efficient, but sometimes resulted in a higher reported RSS that might be mistaken for a memory leak.

Another change in this release is that Prometheus now uses the Alertmanager v2 API by default. The Alertmanager handles alerts sent by client applications such as the Prometheus server, routing them to the correct destination such as email, PagerDuty, or OpsGenie. The scheme for the v2 API is specified as an OpenAPI specification that can be found in the Alertmanager repository.

Among the features added is support for AWS Signature Version 4 authentication method for remote_write. This is apparently the Grafana Cloud Agent code for the Amazon Managed Service for Prometheus (AMP), which has been added upstream to Prometheus. Another is that the Prometheus Query language, PromQL, now adds auto-completion, syntax highlighting and linting for potential errors.

A number of minor enhancements have also been added in this release, such as hitting Enter now triggers a new query in the user interface, and better handling of long rule and names on the /rules and /targets pages.

A small number of bugs have also been fixed, such as parser support for special characters in PromQL Fix parser support for special characters and an update to rule health for append/commit fails. A full list of changes is available on the Prometheus GitHub page.