diff --git a/db.go b/db.go index 909050e06..228dbb9c2 100644 --- a/db.go +++ b/db.go @@ -125,6 +125,7 @@ type dbMetrics struct { compactionsTriggered prometheus.Counter cutoffs prometheus.Counter cutoffsFailed prometheus.Counter + startTime prometheus.GaugeFunc tombCleanTimer prometheus.Histogram } @@ -172,6 +173,17 @@ func newDBMetrics(db *DB, r prometheus.Registerer) *dbMetrics { Name: "prometheus_tsdb_retention_cutoffs_failures_total", Help: "Number of times the database failed to cut off block data from disk.", }) + m.startTime = prometheus.NewGaugeFunc(prometheus.GaugeOpts{ + Name: "prometheus_tsdb_lowest_timestamp", + Help: "Lowest timestamp value stored in the database.", + }, func() float64 { + db.mtx.RLock() + defer db.mtx.RUnlock() + if len(db.blocks) == 0 { + return float64(db.head.minTime) + } + return float64(db.blocks[0].meta.MinTime) + }) m.tombCleanTimer = prometheus.NewHistogram(prometheus.HistogramOpts{ Name: "prometheus_tsdb_tombstone_cleanup_seconds", Help: "The time taken to recompact blocks to remove tombstones.", @@ -186,6 +198,7 @@ func newDBMetrics(db *DB, r prometheus.Registerer) *dbMetrics { m.cutoffs, m.cutoffsFailed, m.compactionsTriggered, + m.startTime, m.tombCleanTimer, ) }