github.com/grafana/pyroscope@v1.18.0/pkg/segmentwriter/client/distributor/placement/adaptiveplacement/placement_manager_metrics.go (about) 1 package adaptiveplacement 2 3 import ( 4 "github.com/prometheus/client_golang/prometheus" 5 ) 6 7 type managerMetrics struct { 8 rulesTotal prometheus.Gauge 9 statsTotal prometheus.Gauge 10 lastUpdate prometheus.Gauge 11 12 datasetShardLimit *prometheus.GaugeVec 13 datasetShardUsage *prometheus.GaugeVec 14 datasetShardUsageBreakdown *prometheus.GaugeVec 15 } 16 17 func newManagerMetrics(reg prometheus.Registerer) *managerMetrics { 18 m := &managerMetrics{ 19 lastUpdate: prometheus.NewGauge(prometheus.GaugeOpts{ 20 Name: "pyroscope_adaptive_placement_rules_last_update_time", 21 Help: "Second timestamp of the last successful update.", 22 }), 23 rulesTotal: prometheus.NewGauge(prometheus.GaugeOpts{ 24 Name: "pyroscope_adaptive_placement_rules", 25 Help: "Total number of rule entries.", 26 }), 27 statsTotal: prometheus.NewGauge(prometheus.GaugeOpts{ 28 Name: "pyroscope_adaptive_placement_stats", 29 Help: "Total number of stats entries.", 30 }), 31 32 datasetShardLimit: prometheus.NewGaugeVec(prometheus.GaugeOpts{ 33 Name: "pyroscope_adaptive_placement_dataset_shard_limit", 34 Help: "Maximum number of shards allowed for a dataset.", 35 }, []string{"tenant", "dataset", "load_balancing"}), 36 37 datasetShardUsage: prometheus.NewGaugeVec(prometheus.GaugeOpts{ 38 Name: "pyroscope_adaptive_placement_dataset_shard_usage_bytes_per_second", 39 Help: "Usage of the dataset in bytes per second.", 40 }, []string{"tenant", "dataset"}), 41 42 datasetShardUsageBreakdown: prometheus.NewGaugeVec(prometheus.GaugeOpts{ 43 Name: "pyroscope_adaptive_placement_dataset_shard_usage_per_shard_bytes_per_second", 44 Help: "Usage of the dataset shard in bytes per second.", 45 }, []string{"tenant", "dataset", "shard_id", "shard_owner"}), 46 } 47 if reg != nil { 48 reg.MustRegister( 49 m.lastUpdate, 50 m.rulesTotal, 51 m.statsTotal, 52 m.datasetShardLimit, 53 m.datasetShardUsage, 54 m.datasetShardUsageBreakdown, 55 ) 56 } 57 return m 58 }