Skip to content

Commit a2bebbf

Browse files
feat: update isKeyper metric when handling messages and add successfull_dkg metric
1 parent b4955a8 commit a2bebbf

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

rolling-shutter/keyper/epochkghandler/key.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package epochkghandler
33
import (
44
"bytes"
55
"context"
6+
"strconv"
67

78
"github.com/jackc/pgx/v4"
89
"github.com/jackc/pgx/v4/pgxpool"
@@ -14,6 +15,7 @@ import (
1415
"github.com/shutter-network/shutter/shlib/shcrypto"
1516

1617
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyper/database"
18+
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyper/keypermetrics"
1719
"github.com/shutter-network/rolling-shutter/rolling-shutter/medley"
1820
"github.com/shutter-network/rolling-shutter/rolling-shutter/p2p"
1921
"github.com/shutter-network/rolling-shutter/rolling-shutter/p2pmsg"
@@ -52,25 +54,31 @@ func (handler *DecryptionKeyHandler) ValidateMessage(ctx context.Context, msg p2
5254
return pubsub.ValidationReject, err
5355
}
5456
if !isKeyper {
57+
keypermetrics.MetricsKeyperIsKeyper.WithLabelValues(strconv.FormatInt(eon, 10)).Set(0)
5558
log.Debug().Int64("eon", eon).Msg("Ignoring decryptionKey for eon; we're not a Keyper")
5659
return pubsub.ValidationReject, nil
5760
}
61+
keypermetrics.MetricsKeyperIsKeyper.WithLabelValues(strconv.FormatInt(eon, 10)).Set(1)
5862

5963
dkgResultDB, err := queries.GetDKGResultForKeyperConfigIndex(ctx, eon)
6064
if errors.Is(err, pgx.ErrNoRows) {
65+
keypermetrics.MetricsKeyperSuccessfullDKG.WithLabelValues(strconv.FormatInt(eon, 10)).Set(0)
6166
return pubsub.ValidationReject, errors.Errorf("no DKG result found for eon %d", eon)
6267
}
6368
if err != nil {
69+
keypermetrics.MetricsKeyperSuccessfullDKG.WithLabelValues(strconv.FormatInt(eon, 10)).Set(0)
6470
return pubsub.ValidationReject, errors.Wrapf(err, "failed to get dkg result for eon %d from db", eon)
6571
}
6672
if !dkgResultDB.Success {
73+
keypermetrics.MetricsKeyperSuccessfullDKG.WithLabelValues(strconv.FormatInt(eon, 10)).Set(0)
6774
return pubsub.ValidationReject, errors.Errorf("no successful DKG result found for eon %d", eon)
6875
}
6976
pureDKGResult, err := shdb.DecodePureDKGResult(dkgResultDB.PureResult)
7077
if err != nil {
7178
return pubsub.ValidationReject, errors.Wrapf(err, "error while decoding pure DKG result for eon %d", eon)
7279
}
7380

81+
keypermetrics.MetricsKeyperSuccessfullDKG.WithLabelValues(strconv.FormatInt(eon, 10)).Set(1)
7482
if len(decryptionKeys.Keys) == 0 {
7583
return pubsub.ValidationReject, errors.New("no keys in message")
7684
}

rolling-shutter/keyper/keypermetrics/metrics.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,16 @@ var MetricsKeyperBatchConfigInfo = prometheus.NewGaugeVec(
7979
},
8080
[]string{"batch_config_index", "keyper_addresses"})
8181

82+
var MetricsKeyperSuccessfullDKG = prometheus.NewGaugeVec(
83+
prometheus.GaugeOpts{
84+
Namespace: "shutter",
85+
Subsystem: "keyper",
86+
Name: "successfull_dkg",
87+
Help: "Is DKG successful",
88+
},
89+
[]string{"eon"},
90+
)
91+
8292
func InitMetrics() {
8393
prometheus.MustRegister(MetricsKeyperCurrentBlockL1)
8494
prometheus.MustRegister(MetricsKeyperCurrentBlockShuttermint)
@@ -88,4 +98,5 @@ func InitMetrics() {
8898
prometheus.MustRegister(MetricsKeyperCurrentPhase)
8999
prometheus.MustRegister(MetricsKeyperCurrentBatchConfigIndex)
90100
prometheus.MustRegister(MetricsKeyperBatchConfigInfo)
101+
prometheus.MustRegister(MetricsKeyperSuccessfullDKG)
91102
}

rolling-shutter/keyper/smobserver/smstate.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,7 @@ func (st *ShuttermintState) finalizeDKG(
489489
dkgresultmsg := shmsg.NewDKGResult(eon, err == nil)
490490

491491
if err != nil {
492+
keypermetrics.MetricsKeyperSuccessfullDKG.WithLabelValues(strconv.FormatInt(int64(eon), 10)).Set(0)
492493
log.Error().Err(err).Uint64("eon", eon).Bool("success", false).
493494
Msg("DKG process failed")
494495
dkgerror = sql.NullString{String: err.Error(), Valid: true}
@@ -497,6 +498,7 @@ func (st *ShuttermintState) finalizeDKG(
497498
return err
498499
}
499500
} else {
501+
keypermetrics.MetricsKeyperSuccessfullDKG.WithLabelValues(strconv.FormatInt(int64(eon), 10)).Set(1)
500502
log.Info().Uint64("eon", eon).Bool("success", true).Msg("DKG process succeeded")
501503
pureResult, err = shdb.EncodePureDKGResult(&dkgresult)
502504
if err != nil {

0 commit comments

Comments
 (0)