Skip to content

Commit 7e44f56

Browse files
nits
1 parent e512537 commit 7e44f56

39 files changed

Lines changed: 524 additions & 558 deletions

File tree

broadcast/src/buffered/metrics.rs

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ impl SequencerLabel {
2222
}
2323

2424
/// Metrics for the [super::Engine]
25-
#[derive(Default)]
2625
pub struct Metrics {
2726
/// Number of broadcasts received by peer
2827
pub peer: Family<SequencerLabel, Counter>,
@@ -40,32 +39,32 @@ pub struct Metrics {
4039
impl Metrics {
4140
/// Create and return a new set of metrics, registered with the given context.
4241
pub fn init<E: RuntimeMetrics>(context: &E) -> Self {
43-
let metrics = Self::default();
44-
context.register(
45-
"peer",
46-
"Number of broadcasts received by peer",
47-
metrics.peer.clone(),
48-
);
49-
context.register(
50-
"receive",
51-
"Number of received messages by status",
52-
metrics.receive.clone(),
53-
);
54-
context.register(
55-
"subscribe",
56-
"Number of `subscribe` requests by status",
57-
metrics.subscribe.clone(),
58-
);
59-
context.register(
60-
"get",
61-
"Number of `get` requests by status",
62-
metrics.get.clone(),
63-
);
64-
context.register(
65-
"waiters",
66-
"Number of digests being awaited",
67-
metrics.waiters.clone(),
68-
);
69-
metrics
42+
Self {
43+
peer: context.register(
44+
"peer",
45+
"Number of broadcasts received by peer",
46+
Family::default(),
47+
),
48+
receive: context.register(
49+
"receive",
50+
"Number of received messages by status",
51+
status::Counter::default(),
52+
),
53+
subscribe: context.register(
54+
"subscribe",
55+
"Number of `subscribe` requests by status",
56+
status::Counter::default(),
57+
),
58+
get: context.register(
59+
"get",
60+
"Number of `get` requests by status",
61+
status::Counter::default(),
62+
),
63+
waiters: context.register(
64+
"waiters",
65+
"Number of digests being awaited",
66+
Gauge::default(),
67+
),
68+
}
7069
}
7170
}

collector/src/p2p/engine.rs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,10 @@ where
7474
let mailbox: Mailbox<P, Rq> = Mailbox::new(tx);
7575

7676
// Create metrics
77-
let outstanding = Gauge::default();
78-
let requests = Counter::default();
79-
let responses = Counter::default();
80-
context.register(
81-
"outstanding",
82-
"outstanding commitments",
83-
outstanding.clone(),
84-
);
85-
context.register("requests", "processed requests", requests.clone());
86-
context.register("responses", "sent responses", responses.clone());
77+
let outstanding =
78+
context.register("outstanding", "outstanding commitments", Gauge::default());
79+
let requests = context.register("requests", "processed requests", Counter::default());
80+
let responses = context.register("responses", "sent responses", Counter::default());
8781

8882
(
8983
Self {

consensus/src/aggregation/metrics.rs

Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -21,44 +21,37 @@ pub struct Metrics {
2121
impl Metrics {
2222
/// Create and return a new set of metrics, registered with the given context.
2323
pub fn init<E: RuntimeMetrics>(context: &E) -> Self {
24-
let tip = Gauge::default();
25-
context.register("tip", "Lowest height without a certificate", tip.clone());
26-
let digest = status::Counter::default();
27-
context.register(
28-
"digest",
29-
"Number of digests returned by the automaton by status",
30-
digest.clone(),
31-
);
32-
let acks = status::Counter::default();
33-
context.register(
34-
"acks",
35-
"Number of Ack messages processed by status",
36-
acks.clone(),
37-
);
38-
let certificates = Counter::default();
39-
context.register(
40-
"certificates",
41-
"Number of certificates produced",
42-
certificates.clone(),
43-
);
44-
let rebroadcast = status::Counter::default();
45-
context.register(
24+
let _ = context.register(
4625
"rebroadcast",
4726
"Number of rebroadcast attempts by status",
48-
rebroadcast,
27+
status::Counter::default(),
4928
);
50-
let digest_duration = Histogram::new(histogram::Buckets::LOCAL);
51-
context.register(
29+
let digest_duration = context.register(
5230
"digest_duration",
5331
"Histogram of application digest durations",
54-
digest_duration.clone(),
32+
Histogram::new(histogram::Buckets::LOCAL),
5533
);
56-
5734
Self {
58-
tip,
59-
digest,
60-
acks,
61-
certificates,
35+
tip: context.register(
36+
"tip",
37+
"Lowest height without a certificate",
38+
Gauge::default(),
39+
),
40+
digest: context.register(
41+
"digest",
42+
"Number of digests returned by the automaton by status",
43+
status::Counter::default(),
44+
),
45+
acks: context.register(
46+
"acks",
47+
"Number of Ack messages processed by status",
48+
status::Counter::default(),
49+
),
50+
certificates: context.register(
51+
"certificates",
52+
"Number of certificates produced",
53+
Counter::default(),
54+
),
6255
digest_duration: histogram::Timed::new(digest_duration),
6356
}
6457
}

consensus/src/marshal/coding/marshaled.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -255,35 +255,31 @@ where
255255
} = cfg;
256256

257257
let context = Arc::new(context);
258-
let build_histogram = Histogram::new(Buckets::LOCAL);
259-
context.register(
258+
let build_histogram = context.register(
260259
"build_duration",
261260
"Histogram of time taken for the application to build a new block, in seconds",
262-
build_histogram.clone(),
261+
Histogram::new(Buckets::LOCAL),
263262
);
264263
let build_duration = Timed::new(build_histogram);
265264

266-
let verify_histogram = Histogram::new(Buckets::LOCAL);
267-
context.register(
265+
let verify_histogram = context.register(
268266
"verify_duration",
269267
"Histogram of time taken for the application to verify a block, in seconds",
270-
verify_histogram.clone(),
268+
Histogram::new(Buckets::LOCAL),
271269
);
272270
let verify_duration = Timed::new(verify_histogram);
273271

274-
let parent_fetch_histogram = Histogram::new(Buckets::LOCAL);
275-
context.register(
272+
let parent_fetch_histogram = context.register(
276273
"parent_fetch_duration",
277274
"Histogram of time taken to fetch a parent block in proposal, in seconds",
278-
parent_fetch_histogram.clone(),
275+
Histogram::new(Buckets::LOCAL),
279276
);
280277
let proposal_parent_fetch_duration = Timed::new(parent_fetch_histogram);
281278

282-
let erasure_histogram = Histogram::new(Buckets::LOCAL);
283-
context.register(
279+
let erasure_histogram = context.register(
284280
"erasure_encode_duration",
285281
"Histogram of time taken to erasure encode a block, in seconds",
286-
erasure_histogram.clone(),
282+
Histogram::new(Buckets::LOCAL),
287283
);
288284
let erasure_encode_duration = Timed::new(erasure_histogram);
289285

@@ -573,12 +569,14 @@ where
573569
let parent_fetch_duration = proposal_parent_fetch_duration.start(&runtime_context);
574570
let parent = select! {
575571
_ = tx.closed() => {
572+
parent_fetch_duration.discard();
576573
debug!(reason = "consensus dropped receiver", "skipping proposal");
577574
return;
578575
},
579576
result = parent_request => match result {
580577
Ok(parent) => parent,
581578
Err(_) => {
579+
parent_fetch_duration.observe_now(&runtime_context);
582580
debug!(
583581
?parent_commitment,
584582
reason = "failed to fetch parent block",
@@ -625,12 +623,14 @@ where
625623
let build_duration = build_duration.start(&runtime_context);
626624
let built_block = select! {
627625
_ = tx.closed() => {
626+
build_duration.discard();
628627
debug!(reason = "consensus dropped receiver", "skipping proposal");
629628
return;
630629
},
631630
result = build_request => match result {
632631
Some(block) => block,
633632
None => {
633+
build_duration.observe_now(&runtime_context);
634634
debug!(
635635
?parent_commitment,
636636
reason = "block building failed",

consensus/src/marshal/coding/shards/metrics.rs

Lines changed: 27 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -43,50 +43,38 @@ pub struct ShardMetrics {
4343
impl ShardMetrics {
4444
/// Create and register metrics with the given context.
4545
pub fn new(context: &impl MetricsTrait) -> Self {
46-
let erasure_decode_duration = Histogram::new(Buckets::LOCAL);
47-
let reconstructed_blocks_cache_count = Gauge::default();
48-
let reconstruction_states_count = Gauge::default();
49-
let shards_received = Family::<Peer, Counter>::default();
50-
let blocks_reconstructed_total = Counter::default();
51-
let reconstruction_failures_total = Counter::default();
52-
context.register(
46+
let erasure_decode_duration = context.register(
5347
"erasure_decode_duration",
5448
"Histogram of erasure decoding duration in seconds",
55-
erasure_decode_duration.clone(),
49+
Histogram::new(Buckets::LOCAL),
5650
);
57-
context.register(
58-
"reconstructed_blocks_cache_count",
59-
"Number of blocks in the reconstructed blocks cache",
60-
reconstructed_blocks_cache_count.clone(),
61-
);
62-
context.register(
63-
"reconstruction_states_count",
64-
"Number of active reconstruction states",
65-
reconstruction_states_count.clone(),
66-
);
67-
context.register(
68-
"shards_received",
69-
"Number of shards received per peer",
70-
shards_received.clone(),
71-
);
72-
context.register(
73-
"blocks_reconstructed_total",
74-
"Total number of blocks successfully reconstructed",
75-
blocks_reconstructed_total.clone(),
76-
);
77-
context.register(
78-
"reconstruction_failures_total",
79-
"Total number of block reconstruction failures",
80-
reconstruction_failures_total.clone(),
81-
);
82-
8351
Self {
8452
erasure_decode_duration: histogram::Timed::new(erasure_decode_duration),
85-
reconstructed_blocks_cache_count,
86-
reconstruction_states_count,
87-
shards_received,
88-
blocks_reconstructed_total,
89-
reconstruction_failures_total,
53+
reconstructed_blocks_cache_count: context.register(
54+
"reconstructed_blocks_cache_count",
55+
"Number of blocks in the reconstructed blocks cache",
56+
Gauge::default(),
57+
),
58+
reconstruction_states_count: context.register(
59+
"reconstruction_states_count",
60+
"Number of active reconstruction states",
61+
Gauge::default(),
62+
),
63+
shards_received: context.register(
64+
"shards_received",
65+
"Number of shards received per peer",
66+
Family::<Peer, Counter>::default(),
67+
),
68+
blocks_reconstructed_total: context.register(
69+
"blocks_reconstructed_total",
70+
"Total number of blocks successfully reconstructed",
71+
Counter::default(),
72+
),
73+
reconstruction_failures_total: context.register(
74+
"reconstruction_failures_total",
75+
"Total number of block reconstruction failures",
76+
Counter::default(),
77+
),
9078
}
9179
}
9280
}

consensus/src/marshal/core/actor.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -317,17 +317,15 @@ where
317317
.unwrap_or(Height::zero());
318318

319319
// Create metrics
320-
let finalized_height = Gauge::default();
321-
context.register(
320+
let finalized_height = context.register(
322321
"finalized_height",
323322
"Finalized height of application",
324-
finalized_height.clone(),
323+
Gauge::default(),
325324
);
326-
let processed_height = Gauge::default();
327-
context.register(
325+
let processed_height = context.register(
328326
"processed_height",
329327
"Processed height of application",
330-
processed_height.clone(),
328+
Gauge::default(),
331329
);
332330
let _ = processed_height.try_set(last_processed_height.get());
333331

consensus/src/marshal/standard/deferred.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,10 @@ where
190190
use prometheus_client::metrics::histogram::Histogram;
191191

192192
let context = Arc::new(context);
193-
let build_histogram = Histogram::new(Buckets::LOCAL);
194-
context.register(
193+
let build_histogram = context.register(
195194
"build_duration",
196195
"Histogram of time taken for the application to build a new block, in seconds",
197-
build_histogram.clone(),
196+
Histogram::new(Buckets::LOCAL),
198197
);
199198
let build_duration = Timed::new(build_histogram);
200199

@@ -396,12 +395,14 @@ where
396395
let build_duration = build_duration.start(&runtime_context);
397396
let built_block = select! {
398397
_ = tx.closed() => {
398+
build_duration.discard();
399399
debug!(reason = "consensus dropped receiver", "skipping proposal");
400400
return;
401401
},
402402
result = build_request => match result {
403403
Some(block) => block,
404404
None => {
405+
build_duration.observe_now(&runtime_context);
405406
debug!(
406407
?parent_digest,
407408
reason = "block building failed",

consensus/src/marshal/standard/inline.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,10 @@ where
186186
/// the shared "last built block" cache used by [`Relay::broadcast`].
187187
pub fn new(context: E, application: A, marshal: Mailbox<S, Standard<B>>, epocher: ES) -> Self {
188188
let context = Arc::new(context);
189-
let build_histogram = Histogram::new(Buckets::LOCAL);
190-
context.register(
189+
let build_histogram = context.register(
191190
"build_duration",
192191
"Histogram of time taken for the application to build a new block, in seconds",
193-
build_histogram.clone(),
192+
Histogram::new(Buckets::LOCAL),
194193
);
195194
let build_duration = Timed::new(build_histogram);
196195

@@ -325,12 +324,14 @@ where
325324
let build_duration = build_duration.start(&runtime_context);
326325
let built_block = select! {
327326
_ = tx.closed() => {
327+
build_duration.discard();
328328
debug!(reason = "consensus dropped receiver", "skipping proposal");
329329
return;
330330
},
331331
result = build_request => match result {
332332
Some(block) => block,
333333
None => {
334+
build_duration.observe_now(&runtime_context);
334335
debug!(
335336
?parent_digest,
336337
reason = "block building failed",

0 commit comments

Comments
 (0)