Browse Source

Count the total and failed block cutoffs

pull/5805/head
Simon Pasquier 7 years ago
parent
commit
e9fc37be61
  1. 24
      db.go
  2. 2
      db_test.go

24
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
}

2
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")

Loading…
Cancel
Save