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  }