github.com/MetalBlockchain/metalgo@v1.11.9/snow/networking/router/chain_router_metrics.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package router 5 6 import ( 7 "errors" 8 9 "github.com/prometheus/client_golang/prometheus" 10 ) 11 12 // routerMetrics about router messages 13 type routerMetrics struct { 14 outstandingRequests prometheus.Gauge 15 longestRunningRequest prometheus.Gauge 16 droppedRequests prometheus.Counter 17 } 18 19 func newRouterMetrics(registerer prometheus.Registerer) (*routerMetrics, error) { 20 rMetrics := &routerMetrics{} 21 rMetrics.outstandingRequests = prometheus.NewGauge( 22 prometheus.GaugeOpts{ 23 Name: "outstanding", 24 Help: "Number of outstanding requests (all types)", 25 }, 26 ) 27 rMetrics.longestRunningRequest = prometheus.NewGauge( 28 prometheus.GaugeOpts{ 29 Name: "longest_running", 30 Help: "Time (in ns) the longest request took", 31 }, 32 ) 33 rMetrics.droppedRequests = prometheus.NewCounter( 34 prometheus.CounterOpts{ 35 Name: "dropped", 36 Help: "Number of dropped requests (all types)", 37 }, 38 ) 39 40 err := errors.Join( 41 registerer.Register(rMetrics.outstandingRequests), 42 registerer.Register(rMetrics.longestRunningRequest), 43 registerer.Register(rMetrics.droppedRequests), 44 ) 45 return rMetrics, err 46 }