Skip to content

Commit ffc898a

Browse files
committed
clean-up
1 parent 4138425 commit ffc898a

File tree

3 files changed

+21
-393
lines changed

3 files changed

+21
-393
lines changed

block/internal/common/metrics.go

Lines changed: 12 additions & 250 deletions
Original file line numberDiff line numberDiff line change
@@ -49,54 +49,22 @@ type Metrics struct {
4949
BlockSizeBytes metrics.Gauge // Size of the latest block
5050
TotalTxs metrics.Gauge // Total number of transactions
5151
CommittedHeight metrics.Gauge `metrics_name:"latest_block_height"` // The latest block height
52-
53-
// Channel metrics
54-
ChannelBufferUsage map[string]metrics.Gauge
55-
DroppedSignals metrics.Counter
56-
57-
// Error metrics
58-
ErrorsByType map[string]metrics.Counter
59-
RecoverableErrors metrics.Counter
60-
NonRecoverableErrors metrics.Counter
52+
TxsPerBlock metrics.Histogram
6153

6254
// Performance metrics
6355
OperationDuration map[string]metrics.Histogram
64-
GoroutineCount metrics.Gauge
6556

6657
// DA metrics
67-
DASubmissionAttempts metrics.Counter
68-
DASubmissionSuccesses metrics.Counter
69-
DASubmissionFailures metrics.Counter
70-
DARetrievalAttempts metrics.Counter
71-
DARetrievalSuccesses metrics.Counter
72-
DARetrievalFailures metrics.Counter
73-
DAInclusionHeight metrics.Gauge
74-
PendingHeadersCount metrics.Gauge
75-
PendingDataCount metrics.Gauge
76-
77-
// Sync metrics
78-
SyncLag metrics.Gauge
79-
HeadersSynced metrics.Counter
80-
DataSynced metrics.Counter
81-
BlocksApplied metrics.Counter
82-
InvalidHeadersCount metrics.Counter
83-
84-
// Block production metrics
85-
BlockProductionTime metrics.Histogram
86-
EmptyBlocksProduced metrics.Counter
87-
LazyBlocksProduced metrics.Counter
88-
NormalBlocksProduced metrics.Counter
89-
TxsPerBlock metrics.Histogram
90-
91-
// State transition metrics
92-
StateTransitions map[string]metrics.Counter
93-
InvalidTransitions metrics.Counter
94-
95-
// DA Submitter metrics
9658
DASubmitterFailures map[DASubmitterFailureReason]metrics.Counter // Counter with reason label
9759
DASubmitterLastFailure map[DASubmitterFailureReason]metrics.Gauge // Timestamp gauge with reason label
9860
DASubmitterPendingBlobs metrics.Gauge // Total number of blobs awaiting submission (backlog)
9961
DASubmitterResends metrics.Counter // Number of resend attempts
62+
DARetrievalAttempts metrics.Counter
63+
DARetrievalSuccesses metrics.Counter
64+
DARetrievalFailures metrics.Counter
65+
DAInclusionHeight metrics.Gauge
66+
PendingHeadersCount metrics.Gauge
67+
PendingDataCount metrics.Gauge
10068
}
10169

10270
// PrometheusMetrics returns Metrics built using Prometheus client library
@@ -107,10 +75,7 @@ func PrometheusMetrics(namespace string, labelsAndValues ...string) *Metrics {
10775
}
10876

10977
m := &Metrics{
110-
ChannelBufferUsage: make(map[string]metrics.Gauge),
111-
ErrorsByType: make(map[string]metrics.Counter),
11278
OperationDuration: make(map[string]metrics.Histogram),
113-
StateTransitions: make(map[string]metrics.Counter),
11479
DASubmitterFailures: make(map[DASubmitterFailureReason]metrics.Counter),
11580
DASubmitterLastFailure: make(map[DASubmitterFailureReason]metrics.Gauge),
11681
}
@@ -151,63 +116,12 @@ func PrometheusMetrics(namespace string, labelsAndValues ...string) *Metrics {
151116
Help: "The latest block height.",
152117
}, labels).With(labelsAndValues...)
153118

154-
// Channel metrics
155-
m.DroppedSignals = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
156-
Namespace: namespace,
157-
Subsystem: MetricsSubsystem,
158-
Name: "dropped_signals_total",
159-
Help: "Total number of dropped channel signals",
160-
}, labels).With(labelsAndValues...)
161-
162-
// Initialize channel buffer usage gauges
163-
channelNames := []string{"height_in", "header_store", "data_store", "retrieve", "da_includer", "tx_notify"}
164-
for _, name := range channelNames {
165-
m.ChannelBufferUsage[name] = prometheus.NewGaugeFrom(stdprometheus.GaugeOpts{
166-
Namespace: namespace,
167-
Subsystem: MetricsSubsystem,
168-
Name: "channel_buffer_usage",
169-
Help: "Current buffer usage of channels",
170-
ConstLabels: map[string]string{
171-
"channel": name,
172-
},
173-
}, labels).With(labelsAndValues...)
174-
}
175-
176-
// Error metrics
177-
m.RecoverableErrors = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
178-
Namespace: namespace,
179-
Subsystem: MetricsSubsystem,
180-
Name: "recoverable_errors_total",
181-
Help: "Total number of recoverable errors",
182-
}, labels).With(labelsAndValues...)
183-
184-
m.NonRecoverableErrors = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
185-
Namespace: namespace,
186-
Subsystem: MetricsSubsystem,
187-
Name: "non_recoverable_errors_total",
188-
Help: "Total number of non-recoverable errors",
189-
}, labels).With(labelsAndValues...)
190-
191-
// Initialize error type counters
192-
errorTypes := []string{"block_production", "da_submission", "sync", "validation", "state_update"}
193-
for _, errType := range errorTypes {
194-
m.ErrorsByType[errType] = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
195-
Namespace: namespace,
196-
Subsystem: MetricsSubsystem,
197-
Name: "errors_by_type_total",
198-
Help: "Total number of errors by type",
199-
ConstLabels: map[string]string{
200-
"error_type": errType,
201-
},
202-
}, labels).With(labelsAndValues...)
203-
}
204-
205-
// Performance metrics
206-
m.GoroutineCount = prometheus.NewGaugeFrom(stdprometheus.GaugeOpts{
119+
m.TxsPerBlock = prometheus.NewHistogramFrom(stdprometheus.HistogramOpts{
207120
Namespace: namespace,
208121
Subsystem: MetricsSubsystem,
209-
Name: "goroutines_count",
210-
Help: "Current number of goroutines",
122+
Name: "txs_per_block",
123+
Help: "Number of transactions per block",
124+
Buckets: []float64{0, 1, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000},
211125
}, labels).With(labelsAndValues...)
212126

213127
// Initialize operation duration histograms
@@ -226,27 +140,6 @@ func PrometheusMetrics(namespace string, labelsAndValues ...string) *Metrics {
226140
}
227141

228142
// DA metrics
229-
m.DASubmissionAttempts = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
230-
Namespace: namespace,
231-
Subsystem: MetricsSubsystem,
232-
Name: "da_submission_attempts_total",
233-
Help: "Total number of DA submission attempts",
234-
}, labels).With(labelsAndValues...)
235-
236-
m.DASubmissionSuccesses = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
237-
Namespace: namespace,
238-
Subsystem: MetricsSubsystem,
239-
Name: "da_submission_successes_total",
240-
Help: "Total number of successful DA submissions",
241-
}, labels).With(labelsAndValues...)
242-
243-
m.DASubmissionFailures = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
244-
Namespace: namespace,
245-
Subsystem: MetricsSubsystem,
246-
Name: "da_submission_failures_total",
247-
Help: "Total number of failed DA submissions",
248-
}, labels).With(labelsAndValues...)
249-
250143
m.DARetrievalAttempts = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
251144
Namespace: namespace,
252145
Subsystem: MetricsSubsystem,
@@ -289,102 +182,6 @@ func PrometheusMetrics(namespace string, labelsAndValues ...string) *Metrics {
289182
Help: "Number of data blocks pending DA submission",
290183
}, labels).With(labelsAndValues...)
291184

292-
// Sync metrics
293-
m.SyncLag = prometheus.NewGaugeFrom(stdprometheus.GaugeOpts{
294-
Namespace: namespace,
295-
Subsystem: MetricsSubsystem,
296-
Name: "sync_lag_blocks",
297-
Help: "Number of blocks behind the head",
298-
}, labels).With(labelsAndValues...)
299-
300-
m.HeadersSynced = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
301-
Namespace: namespace,
302-
Subsystem: MetricsSubsystem,
303-
Name: "headers_synced_total",
304-
Help: "Total number of headers synced",
305-
}, labels).With(labelsAndValues...)
306-
307-
m.DataSynced = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
308-
Namespace: namespace,
309-
Subsystem: MetricsSubsystem,
310-
Name: "data_synced_total",
311-
Help: "Total number of data blocks synced",
312-
}, labels).With(labelsAndValues...)
313-
314-
m.BlocksApplied = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
315-
Namespace: namespace,
316-
Subsystem: MetricsSubsystem,
317-
Name: "blocks_applied_total",
318-
Help: "Total number of blocks applied to state",
319-
}, labels).With(labelsAndValues...)
320-
321-
m.InvalidHeadersCount = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
322-
Namespace: namespace,
323-
Subsystem: MetricsSubsystem,
324-
Name: "invalid_headers_total",
325-
Help: "Total number of invalid headers rejected",
326-
}, labels).With(labelsAndValues...)
327-
328-
// Block production metrics
329-
m.BlockProductionTime = prometheus.NewHistogramFrom(stdprometheus.HistogramOpts{
330-
Namespace: namespace,
331-
Subsystem: MetricsSubsystem,
332-
Name: "block_production_duration_seconds",
333-
Help: "Time taken to produce a block",
334-
Buckets: []float64{.001, .005, .01, .025, .05, .1, .25, .5, 1},
335-
}, labels).With(labelsAndValues...)
336-
337-
m.EmptyBlocksProduced = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
338-
Namespace: namespace,
339-
Subsystem: MetricsSubsystem,
340-
Name: "empty_blocks_produced_total",
341-
Help: "Total number of empty blocks produced",
342-
}, labels).With(labelsAndValues...)
343-
344-
m.LazyBlocksProduced = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
345-
Namespace: namespace,
346-
Subsystem: MetricsSubsystem,
347-
Name: "lazy_blocks_produced_total",
348-
Help: "Total number of blocks produced in lazy mode",
349-
}, labels).With(labelsAndValues...)
350-
351-
m.NormalBlocksProduced = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
352-
Namespace: namespace,
353-
Subsystem: MetricsSubsystem,
354-
Name: "normal_blocks_produced_total",
355-
Help: "Total number of blocks produced in normal mode",
356-
}, labels).With(labelsAndValues...)
357-
358-
m.TxsPerBlock = prometheus.NewHistogramFrom(stdprometheus.HistogramOpts{
359-
Namespace: namespace,
360-
Subsystem: MetricsSubsystem,
361-
Name: "txs_per_block",
362-
Help: "Number of transactions per block",
363-
Buckets: []float64{0, 1, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000},
364-
}, labels).With(labelsAndValues...)
365-
366-
// State transition metrics
367-
m.InvalidTransitions = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
368-
Namespace: namespace,
369-
Subsystem: MetricsSubsystem,
370-
Name: "invalid_state_transitions_total",
371-
Help: "Total number of invalid state transitions attempted",
372-
}, labels).With(labelsAndValues...)
373-
374-
// Initialize state transition counters
375-
transitions := []string{"pending_to_submitted", "submitted_to_included", "included_to_finalized"}
376-
for _, transition := range transitions {
377-
m.StateTransitions[transition] = prometheus.NewCounterFrom(stdprometheus.CounterOpts{
378-
Namespace: namespace,
379-
Subsystem: MetricsSubsystem,
380-
Name: "state_transitions_total",
381-
Help: "Total number of state transitions",
382-
ConstLabels: map[string]string{
383-
"transition": transition,
384-
},
385-
}, labels).With(labelsAndValues...)
386-
}
387-
388185
// DA Submitter metrics
389186
m.DASubmitterPendingBlobs = prometheus.NewGaugeFrom(stdprometheus.GaugeOpts{
390187
Namespace: namespace,
@@ -435,63 +232,28 @@ func NopMetrics() *Metrics {
435232
BlockSizeBytes: discard.NewGauge(),
436233
TotalTxs: discard.NewGauge(),
437234
CommittedHeight: discard.NewGauge(),
235+
TxsPerBlock: discard.NewHistogram(),
438236

439237
// Extended metrics
440-
ChannelBufferUsage: make(map[string]metrics.Gauge),
441-
ErrorsByType: make(map[string]metrics.Counter),
442238
OperationDuration: make(map[string]metrics.Histogram),
443-
StateTransitions: make(map[string]metrics.Counter),
444-
DroppedSignals: discard.NewCounter(),
445-
RecoverableErrors: discard.NewCounter(),
446-
NonRecoverableErrors: discard.NewCounter(),
447-
GoroutineCount: discard.NewGauge(),
448-
DASubmissionAttempts: discard.NewCounter(),
449-
DASubmissionSuccesses: discard.NewCounter(),
450-
DASubmissionFailures: discard.NewCounter(),
451239
DARetrievalAttempts: discard.NewCounter(),
452240
DARetrievalSuccesses: discard.NewCounter(),
453241
DARetrievalFailures: discard.NewCounter(),
454242
DAInclusionHeight: discard.NewGauge(),
455243
PendingHeadersCount: discard.NewGauge(),
456244
PendingDataCount: discard.NewGauge(),
457-
SyncLag: discard.NewGauge(),
458-
HeadersSynced: discard.NewCounter(),
459-
DataSynced: discard.NewCounter(),
460-
BlocksApplied: discard.NewCounter(),
461-
InvalidHeadersCount: discard.NewCounter(),
462-
BlockProductionTime: discard.NewHistogram(),
463-
EmptyBlocksProduced: discard.NewCounter(),
464-
LazyBlocksProduced: discard.NewCounter(),
465-
NormalBlocksProduced: discard.NewCounter(),
466-
TxsPerBlock: discard.NewHistogram(),
467-
InvalidTransitions: discard.NewCounter(),
468245
DASubmitterFailures: make(map[DASubmitterFailureReason]metrics.Counter),
469246
DASubmitterLastFailure: make(map[DASubmitterFailureReason]metrics.Gauge),
470247
DASubmitterPendingBlobs: discard.NewGauge(),
471248
DASubmitterResends: discard.NewCounter(),
472249
}
473250

474251
// Initialize maps with no-op metrics
475-
channelNames := []string{"height_in", "header_store", "data_store", "retrieve", "da_includer", "tx_notify"}
476-
for _, name := range channelNames {
477-
m.ChannelBufferUsage[name] = discard.NewGauge()
478-
}
479-
480-
errorTypes := []string{"block_production", "da_submission", "sync", "validation", "state_update"}
481-
for _, errType := range errorTypes {
482-
m.ErrorsByType[errType] = discard.NewCounter()
483-
}
484-
485252
operations := []string{"block_production", "da_submission", "block_retrieval", "block_validation", "state_update"}
486253
for _, op := range operations {
487254
m.OperationDuration[op] = discard.NewHistogram()
488255
}
489256

490-
transitions := []string{"pending_to_submitted", "submitted_to_included", "included_to_finalized"}
491-
for _, transition := range transitions {
492-
m.StateTransitions[transition] = discard.NewCounter()
493-
}
494-
495257
// Initialize DA submitter failure maps with no-op metrics
496258
for _, reason := range AllDASubmitterFailureReasons() {
497259
m.DASubmitterFailures[reason] = discard.NewCounter()

0 commit comments

Comments
 (0)