2022-10-08 20:16:20 +03:00

21 lines
426 B
Go

package metric
import (
"github.com/prometheus/client_golang/prometheus"
"storj.io/drpc"
"time"
)
type PrometheusDRPC struct {
drpc.Handler
HistogramVec *prometheus.HistogramVec
}
func (ph *PrometheusDRPC) HandleRPC(stream drpc.Stream, rpc string) (err error) {
st := time.Now()
defer func() {
ph.HistogramVec.WithLabelValues(rpc).Observe(time.Since(st).Seconds())
}()
return ph.Handler.HandleRPC(stream, rpc)
}