Skip to content

Commit 15d7806

Browse files
committed
Add p2p message handling and validation metrics
1 parent 925a119 commit 15d7806

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

rolling-shutter/p2p/messaging.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,7 @@ func (r *ValidatorRegistry) GetCombinedValidator(topic string) pubsub.ValidatorE
3434
startTime := time.Now()
3535
defer func() {
3636
elapsedTime := time.Since(startTime)
37-
log.Debug().
38-
Str("topic", topic).
39-
Str("duration", elapsedTime.String()).
40-
Msg("validated message")
37+
metricsP2PMessageValidationTime.WithLabelValues(topic).Observe(elapsedTime.Seconds())
4138
}()
4239

4340
ignored := false
@@ -275,13 +272,16 @@ func (m *P2PMessaging) runHandleMessages(ctx context.Context) error {
275272
if !ok {
276273
return nil
277274
}
275+
startTime := time.Now()
278276
if err := m.handle(ctx, msg); err != nil {
279277
log.Info().
280278
Err(err).
281279
Str("topic", msg.GetTopic()).
282280
Str("sender-id", msg.GetFrom().String()).
283281
Msg("failed to handle message")
284282
}
283+
elapsedTime := time.Since(startTime)
284+
metricsP2PMessageHandlingTime.WithLabelValues(msg.GetTopic()).Observe(elapsedTime.Seconds())
285285
case <-ctx.Done():
286286
return ctx.Err()
287287
}

rolling-shutter/p2p/metrics.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package p2p
2+
3+
import "github.com/prometheus/client_golang/prometheus"
4+
5+
var metricsP2PMessageValidationTime = prometheus.NewHistogramVec(
6+
prometheus.HistogramOpts{
7+
Namespace: "shutter",
8+
Subsystem: "p2p",
9+
Name: "message_validation_time_seconds",
10+
Help: "Histogram of the time it takes to validate a P2P message.",
11+
Buckets: prometheus.DefBuckets,
12+
},
13+
[]string{"topic"},
14+
)
15+
16+
var metricsP2PMessageHandlingTime = prometheus.NewHistogramVec(
17+
prometheus.HistogramOpts{
18+
Namespace: "shutter",
19+
Subsystem: "p2p",
20+
Name: "message_handling_time_seconds",
21+
Help: "Histogram of the time it takes to handle a P2P message.",
22+
Buckets: prometheus.DefBuckets,
23+
},
24+
[]string{"topic"},
25+
)
26+
27+
func init() {
28+
prometheus.MustRegister(metricsP2PMessageValidationTime)
29+
prometheus.MustRegister(metricsP2PMessageHandlingTime)
30+
}

0 commit comments

Comments
 (0)