Skip to content

Commit bd055af

Browse files
committed
Add NodeClientVersion
1 parent e13c3bb commit bd055af

3 files changed

Lines changed: 44 additions & 23 deletions

File tree

metrics/logpoller.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,22 +82,22 @@ type logPollerMetrics struct {
8282
}
8383

8484
func NewGenericLogPollerMetrics(chainID string, chainFamily string) (GenericLogPollerMetrics, error) {
85-
queryDuration, err := beholder.GetMeter().Float64Histogram("beholder_log_poller_query_duration")
85+
queryDuration, err := beholder.GetMeter().Float64Histogram("log_poller_query_duration")
8686
if err != nil {
8787
return nil, fmt.Errorf("failed to register logpoller query duration metric: %w", err)
8888
}
8989

90-
queryDatasetSize, err := beholder.GetMeter().Int64Gauge("beholder_log_poller_query_dataset_size")
90+
queryDatasetSize, err := beholder.GetMeter().Int64Gauge("log_poller_query_dataset_size")
9191
if err != nil {
9292
return nil, fmt.Errorf("failed to register query dataset size metric: %w", err)
9393
}
9494

95-
logsInserted, err := beholder.GetMeter().Int64Counter("beholder_log_poller_logs_inserted")
95+
logsInserted, err := beholder.GetMeter().Int64Counter("log_poller_logs_inserted")
9696
if err != nil {
9797
return nil, fmt.Errorf("failed to register logs inserted metric: %w", err)
9898
}
9999

100-
blocksInserted, err := beholder.GetMeter().Int64Counter("beholder_log_poller_blocks_inserted")
100+
blocksInserted, err := beholder.GetMeter().Int64Counter("log_poller_blocks_inserted")
101101
if err != nil {
102102
return nil, fmt.Errorf("failed to register blocks inserted metric: %w", err)
103103
}

metrics/multinode.go

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ var (
2020
}, []string{"network", "chainId", "state"})
2121

2222
// Node Verification
23+
promNodeClientVersion = promauto.NewGaugeVec(prometheus.GaugeOpts{
24+
Name: "pool_rpc_node_client_version",
25+
Help: "Tracks node RPC client versions",
26+
}, []string{"network", "chainID", "nodeName", "version"})
2327
promPoolRPCNodeVerifies = promauto.NewCounterVec(prometheus.CounterOpts{
2428
Name: "pool_rpc_node_verifies",
2529
Help: "The total number of chain ID verifications for the given RPC node",
@@ -72,6 +76,7 @@ var (
7276

7377
type GenericMultiNodeMetrics interface {
7478
RecordNodeStates(ctx context.Context, state string, count int64)
79+
RecordNodeClientVersion(ctx context.Context, nodeName string, version string)
7580
IncrementNodeVerifies(ctx context.Context, nodeName string)
7681
IncrementNodeVerifiesFailed(ctx context.Context, nodeName string)
7782
IncrementNodeVerifiesSuccess(ctx context.Context, nodeName string)
@@ -91,6 +96,7 @@ type multiNodeMetrics struct {
9196
network string
9297
chainID string
9398
nodeStates metric.Int64Gauge
99+
nodeClientVersion metric.Int64Gauge
94100
nodeVerifies metric.Int64Counter
95101
nodeVerifiesFailed metric.Int64Counter
96102
nodeVerifiesSuccess metric.Int64Counter
@@ -105,62 +111,67 @@ type multiNodeMetrics struct {
105111
}
106112

107113
func NewGenericMultiNodeMetrics(network string, chainID string) (GenericMultiNodeMetrics, error) {
108-
nodeStates, err := beholder.GetMeter().Int64Gauge("beholder_multi_node_states")
114+
nodeStates, err := beholder.GetMeter().Int64Gauge("multi_node_states")
109115
if err != nil {
110116
return nil, fmt.Errorf("failed to register multinode states metric: %w", err)
111117
}
112118

113-
nodeVerifies, err := beholder.GetMeter().Int64Counter("beholder_pool_rpc_node_verifies")
119+
nodeClientVersion, err := beholder.GetMeter().Int64Gauge("pool_rpc_node_client_version")
120+
if err != nil {
121+
return nil, fmt.Errorf("failed to register client version metric: %w", err)
122+
}
123+
124+
nodeVerifies, err := beholder.GetMeter().Int64Counter("pool_rpc_node_verifies")
114125
if err != nil {
115126
return nil, fmt.Errorf("failed to register node verifies metric: %w", err)
116127
}
117128

118-
nodeVerifiesFailed, err := beholder.GetMeter().Int64Counter("beholder_pool_rpc_node_verifies_failed")
129+
nodeVerifiesFailed, err := beholder.GetMeter().Int64Counter("pool_rpc_node_verifies_failed")
119130
if err != nil {
120131
return nil, fmt.Errorf("failed to register node verifies failed metric: %w", err)
121132
}
122133

123-
nodeVerifiesSuccess, err := beholder.GetMeter().Int64Counter("beholder_pool_rpc_node_verifies_success")
134+
nodeVerifiesSuccess, err := beholder.GetMeter().Int64Counter("pool_rpc_node_verifies_success")
124135
if err != nil {
125136
return nil, fmt.Errorf("failed to register node verifies success metric: %w", err)
126137
}
127138

128-
nodeTransitionsToAlive, err := beholder.GetMeter().Int64Counter("beholder_pool_rpc_node_num_transitions_to_alive")
139+
nodeTransitionsToAlive, err := beholder.GetMeter().Int64Counter("pool_rpc_node_num_transitions_to_alive")
129140
if err != nil {
130141
return nil, fmt.Errorf("failed to register node transitions to alive metric: %w", err)
131142
}
132143

133-
nodeTransitionsToInSync, err := beholder.GetMeter().Int64Counter("beholder_pool_rpc_node_num_transitions_to_in_sync")
144+
nodeTransitionsToInSync, err := beholder.GetMeter().Int64Counter("pool_rpc_node_num_transitions_to_in_sync")
134145
if err != nil {
135146
return nil, fmt.Errorf("failed to register node transitions to in sync metric: %w", err)
136147
}
137148

138-
nodeTransitionsToOutOfSync, err := beholder.GetMeter().Int64Counter("beholder_pool_rpc_node_num_transitions_to_out_of_sync")
149+
nodeTransitionsToOutOfSync, err := beholder.GetMeter().Int64Counter("pool_rpc_node_num_transitions_to_out_of_sync")
139150
if err != nil {
140151
return nil, fmt.Errorf("failed to register node transitions to out of sync metric: %w", err)
141152
}
142153

143-
nodeTransitionsToUnreachable, err := beholder.GetMeter().Int64Counter("beholder_pool_rpc_node_num_transitions_to_unreachable")
154+
nodeTransitionsToUnreachable, err := beholder.GetMeter().Int64Counter("pool_rpc_node_num_transitions_to_unreachable")
144155
if err != nil {
145156
return nil, fmt.Errorf("failed to register node transitions to unreachable metric: %w", err)
146157
}
147158

148-
nodeTransitionsToInvalidChainID, err := beholder.GetMeter().Int64Counter("beholder_pool_rpc_node_num_transitions_to_invalid_chain_id")
159+
nodeTransitionsToInvalidChainID, err := beholder.GetMeter().Int64Counter("pool_rpc_node_num_transitions_to_invalid_chain_id")
149160
if err != nil {
150161
return nil, fmt.Errorf("failed to register node transitions to invalid chain id metric: %w", err)
151162
}
152163

153-
nodeTransitionsToUnusable, err := beholder.GetMeter().Int64Counter("beholder_pool_rpc_node_num_transitions_to_unusable")
164+
nodeTransitionsToUnusable, err := beholder.GetMeter().Int64Counter("pool_rpc_node_num_transitions_to_unusable")
154165
if err != nil {
155166
return nil, fmt.Errorf("failed to register node transitions to unusable metric: %w", err)
156167
}
157168

158-
nodeTransitionsToSyncing, err := beholder.GetMeter().Int64Counter("beholder_pool_rpc_node_num_transitions_to_syncing")
169+
nodeTransitionsToSyncing, err := beholder.GetMeter().Int64Counter("pool_rpc_node_num_transitions_to_syncing")
159170
if err != nil {
160171
return nil, fmt.Errorf("failed to register node transitions to syncing metric: %w", err)
161172
}
162173

163-
invariantViolations, err := beholder.GetMeter().Int64Counter("beholder_multi_node_invariant_violations")
174+
invariantViolations, err := beholder.GetMeter().Int64Counter("multi_node_invariant_violations")
164175
if err != nil {
165176
return nil, fmt.Errorf("failed to register invariant violations metric: %w", err)
166177
}
@@ -169,6 +180,7 @@ func NewGenericMultiNodeMetrics(network string, chainID string) (GenericMultiNod
169180
network: network,
170181
chainID: chainID,
171182
nodeStates: nodeStates,
183+
nodeClientVersion: nodeClientVersion,
172184
nodeVerifies: nodeVerifies,
173185
nodeVerifiesFailed: nodeVerifiesFailed,
174186
nodeVerifiesSuccess: nodeVerifiesSuccess,
@@ -191,6 +203,15 @@ func (m *multiNodeMetrics) RecordNodeStates(ctx context.Context, state string, c
191203
attribute.String("state", state)))
192204
}
193205

206+
func (m *multiNodeMetrics) RecordNodeClientVersion(ctx context.Context, nodeName string, version string) {
207+
promNodeClientVersion.WithLabelValues(m.network, m.chainID, nodeName, version).Set(1)
208+
m.nodeClientVersion.Record(ctx, 1, metric.WithAttributes(
209+
attribute.String("network", m.network),
210+
attribute.String("chainID", m.chainID),
211+
attribute.String("nodeName", nodeName),
212+
attribute.String("version", version)))
213+
}
214+
194215
func (m *multiNodeMetrics) IncrementNodeVerifies(ctx context.Context, nodeName string) {
195216
promPoolRPCNodeVerifies.WithLabelValues(m.network, m.chainID, nodeName).Inc()
196217
m.nodeVerifies.Add(ctx, 1, metric.WithAttributes(

metrics/txm.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,37 +95,37 @@ type txmMetrics struct {
9595
}
9696

9797
func NewGenericTxmMetrics(chainID string) (GenericTXMMetrics, error) {
98-
numBroadcastedTxs, err := beholder.GetMeter().Int64Counter("beholder_tx_manager_num_broadcasted")
98+
numBroadcastedTxs, err := beholder.GetMeter().Int64Counter("tx_manager_num_broadcasted")
9999
if err != nil {
100100
return nil, fmt.Errorf("failed to register broadcasted txs number metric: %w", err)
101101
}
102102

103-
timeUntilBroadcast, err := beholder.GetMeter().Float64Histogram("beholder_tx_manager_time_until_tx_broadcast")
103+
timeUntilBroadcast, err := beholder.GetMeter().Float64Histogram("tx_manager_time_until_tx_broadcast")
104104
if err != nil {
105105
return nil, fmt.Errorf("failed to register time until broadcast metric: %w", err)
106106
}
107107

108-
numGasBumps, err := beholder.GetMeter().Int64Counter("beholder_tx_manager_num_gas_bumps")
108+
numGasBumps, err := beholder.GetMeter().Int64Counter("tx_manager_num_gas_bumps")
109109
if err != nil {
110110
return nil, fmt.Errorf("failed to register number of gas bumps metric: %w", err)
111111
}
112112

113-
gasBumpExceedsLimit, err := beholder.GetMeter().Int64Counter("beholder_tx_manager_gas_bump_exceeds_limit")
113+
gasBumpExceedsLimit, err := beholder.GetMeter().Int64Counter("tx_manager_gas_bump_exceeds_limit")
114114
if err != nil {
115115
return nil, fmt.Errorf("failed to register gas bump exceeds limit metric: %w", err)
116116
}
117117

118-
numConfirmedTxs, err := beholder.GetMeter().Int64Counter("beholder_tx_manager_num_confirmed_transactions")
118+
numConfirmedTxs, err := beholder.GetMeter().Int64Counter("tx_manager_num_confirmed_transactions")
119119
if err != nil {
120120
return nil, fmt.Errorf("failed to register confirmed txs number metric: %w", err)
121121
}
122122

123-
timeUntilTxConfirmed, err := beholder.GetMeter().Float64Histogram("beholder_tx_manager_time_until_tx_confirmed")
123+
timeUntilTxConfirmed, err := beholder.GetMeter().Float64Histogram("tx_manager_time_until_tx_confirmed")
124124
if err != nil {
125125
return nil, fmt.Errorf("failed to register time until tx confirmed metric: %w", err)
126126
}
127127

128-
blocksUntilTxConfirmed, err := beholder.GetMeter().Float64Histogram("beholder_tx_manager_blocks_until_tx_confirmed")
128+
blocksUntilTxConfirmed, err := beholder.GetMeter().Float64Histogram("tx_manager_blocks_until_tx_confirmed")
129129
if err != nil {
130130
return nil, fmt.Errorf("failed to register blocks until tx confirmed metric: %w", err)
131131
}

0 commit comments

Comments
 (0)