Skip to content

Commit 7d140ef

Browse files
authored
Node: Add reobservation metric (#4303)
1 parent 4ba560a commit 7d140ef

File tree

10 files changed

+45
-4
lines changed

10 files changed

+45
-4
lines changed

node/pkg/watchers/algorand/watcher.go

+4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1"
1818
"github.com/certusone/wormhole/node/pkg/readiness"
1919
"github.com/certusone/wormhole/node/pkg/supervisor"
20+
"github.com/certusone/wormhole/node/pkg/watchers"
2021
eth_common "github.com/ethereum/go-ethereum/common"
2122
"github.com/prometheus/client_golang/prometheus"
2223
"github.com/prometheus/client_golang/prometheus/promauto"
@@ -169,6 +170,9 @@ func lookAtTxn(e *Watcher, t types.SignedTxnInBlock, b types.Block, logger *zap.
169170
}
170171

171172
algorandMessagesConfirmed.Inc()
173+
if isReobservation {
174+
watchers.ReobservationsByChain.WithLabelValues("algorand", "std").Inc()
175+
}
172176

173177
logger.Info("message observed",
174178
zap.Time("timestamp", observation.Timestamp),

node/pkg/watchers/aptos/watcher.go

+3
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,9 @@ func (e *Watcher) observeData(logger *zap.Logger, data gjson.Result, nativeSeq u
337337
}
338338

339339
aptosMessagesConfirmed.WithLabelValues(e.networkID).Inc()
340+
if isReobservation {
341+
watchers.ReobservationsByChain.WithLabelValues(e.chainID.String(), "std").Inc()
342+
}
340343

341344
logger.Info("message observed",
342345
zap.String("txHash", observation.TxIDString()),

node/pkg/watchers/cosmwasm/watcher.go

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212

1313
"github.com/certusone/wormhole/node/pkg/p2p"
1414
gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1"
15+
"github.com/certusone/wormhole/node/pkg/watchers"
1516
"github.com/prometheus/client_golang/prometheus/promauto"
1617

1718
"github.com/prometheus/client_golang/prometheus"
@@ -303,6 +304,7 @@ func (e *Watcher) Run(ctx context.Context) error {
303304
msg.IsReobservation = true
304305
e.msgC <- msg
305306
messagesConfirmed.WithLabelValues(networkName).Inc()
307+
watchers.ReobservationsByChain.WithLabelValues(networkName, "std").Inc()
306308
}
307309
}
308310
}

node/pkg/watchers/evm/watcher.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"sync/atomic"
1313
"time"
1414

15+
"github.com/certusone/wormhole/node/pkg/watchers"
1516
"github.com/certusone/wormhole/node/pkg/watchers/evm/connectors"
1617
"github.com/certusone/wormhole/node/pkg/watchers/evm/connectors/ethabi"
1718
"github.com/certusone/wormhole/node/pkg/watchers/interfaces"
@@ -620,8 +621,6 @@ func (w *Watcher) Run(parentCtx context.Context) error {
620621
zap.String("txHash", txHash.String()),
621622
zap.Error(pubErr),
622623
)
623-
} else {
624-
ethMessagesConfirmed.WithLabelValues(w.networkName).Inc()
625624
}
626625
}
627626
}
@@ -812,8 +811,6 @@ func (w *Watcher) postMessage(
812811
zap.String("txHash", msg.TxIDString()),
813812
zap.Error(pubErr),
814813
)
815-
} else {
816-
ethMessagesConfirmed.WithLabelValues(w.networkName).Inc()
817814
}
818815
return
819816
}
@@ -888,6 +885,10 @@ func (w *Watcher) verifyAndPublish(
888885
}
889886

890887
w.msgC <- msg
888+
ethMessagesConfirmed.WithLabelValues(w.networkName).Inc()
889+
if msg.IsReobservation {
890+
watchers.ReobservationsByChain.WithLabelValues(w.chainID.String(), "std").Inc()
891+
}
891892
return nil
892893

893894
}

node/pkg/watchers/ibc/watcher.go

+4
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"github.com/certusone/wormhole/node/pkg/p2p"
1919
"github.com/certusone/wormhole/node/pkg/readiness"
2020
"github.com/certusone/wormhole/node/pkg/supervisor"
21+
"github.com/certusone/wormhole/node/pkg/watchers"
2122
"github.com/certusone/wormhole/node/pkg/watchers/cosmwasm"
2223
"github.com/wormhole-foundation/wormhole/sdk/vaa"
2324

@@ -673,6 +674,9 @@ func (w *Watcher) processIbcReceivePublishEvent(evt *ibcReceivePublishEvent, obs
673674

674675
ce.msgC <- evt.Msg
675676
messagesConfirmed.WithLabelValues(ce.chainName).Inc()
677+
if evt.Msg.IsReobservation {
678+
watchers.ReobservationsByChain.WithLabelValues(evt.Msg.EmitterChain.String(), "std").Inc()
679+
}
676680
return nil
677681
}
678682

node/pkg/watchers/near/tx_processing.go

+5
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"time"
1313

1414
"github.com/certusone/wormhole/node/pkg/common"
15+
"github.com/certusone/wormhole/node/pkg/watchers"
1516
"github.com/certusone/wormhole/node/pkg/watchers/near/nearapi"
1617
eth_common "github.com/ethereum/go-ethereum/common"
1718
"github.com/mr-tron/base58"
@@ -246,6 +247,10 @@ func (e *Watcher) processWormholeLog(logger *zap.Logger, _ context.Context, job
246247
IsReobservation: job.isReobservation,
247248
}
248249

250+
if job.isReobservation {
251+
watchers.ReobservationsByChain.WithLabelValues("near", "std").Inc()
252+
}
253+
249254
// tell everyone about it
250255
job.hasWormholeMsg = true
251256

node/pkg/watchers/solana/client.go

+4
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"github.com/certusone/wormhole/node/pkg/query"
1919
"github.com/certusone/wormhole/node/pkg/readiness"
2020
"github.com/certusone/wormhole/node/pkg/supervisor"
21+
"github.com/certusone/wormhole/node/pkg/watchers"
2122
eth_common "github.com/ethereum/go-ethereum/common"
2223
"github.com/gagliardetto/solana-go"
2324
lookup "github.com/gagliardetto/solana-go/programs/address-lookup-table"
@@ -1062,6 +1063,9 @@ func (s *SolanaWatcher) processMessageAccount(logger *zap.Logger, data []byte, a
10621063
}
10631064

10641065
solanaMessagesConfirmed.WithLabelValues(s.networkName).Inc()
1066+
if isReobservation {
1067+
watchers.ReobservationsByChain.WithLabelValues(s.chainID.String(), "std").Inc()
1068+
}
10651069

10661070
if logger.Level().Enabled(s.msgObservedLogLevel) {
10671071
logger.Log(s.msgObservedLogLevel, "message observed",

node/pkg/watchers/solana/shim.go

+4
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
"time"
3535

3636
"github.com/certusone/wormhole/node/pkg/common"
37+
"github.com/certusone/wormhole/node/pkg/watchers"
3738
"github.com/gagliardetto/solana-go"
3839
"github.com/gagliardetto/solana-go/rpc"
3940
"github.com/near/borsh-go"
@@ -365,6 +366,9 @@ func (s *SolanaWatcher) shimProcessRest(
365366
}
366367

367368
solanaMessagesConfirmed.WithLabelValues(s.networkName).Inc()
369+
if isReobservation {
370+
watchers.ReobservationsByChain.WithLabelValues(s.chainID.String(), "shim").Inc()
371+
}
368372

369373
if logger.Level().Enabled(s.msgObservedLogLevel) {
370374
logger.Log(s.msgObservedLogLevel, "message observed from shim",

node/pkg/watchers/sui/watcher.go

+4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1"
1818
"github.com/certusone/wormhole/node/pkg/readiness"
1919
"github.com/certusone/wormhole/node/pkg/supervisor"
20+
"github.com/certusone/wormhole/node/pkg/watchers"
2021

2122
eth_common "github.com/ethereum/go-ethereum/common"
2223
"github.com/prometheus/client_golang/prometheus"
@@ -274,6 +275,9 @@ func (e *Watcher) inspectBody(logger *zap.Logger, body SuiResult, isReobservatio
274275
}
275276

276277
suiMessagesConfirmed.Inc()
278+
if isReobservation {
279+
watchers.ReobservationsByChain.WithLabelValues("sui", "std").Inc()
280+
}
277281

278282
logger.Info("message observed",
279283
zap.String("txHash", observation.TxIDString()),

node/pkg/watchers/watchers.go

+10
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"github.com/certusone/wormhole/node/pkg/query"
77
"github.com/certusone/wormhole/node/pkg/supervisor"
88
"github.com/certusone/wormhole/node/pkg/watchers/interfaces"
9+
"github.com/prometheus/client_golang/prometheus"
10+
"github.com/prometheus/client_golang/prometheus/promauto"
911
"github.com/wormhole-foundation/wormhole/sdk/vaa"
1012
)
1113

@@ -27,3 +29,11 @@ type WatcherConfig interface {
2729
env common.Environment,
2830
) (interfaces.L1Finalizer, supervisor.Runnable, interfaces.Reobserver, error)
2931
}
32+
33+
var (
34+
ReobservationsByChain = promauto.NewCounterVec(
35+
prometheus.CounterOpts{
36+
Name: "wormhole_reobservations_by_chain",
37+
Help: "Total number of reobservations completed by chain and observation type",
38+
}, []string{"chain", "type"})
39+
)

0 commit comments

Comments
 (0)