From e9fc37be61c6f156c7a4f204f4090cb1cb289203 Mon Sep 17 00:00:00 2001 From: Simon Pasquier Date: Wed, 10 Jan 2018 11:36:56 +0100 Subject: [PATCH] Count the total and failed block cutoffs --- db.go | 24 +++++++++++++++++++++++- db_test.go | 2 +- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/db.go b/db.go index b659165f1..9f9ec19a7 100644 --- a/db.go +++ b/db.go @@ -122,6 +122,8 @@ type dbMetrics struct { reloads prometheus.Counter reloadsFailed prometheus.Counter compactionsTriggered prometheus.Counter + cutoffs prometheus.Counter + cutoffsFailed prometheus.Counter tombCleanTimer prometheus.Histogram } @@ -148,6 +150,14 @@ func newDBMetrics(db *DB, r prometheus.Registerer) *dbMetrics { Name: "prometheus_tsdb_compactions_triggered_total", Help: "Total number of triggered compactions for the partition.", }) + m.cutoffs = prometheus.NewCounter(prometheus.CounterOpts{ + Name: "prometheus_tsdb_retention_cutoffs_total", + Help: "Number of times the database cut off block data from disk.", + }) + m.cutoffsFailed = prometheus.NewCounter(prometheus.CounterOpts{ + Name: "prometheus_tsdb_retention_cutoffs_failures_total", + Help: "Number of times the database failed to cut off block data from disk.", + }) m.tombCleanTimer = prometheus.NewHistogram(prometheus.HistogramOpts{ Name: "prometheus_tsdb_tombstone_cleanup_seconds", Help: "The time taken to recompact blocks to remove tombstones.", @@ -158,6 +168,8 @@ func newDBMetrics(db *DB, r prometheus.Registerer) *dbMetrics { m.loadedBlocks, m.reloads, m.reloadsFailed, + m.cutoffs, + m.cutoffsFailed, m.compactionsTriggered, m.tombCleanTimer, ) @@ -277,7 +289,17 @@ func (db *DB) run() { } } -func (db *DB) retentionCutoff() (bool, error) { +func (db *DB) retentionCutoff() (b bool, err error) { + defer func() { + if !b && err == nil { + // no data had to be cut off. + return + } + db.metrics.cutoffs.Inc() + if err != nil { + db.metrics.cutoffsFailed.Inc() + } + }() if db.opts.RetentionDuration == 0 { return false, nil } diff --git a/db_test.go b/db_test.go index b40d7ecf1..ef10edba6 100644 --- a/db_test.go +++ b/db_test.go @@ -800,7 +800,7 @@ func TestDB_Retention(t *testing.T) { testutil.Equals(t, 2, len(db.blocks)) - // Now call rentention. + // Now call retention. changes, err := db.retentionCutoff() testutil.Ok(t, err) testutil.Assert(t, changes, "there should be changes")