github.com/grafana/pyroscope@v1.18.0/pkg/segmentwriter/client/client_metrics.go (about) 1 package segmentwriterclient 2 3 import ( 4 "github.com/prometheus/client_golang/prometheus" 5 ) 6 7 type metrics struct { 8 sentBytes *prometheus.HistogramVec 9 } 10 11 func newMetrics(reg prometheus.Registerer) *metrics { 12 m := &metrics{ 13 // Note that the number of shards per tenant is limited. 14 // The same for the "addr" limit: a shard resides on a single address, 15 // ideally; in practice, if the segment writer is not available, the 16 // shard may be relocated. 17 sentBytes: prometheus.NewHistogramVec(prometheus.HistogramOpts{ 18 Name: "pyroscope_segment_writer_client_sent_bytes", 19 Buckets: prometheus.ExponentialBucketsRange(100, 100<<20, 30), 20 Help: "Number of bytes sent by the segment writer client.", 21 }, []string{"shard", "tenant", "addr"}), 22 } 23 if reg != nil { 24 reg.MustRegister(m.sentBytes) 25 } 26 return m 27 }