After 1.5.0 earlier in the year, Prometheus 1.6.0 is now out. There's a plethora of changes, so let's dive in.

The biggest change is to how memory is managed. The -storage.local.memory-chunks and -storage.local.max-chunks-to-persist flags have been replaced by -storage.local.target-heap-size. Prometheus will attempt to keep the heap at the given size in bytes. For various technical reasons, actual memory usage will be higher so leave a buffer on top of this. Setting this flag to 2/3 of how much RAM you'd like to use should be safe.

The GOGC environment variable has been defaulted to 40, rather than its default of 100. This will reduce memory usage, at the cost of some additional CPU.

A feature of major note is that experimental remote read support has been added, allowing the read back of data from long term storage and other systems.The previous in-built experimental support for writing to Graphite/OpenTSDB/InfluxDB has been removed in favour of the experimental remote write interface. These are now available via the example remote storage adapter, which can also read from InfluxDB via remote read.

In terms of general features and improvements, there's a few highlights. Joyent Triton discovery has been added. Promtool has a linter for /metrics pages. There's new storage, alerting and evaluation-related metrics. Checkpoint and timeseries maintenance impact has been reduced. There have been numerous UI improvements.

In terms of bug fixes federation now exposes an empty instance label if one is not set, so if using honor_labels you'll no longer pick up the instance label of the Prometheus itself.

For a full list of changes see the release notes.

 

Want to get the most out of remote read? Contact us.