mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-03-09 08:59:30 +00:00
Several packages are only used while running the e2e suite. These packages are less important to update, as the they can not influence the final executable that is part of the Ceph-CSI container-image. By moving these dependencies out of the main Ceph-CSI go.mod, it is easier to identify if a reported CVE affects Ceph-CSI, or only the testing (like most of the Kubernetes CVEs). Signed-off-by: Niels de Vos <ndevos@ibm.com>
49 lines
1.9 KiB
Go
49 lines
1.9 KiB
Go
// Copyright 2016 Michal Witkowski. All Rights Reserved.
|
|
// See LICENSE for licensing terms.
|
|
|
|
// gRPC Prometheus monitoring interceptors for server-side gRPC.
|
|
|
|
package grpc_prometheus
|
|
|
|
import (
|
|
prom "github.com/prometheus/client_golang/prometheus"
|
|
"google.golang.org/grpc"
|
|
)
|
|
|
|
var (
|
|
// DefaultServerMetrics is the default instance of ServerMetrics. It is
|
|
// intended to be used in conjunction the default Prometheus metrics
|
|
// registry.
|
|
DefaultServerMetrics = NewServerMetrics()
|
|
|
|
// UnaryServerInterceptor is a gRPC server-side interceptor that provides Prometheus monitoring for Unary RPCs.
|
|
UnaryServerInterceptor = DefaultServerMetrics.UnaryServerInterceptor()
|
|
|
|
// StreamServerInterceptor is a gRPC server-side interceptor that provides Prometheus monitoring for Streaming RPCs.
|
|
StreamServerInterceptor = DefaultServerMetrics.StreamServerInterceptor()
|
|
)
|
|
|
|
func init() {
|
|
prom.MustRegister(DefaultServerMetrics.serverStartedCounter)
|
|
prom.MustRegister(DefaultServerMetrics.serverHandledCounter)
|
|
prom.MustRegister(DefaultServerMetrics.serverStreamMsgReceived)
|
|
prom.MustRegister(DefaultServerMetrics.serverStreamMsgSent)
|
|
}
|
|
|
|
// Register takes a gRPC server and pre-initializes all counters to 0. This
|
|
// allows for easier monitoring in Prometheus (no missing metrics), and should
|
|
// be called *after* all services have been registered with the server. This
|
|
// function acts on the DefaultServerMetrics variable.
|
|
func Register(server *grpc.Server) {
|
|
DefaultServerMetrics.InitializeMetrics(server)
|
|
}
|
|
|
|
// EnableHandlingTimeHistogram turns on recording of handling time
|
|
// of RPCs. Histogram metrics can be very expensive for Prometheus
|
|
// to retain and query. This function acts on the DefaultServerMetrics
|
|
// variable and the default Prometheus metrics registry.
|
|
func EnableHandlingTimeHistogram(opts ...HistogramOption) {
|
|
DefaultServerMetrics.EnableHandlingTimeHistogram(opts...)
|
|
prom.Register(DefaultServerMetrics.serverHandledHistogram)
|
|
}
|