k3s/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_reporter.go

47 lines
1.4 KiB
Go
Raw Normal View History

2019-01-12 04:58:27 +00:00
// Copyright 2016 Michal Witkowski. All Rights Reserved.
// See LICENSE for licensing terms.
package grpc_prometheus
import (
"time"
"google.golang.org/grpc/codes"
)
type serverReporter struct {
2019-09-27 21:51:53 +00:00
metrics *ServerMetrics
2019-01-12 04:58:27 +00:00
rpcType grpcType
serviceName string
methodName string
startTime time.Time
}
2019-09-27 21:51:53 +00:00
func newServerReporter(m *ServerMetrics, rpcType grpcType, fullMethod string) *serverReporter {
r := &serverReporter{
metrics: m,
rpcType: rpcType,
}
if r.metrics.serverHandledHistogramEnabled {
2019-01-12 04:58:27 +00:00
r.startTime = time.Now()
}
r.serviceName, r.methodName = splitMethodName(fullMethod)
2019-09-27 21:51:53 +00:00
r.metrics.serverStartedCounter.WithLabelValues(string(r.rpcType), r.serviceName, r.methodName).Inc()
2019-01-12 04:58:27 +00:00
return r
}
func (r *serverReporter) ReceivedMessage() {
2019-09-27 21:51:53 +00:00
r.metrics.serverStreamMsgReceived.WithLabelValues(string(r.rpcType), r.serviceName, r.methodName).Inc()
2019-01-12 04:58:27 +00:00
}
func (r *serverReporter) SentMessage() {
2019-09-27 21:51:53 +00:00
r.metrics.serverStreamMsgSent.WithLabelValues(string(r.rpcType), r.serviceName, r.methodName).Inc()
2019-01-12 04:58:27 +00:00
}
func (r *serverReporter) Handled(code codes.Code) {
2019-09-27 21:51:53 +00:00
r.metrics.serverHandledCounter.WithLabelValues(string(r.rpcType), r.serviceName, r.methodName, code.String()).Inc()
if r.metrics.serverHandledHistogramEnabled {
r.metrics.serverHandledHistogram.WithLabelValues(string(r.rpcType), r.serviceName, r.methodName).Observe(time.Since(r.startTime).Seconds())
2019-01-12 04:58:27 +00:00
}
}