From b7e6651e06726354ff843aacc15caffe69c00063 Mon Sep 17 00:00:00 2001 From: Tobias Schmidt Date: Mon, 22 Feb 2016 19:48:31 -0500 Subject: [PATCH 1/2] Improve 0.17.0 changelog * remove wrong release date until 0.17.0 gets actually released * fix wrong alertmanager version number * add example for regex anchor change --- CHANGELOG.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d490e8d8f..fa6a5a95c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,15 @@ -## 0.17.0 / 2016-01-27 +## 0.17.0 / unreleased -This version no longer works with Alertmanager 0.4.0 and earlier! +This version no longer works with Alertmanager 0.0.4 and earlier! The alerting rule syntax has changed as well but the old syntax is supported up until version 0.18. +All regular expressions in PromQL are anchored now, matching the behavior of +regular expressions in config files. Expressions in rules, alerts or dashboards +need to be changed if they don't match the full value so far (for example +`http_requests_total{status=~"^5"}` won't match anything anymore and needs to +be changed to `http_requests_total{status=~"5.."}`). + * [CHANGE] Integrate with Alertmanager 0.1.0 and higher * [CHANGE] Degraded storage mode renamed to rushed mode * [CHANGE] New alerting rule syntax From 8fa1560e489eaa39eec31f2f930a49b9d443c230 Mon Sep 17 00:00:00 2001 From: beorn7 Date: Tue, 23 Feb 2016 15:30:56 +0100 Subject: [PATCH 2/2] Fix a very special case of handling the checkpoint timer --- storage/local/storage.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/storage/local/storage.go b/storage/local/storage.go index b10708b20..55f81bd36 100644 --- a/storage/local/storage.go +++ b/storage/local/storage.go @@ -966,6 +966,13 @@ loop: } else { dirtySeriesCount = 0 } + // If a checkpoint takes longer than checkpointInterval, unluckily timed + // combination with the Reset(0) call below can lead to a case where a + // time is lurking in C leading to repeated checkpointing without break. + select { + case <-checkpointTimer.C: // Get rid of the lurking time. + default: + } checkpointTimer.Reset(s.checkpointInterval) case fp := <-memoryFingerprints: if s.maintainMemorySeries(fp, model.Now().Add(-s.dropAfter)) {