Skip to content

Commit 05a8a81

Browse files
committed
feat: add latency and observation metrics
1 parent 349e7b2 commit 05a8a81

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

receive.go

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package main
22

33
import (
44
"context"
5+
"encoding/hex"
6+
"time"
57

68
"github.com/certusone/wormhole/node/pkg/common"
79
"github.com/certusone/wormhole/node/pkg/p2p"
@@ -43,13 +45,26 @@ func ReceiveMessages(channel chan *vaa.VAA, heartbeat *Heartbeat, networkID, boo
4345
Help: "Count of messages received from the p2p network",
4446
})
4547

46-
// Ignore observations
48+
messageLatencyMetric := promauto.NewHistogram(prometheus.HistogramOpts{
49+
Name: "beacon_message_latency",
50+
Help: "Latency of messages received from the p2p network",
51+
Buckets: []float64{0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 1, 1.3, 1.7, 2, 3, 5, 10, 20},
52+
})
53+
54+
observationsMetric := promauto.NewCounterVec(prometheus.CounterOpts{
55+
Name: "beacon_observations",
56+
Help: "Count of observations received from the p2p network",
57+
}, []string{"guardian"})
58+
59+
// Update metrics for observation to track guardians behaviour
4760
go func() {
4861
for {
4962
select {
5063
case <-rootCtx.Done():
5164
return
52-
case <-obsvC:
65+
case o := <-obsvC:
66+
guardian := hex.EncodeToString(o.Msg.Addr)
67+
observationsMetric.WithLabelValues(guardian).Inc()
5368
}
5469
}
5570
}()
@@ -84,6 +99,8 @@ func ReceiveMessages(channel chan *vaa.VAA, heartbeat *Heartbeat, networkID, boo
8499
// Send message on channel, increment counter, and update heartbeat
85100
channel <- vaa
86101
messagesMetric.Inc()
102+
messageLatencyMetric.Observe(time.Since(time.Unix(vaa.Timestamp.Unix(), 0)).Seconds())
103+
87104
if vaa.Timestamp.Unix() > heartbeat.Timestamp {
88105
heartbeat.Timestamp = vaa.Timestamp.Unix()
89106
}

0 commit comments

Comments
 (0)