in pkg/metrics/prometheus.go [47:84]
func NewPromMetrics(reg prometheus.Registerer, name, prefix string) *promMetrics {
requestDurationHist := prometheus.NewHistogramVec(prometheus.HistogramOpts{
Name: prefix + "_request_duration_seconds",
Help: "Duration of requests in seconds.",
Buckets: prometheus.LinearBuckets(0.005, 0.025, 200),
}, []string{"self", "method", "handler"})
reg.MustRegister(requestDurationHist)
peerDiscoveryDurationHist := prometheus.NewHistogramVec(prometheus.HistogramOpts{
Name: prefix + "_peer_discovery_duration_seconds",
Help: "Duration of peer discovery in seconds.",
Buckets: prometheus.LinearBuckets(0.001, 0.002, 200),
}, []string{"self", "ip"})
reg.MustRegister(peerDiscoveryDurationHist)
peerResponseDurationHist := prometheus.NewHistogramVec(prometheus.HistogramOpts{
Name: prefix + "_peer_response_speed_mib_per_second",
Help: "Speed of peer response in Mib per second.",
Buckets: prometheus.LinearBuckets(1, 15, 200),
}, []string{"self", "ip", "op"})
reg.MustRegister(peerResponseDurationHist)
upstreamResponseDurationHist := prometheus.NewHistogramVec(prometheus.HistogramOpts{
Name: prefix + "_upstream_response_speed_mib_per_second",
Help: "Speed of upstream response in Mib per second.",
Buckets: prometheus.LinearBuckets(1, 15, 200),
}, []string{"self", "hostname", "op"})
reg.MustRegister(upstreamResponseDurationHist)
return &promMetrics{
name: name,
requestDuration: requestDurationHist,
peerDiscoveryDuration: peerDiscoveryDurationHist,
peerResponseSpeed: peerResponseDurationHist,
upstreamResponseSpeed: upstreamResponseDurationHist,
}
}