Skip to content

Commit 0fd982e

Browse files
committed
Add more metrics
- Uptime - Peer libp2p user agents
1 parent a683308 commit 0fd982e

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

rolling-shutter/keyper/keypermetrics/metrics.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
11
package keypermetrics
22

33
import (
4+
"time"
5+
46
"github.com/prometheus/client_golang/prometheus"
57
)
68

9+
var startTime = time.Now()
10+
11+
var metricsKeyperUptime = prometheus.NewGaugeFunc(
12+
prometheus.GaugeOpts{
13+
Namespace: "shutter",
14+
Subsystem: "keyper",
15+
Name: "uptime_seconds",
16+
Help: "Number of seconds the Keyper has been running",
17+
},
18+
func() float64 {
19+
return float64(time.Since(startTime).Milliseconds()) / 1000
20+
},
21+
)
22+
723
var MetricsKeyperCurrentBlockL1 = prometheus.NewGauge(
824
prometheus.GaugeOpts{
925
Namespace: "shutter",
@@ -80,6 +96,7 @@ var MetricsKeyperBatchConfigInfo = prometheus.NewGaugeVec(
8096
[]string{"batch_config_index", "keyper_addresses"})
8197

8298
func InitMetrics() {
99+
prometheus.MustRegister(metricsKeyperUptime)
83100
prometheus.MustRegister(MetricsKeyperCurrentBlockL1)
84101
prometheus.MustRegister(MetricsKeyperCurrentBlockShuttermint)
85102
prometheus.MustRegister(MetricsKeyperCurrentEon)

rolling-shutter/p2p/metrics.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"github.com/libp2p/go-libp2p/core/host"
66
"github.com/libp2p/go-libp2p/core/peer"
77
"github.com/prometheus/client_golang/prometheus"
8+
"github.com/rs/zerolog/log"
89
)
910

1011
var metricsP2PMessageValidationTime = prometheus.NewHistogramVec(
@@ -57,6 +58,16 @@ var metricsP2PPeerPing = prometheus.NewGaugeVec(
5758
[]string{"our_id", "peer_id"},
5859
)
5960

61+
var metricsP2PPeerUserAgent = prometheus.NewGaugeVec(
62+
prometheus.GaugeOpts{
63+
Namespace: "shutter",
64+
Subsystem: "p2p",
65+
Name: "peer_user_agent",
66+
Help: "Collection of the user agent of a peer ID.",
67+
},
68+
[]string{"peer_id", "user_agent"},
69+
)
70+
6071
func collectPeerAddresses(p peer.AddrInfo) {
6172
for _, multiAddr := range p.Addrs {
6273
metricsP2PPeerTuples.WithLabelValues(p.ID.String(), multiAddr.String()).Set(1)
@@ -69,6 +80,7 @@ func init() {
6980
prometheus.MustRegister(metricsP2PPeerTuples)
7081
prometheus.MustRegister(metricsP2PPeerConnectedness)
7182
prometheus.MustRegister(metricsP2PPeerPing)
83+
prometheus.MustRegister(metricsP2PPeerUserAgent)
7284
}
7385

7486
func updatePeersMetrics(h host.Host, peerIds mapset.Set[peer.ID]) {
@@ -80,5 +92,13 @@ func updatePeersMetrics(h host.Host, peerIds mapset.Set[peer.ID]) {
8092
if peerPing != 0 {
8193
metricsP2PPeerPing.WithLabelValues(ourID, p.String()).Set(peerPing.Seconds())
8294
}
95+
ua, err := h.Peerstore().Get(p, "AgentVersion")
96+
if err != nil {
97+
log.Warn().Str("peer", p.String()).Msg("Can't get user agent for peer")
98+
continue
99+
}
100+
if ua != nil {
101+
metricsP2PPeerUserAgent.WithLabelValues(p.String(), ua.(string)).Set(1)
102+
}
83103
}
84104
}

0 commit comments

Comments
 (0)