...

Source file src/golang.conradwood.net/go-easyops/server/server_metrics.go

Documentation: golang.conradwood.net/go-easyops/server

     1  package server
     2  
     3  import (
     4  	//	"golang.conradwood.net/go-easyops/prometheus"
     5  	"golang.conradwood.net/go-easyops/prometheus"
     6  	"time"
     7  )
     8  
     9  var (
    10  	grpc_server_req_durations = prometheus.NewSummaryVec(
    11  		prometheus.SummaryOpts{
    12  			Name:       "grpc_server_request_durations",
    13  			Help:       "V=1 UNIT=s DESC=RPC latency distributions, measured on server",
    14  			Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001},
    15  			MaxAge:     time.Hour,
    16  		},
    17  		[]string{"servicename", "method"},
    18  	)
    19  	grpc_failed_requests = prometheus.NewCounterVec(
    20  		prometheus.CounterOpts{
    21  			Name: "grpc_server_requests_failed",
    22  			Help: "number of grpc requests failed by this server",
    23  		},
    24  		[]string{"servicename", "method", "grpccode"},
    25  	)
    26  	grpc_server_requests = prometheus.NewCounterVec(
    27  		prometheus.CounterOpts{
    28  			Name: "grpc_server_requests_received",
    29  			Help: "total number of grpc requests received by this server",
    30  		},
    31  		[]string{"servicename", "method"},
    32  	)
    33  )
    34  
    35  func init() {
    36  	prometheus.MustRegister(grpc_server_req_durations, grpc_failed_requests, grpc_server_requests)
    37  }
    38  
    39  // deprecated - to be moved to global vars
    40  type ServerMetrics struct {
    41  	concurrent_server_requests *prometheus.GaugeVec
    42  	inv_auth                   *prometheus.CounterVec
    43  }
    44  
    45  // deprecated - to be moved to global vars
    46  func NewServerMetrics() *ServerMetrics {
    47  	res := &ServerMetrics{
    48  		concurrent_server_requests: prometheus.NewGaugeVec(
    49  			prometheus.GaugeOpts{
    50  				Name: "grpc_concurrent_requests",
    51  				Help: "how many rpcs are served concurrently at any point in time",
    52  			},
    53  			[]string{"servicename", "method"},
    54  		),
    55  		inv_auth: prometheus.NewCounterVec(
    56  			prometheus.CounterOpts{
    57  				Name: "grpc_requests_invalid_auth",
    58  				Help: "V=1 UNIT=ops DESC=RPC requests with invalid or obsolete authentication",
    59  			},
    60  			[]string{"servicename", "method", "reason"},
    61  		),
    62  	}
    63  	prometheus.MustRegister(res.inv_auth, res.concurrent_server_requests)
    64  	return res
    65  }
    66  

View as plain text