From 065f42f58c317c19f7d3b470a0cb46270276e806 Mon Sep 17 00:00:00 2001 From: Fabian Reinartz Date: Thu, 12 Oct 2017 15:25:12 +0200 Subject: [PATCH] head: track number of series not found errors in metric --- head.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/head.go b/head.go index 1d0f688395..e0fd3c076d 100644 --- a/head.go +++ b/head.go @@ -74,6 +74,7 @@ type headMetrics struct { series prometheus.Gauge seriesCreated prometheus.Counter seriesRemoved prometheus.Counter + seriesNotFound prometheus.Counter chunks prometheus.Gauge chunksCreated prometheus.Gauge chunksRemoved prometheus.Gauge @@ -103,6 +104,10 @@ func newHeadMetrics(h *Head, r prometheus.Registerer) *headMetrics { Name: "tsdb_head_series_removed_total", Help: "Total number of series removed in the head", }) + m.seriesNotFound = prometheus.NewCounter(prometheus.CounterOpts{ + Name: "tsdb_head_series_not_found", + Help: "Total number of requests for series that were not found.", + }) m.chunks = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "tsdb_head_chunks", Help: "Total number of chunks in the head block.", @@ -149,6 +154,7 @@ func newHeadMetrics(h *Head, r prometheus.Registerer) *headMetrics { m.series, m.seriesCreated, m.seriesRemoved, + m.seriesNotFound, m.minTime, m.maxTime, m.gcDuration, @@ -852,6 +858,7 @@ func (h *headIndexReader) Series(ref uint64, lbls *labels.Labels, chks *[]ChunkM s := h.head.series.getByID(ref) if s == nil { + h.head.metrics.seriesNotFound.Inc() return ErrNotFound } *lbls = append((*lbls)[:0], s.lset...)