Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // PrivateMetrics about the internal world (go process, private stuff) PrivateMetrics = prometheus.NewRegistry() // HTTPMetrics about the public surface area (http requests, cdn stuff) HTTPMetrics = prometheus.NewRegistry() // GroupMetrics about the group surface (grp, group-member stuff) GroupMetrics = prometheus.NewRegistry() // ClientMetrics about the drand client requests to servers ClientMetrics = prometheus.NewRegistry() // APICallCounter (Group) how many grpc calls APICallCounter = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "api_call_counter", Help: "Number of API calls that we have received", }, []string{"api_method"}) // GroupDialFailures (Group) how manuy failures connecting outbound GroupDialFailures = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "dial_failures", Help: "Number of times there have been network connection issues", }, []string{"peer_address"}) // GroupConnections (Group) how many GrpcClient connections are present GroupConnections = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "group_connections", Help: "Number of peers with current GrpcClient connections", }) // BeaconDiscrepancyLatency (Group) millisecond duration between time beacon created and // calculated time of round. BeaconDiscrepancyLatency = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "beacon_discrepancy_latency", Help: "Discrepancy between beacon creation time and calculated round time", }) // HTTPCallCounter (HTTP) how many http requests HTTPCallCounter = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "http_call_counter", Help: "Number of HTTP calls received", }, []string{"code", "method"}) // HTTPLatency (HTTP) how long http request handling takes HTTPLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Name: "http_response_duration", Help: "histogram of request latencies", Buckets: prometheus.DefBuckets, ConstLabels: prometheus.Labels{"handler": "http"}, }, []string{"method"}) // HTTPInFlight (HTTP) how many http requests exist HTTPInFlight = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "http_in_flight", Help: "A gauge of requests currently being served.", }) // ClientWatchLatency measures the latency of the watch channel from the client's perspective. ClientWatchLatency = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "client_watch_latency", Help: "Duration between time round received and time round expected.", }) // ClientHTTPHeartbeatSuccess measures the success rate of HTTP hearbeat randomness requests. ClientHTTPHeartbeatSuccess = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "client_http_heartbeat_success", Help: "Number of successful HTTP heartbeats.", }, []string{"http_address"}) // ClientHTTPHeartbeatFailure measures the number of times HTTP heartbeats fail. ClientHTTPHeartbeatFailure = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "client_http_heartbeat_failure", Help: "Number of unsuccessful HTTP heartbeats.", }, []string{"http_address"}) // ClientHTTPHeartbeatLatency measures the randomness latency of an HTTP source. ClientHTTPHeartbeatLatency = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "client_http_heartbeat_latency", Help: "Randomness latency of an HTTP source.", }, []string{"http_address"}) // ClientInFlight measures how many active requests have been made ClientInFlight = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "client_in_flight", Help: "A gauge of in-flight drand client http requests.", }, []string{"url"}, ) // ClientRequests measures how many total requests have been made ClientRequests = prometheus.NewCounterVec( prometheus.CounterOpts{ Name: "client_api_requests_total", Help: "A counter for requests from the drand client.", }, []string{"code", "method", "url"}, ) // ClientDNSLatencyVec tracks the observed DNS resolution times ClientDNSLatencyVec = prometheus.NewHistogramVec( prometheus.HistogramOpts{ Name: "client_dns_duration_seconds", Help: "Client drand dns latency histogram.", Buckets: []float64{.005, .01, .025, .05}, }, []string{"event", "url"}, ) // ClientTLSLatencyVec tracks observed TLS connection times ClientTLSLatencyVec = prometheus.NewHistogramVec( prometheus.HistogramOpts{ Name: "client_tls_duration_seconds", Help: "Client drand tls latency histogram.", Buckets: []float64{.05, .1, .25, .5}, }, []string{"event", "url"}, ) // ClientLatencyVec tracks raw http request latencies ClientLatencyVec = prometheus.NewHistogramVec( prometheus.HistogramOpts{ Name: "client_request_duration_seconds", Help: "A histogram of client request latencies.", Buckets: prometheus.DefBuckets, }, []string{"url"}, ) )
Functions ¶
func GroupHandler ¶
GroupHandler provides metrics shared to other group members This HTTP handler, which would typically be mounted at `/metrics` exposes `GroupMetrics`
func RegisterClientMetrics ¶
func RegisterClientMetrics(r prometheus.Registerer) error
RegisterClientMetrics registers drand client metrics with the given registry
Types ¶
Directories ¶
Path | Synopsis |
---|---|
Package pprof is separated out from metrics to isolate the 'init' functionality of pprof, so that it is included when used by binaries, but not if other drand packages get used or integrated into clients that don't expect the pprof side effect to have taken effect.
|
Package pprof is separated out from metrics to isolate the 'init' functionality of pprof, so that it is included when used by binaries, but not if other drand packages get used or integrated into clients that don't expect the pprof side effect to have taken effect. |
Click to show internal directories.
Click to hide internal directories.