github.com/grafana/pyroscope@v1.18.0/pkg/compactionworker/metrics.go (about) 1 package compactionworker 2 3 import ( 4 "time" 5 6 "github.com/prometheus/client_golang/prometheus" 7 8 "github.com/grafana/pyroscope/pkg/util" 9 ) 10 11 type workerMetrics struct { 12 jobsInProgress *prometheus.GaugeVec 13 jobsCompleted *prometheus.CounterVec 14 jobDuration *prometheus.HistogramVec 15 timeToCompaction *prometheus.HistogramVec 16 blocksDeleted *prometheus.CounterVec 17 } 18 19 func newMetrics(r prometheus.Registerer) *workerMetrics { 20 m := &workerMetrics{ 21 jobsInProgress: prometheus.NewGaugeVec(prometheus.GaugeOpts{ 22 Name: "jobs_in_progress", 23 Help: "The number of active compaction jobs currently running.", 24 }, []string{"tenant", "level"}), 25 26 jobsCompleted: prometheus.NewCounterVec(prometheus.CounterOpts{ 27 Name: "jobs_completed_total", 28 Help: "Total number of compaction jobs completed.", 29 }, []string{"tenant", "level", "status"}), 30 31 jobDuration: prometheus.NewHistogramVec(prometheus.HistogramOpts{ 32 Name: "job_duration_seconds", 33 Help: "Duration of compaction job runs", 34 35 Buckets: prometheus.ExponentialBucketsRange(1, 300, 16), 36 NativeHistogramBucketFactor: 1.1, 37 NativeHistogramMaxBucketNumber: 50, 38 NativeHistogramMinResetDuration: time.Hour, 39 }, []string{"tenant", "level", "status"}), 40 41 timeToCompaction: prometheus.NewHistogramVec(prometheus.HistogramOpts{ 42 Name: "time_to_compaction_seconds", 43 Help: "The time elapsed since the oldest compacted block was created.", 44 45 Buckets: prometheus.ExponentialBuckets(1, 3600, 16), 46 NativeHistogramBucketFactor: 1.1, 47 NativeHistogramMaxBucketNumber: 50, 48 NativeHistogramMinResetDuration: time.Hour, 49 }, []string{"tenant", "level"}), 50 51 blocksDeleted: prometheus.NewCounterVec(prometheus.CounterOpts{ 52 Name: "blocks_deleted_total", 53 Help: "Total number of block deletion attempts.", 54 }, []string{"status"}), 55 } 56 57 util.Register(r, 58 m.jobsInProgress, 59 m.jobsCompleted, 60 m.jobDuration, 61 m.timeToCompaction, 62 m.blocksDeleted, 63 ) 64 65 return m 66 }