Skip to content

Commit 1938d80

Browse files
apollo_dashboard: use query_builder increase fn in panels (#9866)
1 parent 8b2e64b commit 1938d80

File tree

8 files changed

+51
-73
lines changed

8 files changed

+51
-73
lines changed

crates/apollo_dashboard/src/dashboard.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ use serde::ser::{SerializeMap, SerializeStruct};
1818
use serde::{Serialize, Serializer};
1919
use serde_with::skip_serializing_none;
2020

21+
use crate::query_builder;
22+
2123
#[cfg(test)]
2224
#[path = "dashboard_test.rs"]
2325
mod dashboard_test;
@@ -311,12 +313,11 @@ impl Panel {
311313
denominator_parts: &[&MetricCounter],
312314
duration: &str,
313315
) -> Self {
314-
let numerator_expr =
315-
format!("increase({}[{}])", numerator.get_name_with_filter(), duration);
316+
let numerator_expr = query_builder::increase(numerator, duration);
316317

317318
let denominator_expr = denominator_parts
318319
.iter()
319-
.map(|m| format!("increase({}[{}])", m.get_name_with_filter(), duration))
320+
.map(|m| query_builder::increase(*m, duration))
320321
.collect::<Vec<_>>()
321322
.join(" + ");
322323

crates/apollo_dashboard/src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,4 @@ pub mod dashboard_definitions;
77
mod metric_definitions_test;
88
mod panels;
99

10-
// TODO(MatanL): Remove cfg(test) when used
11-
#[cfg(test)]
1210
mod query_builder;

crates/apollo_dashboard/src/panels/batcher.rs

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@ use apollo_consensus_orchestrator::metrics::{
1515
use apollo_metrics::MetricCommon;
1616

1717
use crate::dashboard::{Panel, PanelType, Row, Unit};
18+
use crate::query_builder;
1819

1920
fn get_panel_validator_wasted_txs() -> Panel {
2021
Panel::new(
2122
"Proposal Validation: Wasted TXs",
2223
"Number of txs executed by the validator but excluded from the block (10m window)",
23-
format!("increase({}[10m])", VALIDATOR_WASTED_TXS.get_name_with_filter()),
24+
query_builder::increase(&VALIDATOR_WASTED_TXS, "10m"),
2425
PanelType::TimeSeries,
2526
)
2627
.with_log_query("Finished building block as validator. Started executing")
@@ -30,7 +31,7 @@ fn get_panel_proposer_deferred_txs() -> Panel {
3031
Panel::new(
3132
"Proposal Build: Deferred TXs",
3233
"Number of txs started execution by the proposer but excluded from the block (10m window)",
33-
format!("increase({}[10m])", PROPOSER_DEFERRED_TXS.get_name_with_filter()),
34+
query_builder::increase(&PROPOSER_DEFERRED_TXS, "10m"),
3435
PanelType::TimeSeries,
3536
)
3637
.with_log_query("Finished building block as proposer. Started executing")
@@ -47,24 +48,21 @@ fn get_panel_storage_height() -> Panel {
4748
}
4849

4950
fn get_panel_rejection_reverted_ratio() -> Panel {
51+
let rejected_txs_expr = query_builder::increase(&REJECTED_TRANSACTIONS, "10m");
52+
let reverted_txs_expr = query_builder::increase(&REVERTED_TRANSACTIONS, "10m");
53+
5054
let denominator_expr = format!(
51-
"(increase({}[10m]) + increase({}[10m]) + increase({}[10m]))",
52-
REJECTED_TRANSACTIONS.get_name_with_filter(),
53-
REVERTED_TRANSACTIONS.get_name_with_filter(),
54-
BATCHED_TRANSACTIONS.get_name_with_filter(),
55+
"({} + {} + {})",
56+
rejected_txs_expr,
57+
reverted_txs_expr,
58+
query_builder::increase(&BATCHED_TRANSACTIONS, "10m"),
5559
);
5660
Panel::new(
5761
"Rejected / Reverted TXs Ratio",
5862
"Ratio of rejected / reverted transactions out of all processed txs (10m window)",
5963
vec![
60-
format!(
61-
"increase({}[10m]) / {denominator_expr}",
62-
REJECTED_TRANSACTIONS.get_name_with_filter(),
63-
),
64-
format!(
65-
"increase({}[10m]) / {denominator_expr}",
66-
REVERTED_TRANSACTIONS.get_name_with_filter(),
67-
),
64+
format!("{rejected_txs_expr} / {denominator_expr}"),
65+
format!("{reverted_txs_expr} / {denominator_expr}"),
6866
],
6967
PanelType::TimeSeries,
7068
)

crates/apollo_dashboard/src/panels/consensus.rs

Lines changed: 17 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ use apollo_network::network_manager::metrics::{
4646
use apollo_state_sync_metrics::metrics::STATE_SYNC_CLASS_MANAGER_MARKER;
4747

4848
use crate::dashboard::{Panel, PanelType, Row, Unit};
49+
use crate::query_builder;
4950

5051
// The key events that are relevant to the consensus panel.
5152
const CONSENSUS_KEY_EVENTS_LOG_QUERY: &str =
@@ -96,7 +97,7 @@ pub(crate) fn get_panel_consensus_round_advanced() -> Panel {
9697
"Consensus Round Advanced",
9798
"The number of times the consensus round advanced (counter is increased whenever round > \
9899
0) (10m window)",
99-
format!("increase({}[10m])", CONSENSUS_ROUND_ADVANCES.get_name_with_filter()),
100+
query_builder::increase(&CONSENSUS_ROUND_ADVANCES, "10m"),
100101
PanelType::TimeSeries,
101102
)
102103
.with_log_query("\"START_ROUND\" OR \"PROPOSAL_FAILED\" OR textPayload=~\"DECISION_REACHED\"")
@@ -131,10 +132,7 @@ fn get_panel_consensus_decisions_reached_by_consensus() -> Panel {
131132
Panel::new(
132133
"Decisions Reached By Consensus",
133134
"The number of decisions reached by way of consensus (10m window)",
134-
format!(
135-
"increase({}[10m])",
136-
CONSENSUS_DECISIONS_REACHED_BY_CONSENSUS.get_name_with_filter()
137-
),
135+
query_builder::increase(&CONSENSUS_DECISIONS_REACHED_BY_CONSENSUS, "10m"),
138136
PanelType::TimeSeries,
139137
)
140138
.with_log_query("DECISION_REACHED: Decision reached for round")
@@ -145,7 +143,7 @@ fn get_panel_consensus_decisions_reached_by_sync() -> Panel {
145143
Panel::new(
146144
"Decisions Reached By Sync",
147145
"The number of decisions reached by way of sync (10m window)",
148-
format!("increase({}[10m])", CONSENSUS_DECISIONS_REACHED_BY_SYNC.get_name_with_filter()),
146+
query_builder::increase(&CONSENSUS_DECISIONS_REACHED_BY_SYNC, "10m"),
149147
PanelType::TimeSeries,
150148
)
151149
.with_log_query("Decision learned via sync protocol.")
@@ -156,7 +154,7 @@ fn get_panel_consensus_proposals_received() -> Panel {
156154
Panel::new(
157155
"Proposal Validation: Number of Received Proposals",
158156
"The number of proposals received from the network (10m window)",
159-
format!("increase({}[10m])", CONSENSUS_PROPOSALS_RECEIVED.get_name_with_filter()),
157+
query_builder::increase(&CONSENSUS_PROPOSALS_RECEIVED, "10m"),
160158
PanelType::TimeSeries,
161159
)
162160
}
@@ -165,7 +163,7 @@ fn get_panel_consensus_proposals_validated() -> Panel {
165163
Panel::new(
166164
"Proposal Validation: Number of Validated Proposals",
167165
"The number of proposals received and validated successfully (10m window)",
168-
format!("increase({}[10m])", CONSENSUS_PROPOSALS_VALIDATED.get_name_with_filter()),
166+
query_builder::increase(&CONSENSUS_PROPOSALS_VALIDATED, "10m"),
169167
PanelType::TimeSeries,
170168
)
171169
.with_log_query("\"Validated proposal.\" OR \"PROPOSAL_FAILED\"")
@@ -176,7 +174,7 @@ fn get_panel_consensus_proposals_invalid() -> Panel {
176174
Panel::new(
177175
"Proposal Validation: Number of Invalid Proposals",
178176
"The number of proposals received and failed validation (10m window)",
179-
format!("increase({}[10m])", CONSENSUS_PROPOSALS_INVALID.get_name_with_filter()),
177+
query_builder::increase(&CONSENSUS_PROPOSALS_INVALID, "10m"),
180178
PanelType::TimeSeries,
181179
)
182180
.with_log_query("\"Validated proposal.\" OR \"PROPOSAL_FAILED\"")
@@ -202,7 +200,7 @@ fn get_panel_consensus_build_proposal_total() -> Panel {
202200
Panel::new(
203201
"Proposal Build: Number of Proposals Started",
204202
"The number of proposals that started building (10m window)",
205-
format!("increase({}[10m])", CONSENSUS_BUILD_PROPOSAL_TOTAL.get_name_with_filter()),
203+
query_builder::increase(&CONSENSUS_BUILD_PROPOSAL_TOTAL, "10m"),
206204
PanelType::TimeSeries,
207205
)
208206
}
@@ -211,7 +209,7 @@ fn get_panel_consensus_build_proposal_failed() -> Panel {
211209
Panel::new(
212210
"Proposal Build: Number of Proposals Failed",
213211
"The number of proposals that failed to be built (10m window)",
214-
format!("increase({}[10m])", CONSENSUS_BUILD_PROPOSAL_FAILED.get_name_with_filter()),
212+
query_builder::increase(&CONSENSUS_BUILD_PROPOSAL_FAILED, "10m"),
215213
PanelType::TimeSeries,
216214
)
217215
}
@@ -290,7 +288,7 @@ fn get_panel_cende_write_blob_success() -> Panel {
290288
Panel::new(
291289
"Write Blob Success",
292290
"The number of successful blob writes to Cende (10m window)",
293-
format!("increase({}[10m])", CENDE_WRITE_BLOB_SUCCESS.get_name_with_filter()),
291+
query_builder::increase(&CENDE_WRITE_BLOB_SUCCESS, "10m"),
294292
PanelType::TimeSeries,
295293
)
296294
.with_log_query(query_expression)
@@ -315,7 +313,7 @@ fn get_panel_cende_write_preconfirmed_block() -> Panel {
315313
"Write Preconfirmed Block Success",
316314
"The number of successful writes to Cende for preconfirmed blocks (10m window). Each \
317315
preconfirmed block may involve multiple writes.",
318-
format!("increase({}[10m])", PRECONFIRMED_BLOCK_WRITTEN.get_name_with_filter()),
316+
query_builder::increase(&PRECONFIRMED_BLOCK_WRITTEN, "10m"),
319317
PanelType::TimeSeries,
320318
)
321319
.with_log_query("write_pre_confirmed_block request succeeded.")
@@ -335,7 +333,7 @@ fn get_panel_consensus_votes_num_sent_messages() -> Panel {
335333
"Consensus Votes Number of Sent Messages",
336334
"The increase in the number of vote messages sent by consensus p2p (over the selected \
337335
time range)",
338-
format!("increase({}[$__range])", CONSENSUS_VOTES_NUM_SENT_MESSAGES.get_name_with_filter()),
336+
query_builder::increase(&CONSENSUS_VOTES_NUM_SENT_MESSAGES, "$__range"),
339337
PanelType::Stat,
340338
)
341339
}
@@ -345,10 +343,7 @@ fn get_panel_consensus_votes_num_received_messages() -> Panel {
345343
"Consensus Votes Number of Received Messages",
346344
"The increase in the number of vote messages received by consensus p2p (over the selected \
347345
time range)",
348-
format!(
349-
"increase({}[$__range])",
350-
CONSENSUS_VOTES_NUM_RECEIVED_MESSAGES.get_name_with_filter()
351-
),
346+
query_builder::increase(&CONSENSUS_VOTES_NUM_RECEIVED_MESSAGES, "$__range"),
352347
PanelType::Stat,
353348
)
354349
}
@@ -358,10 +353,7 @@ fn get_panel_consensus_proposals_num_sent_messages() -> Panel {
358353
"Consensus Proposals Number of Sent Messages",
359354
"The increase in the number of proposal messages sent by consensus p2p (over the selected \
360355
time range)",
361-
format!(
362-
"increase({}[$__range])",
363-
CONSENSUS_PROPOSALS_NUM_SENT_MESSAGES.get_name_with_filter()
364-
),
356+
query_builder::increase(&CONSENSUS_PROPOSALS_NUM_SENT_MESSAGES, "$__range"),
365357
PanelType::Stat,
366358
)
367359
}
@@ -371,10 +363,7 @@ fn get_panel_consensus_proposals_num_received_messages() -> Panel {
371363
"Consensus Proposals Number of Received Messages",
372364
"The increase in the number of proposal messages received by consensus p2p (over the \
373365
selected time range)",
374-
format!(
375-
"increase({}[$__range])",
376-
CONSENSUS_PROPOSALS_NUM_RECEIVED_MESSAGES.get_name_with_filter()
377-
),
366+
query_builder::increase(&CONSENSUS_PROPOSALS_NUM_RECEIVED_MESSAGES, "$__range"),
378367
PanelType::Stat,
379368
)
380369
}
@@ -383,7 +372,7 @@ fn get_panel_consensus_conflicting_votes() -> Panel {
383372
Panel::new(
384373
"Consensus Conflicting Votes",
385374
"The increase in the number of conflicting votes (over the selected time range)",
386-
format!("increase({}[$__range])", CONSENSUS_CONFLICTING_VOTES.get_name_with_filter()),
375+
query_builder::increase(&CONSENSUS_CONFLICTING_VOTES, "$__range"),
387376
PanelType::Stat,
388377
)
389378
}
@@ -432,10 +421,7 @@ fn get_panel_consensus_decisions_reached_as_proposer() -> Panel {
432421
Panel::new(
433422
"Consensus Decisions Reached As Proposer",
434423
"The number of rounds with decision reached where this node is the proposer (10m window)",
435-
format!(
436-
"increase({}[10m])",
437-
CONSENSUS_DECISIONS_REACHED_AS_PROPOSER.get_name_with_filter()
438-
),
424+
query_builder::increase(&CONSENSUS_DECISIONS_REACHED_AS_PROPOSER, "10m"),
439425
PanelType::TimeSeries,
440426
)
441427
.with_log_query("\"Building proposal\" OR \"BATCHER_FIN_PROPOSER\"")

crates/apollo_dashboard/src/panels/http_server.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,26 @@ use apollo_http_server::metrics::{
99
use apollo_metrics::MetricCommon;
1010

1111
use crate::dashboard::{Panel, PanelType, Row, Unit};
12+
use crate::query_builder;
1213

1314
fn get_panel_total_transactions_received() -> Panel {
1415
Panel::new(
1516
"Transactions Received",
1617
"Number of transactions received (10m window)",
17-
format!("increase({}[10m])", ADDED_TRANSACTIONS_TOTAL.get_name_with_filter()),
18+
query_builder::increase(&ADDED_TRANSACTIONS_TOTAL, "10m"),
1819
PanelType::TimeSeries,
1920
)
2021
.with_log_query("\"ADD_TX_START\"")
2122
}
2223
fn get_panel_transaction_success_rate() -> Panel {
24+
// TODO(MatanL): use Panel::ratio_time_series
2325
Panel::new(
2426
"Transaction Success Rate",
2527
"The ratio of transactions successfully added to the gateway (10m window)",
2628
format!(
27-
"increase({}[10m]) / (increase({}[10m]) + increase({}[10m]))",
28-
ADDED_TRANSACTIONS_SUCCESS.get_name_with_filter(),
29-
ADDED_TRANSACTIONS_SUCCESS.get_name_with_filter(),
30-
ADDED_TRANSACTIONS_FAILURE.get_name_with_filter(),
29+
"{s} / ({s} + {f})",
30+
s = query_builder::increase(&ADDED_TRANSACTIONS_SUCCESS, "10m"),
31+
f = query_builder::increase(&ADDED_TRANSACTIONS_FAILURE, "10m"),
3132
),
3233
PanelType::TimeSeries,
3334
)

crates/apollo_dashboard/src/panels/l1_gas_price.rs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ use apollo_l1_gas_price_types::DEFAULT_ETH_TO_FRI_RATE;
1414
use apollo_metrics::MetricCommon;
1515

1616
use crate::dashboard::{get_time_since_last_increase_expr, Panel, PanelType, Row, Unit};
17+
use crate::query_builder;
1718

1819
fn get_panel_eth_to_strk_error_count() -> Panel {
1920
Panel::new(
2021
"ETH→STRK Rate Query Error Count",
2122
"The number of times the ETH→STRK rate query failed (10m window)",
22-
format!("increase({}[10m])", ETH_TO_STRK_ERROR_COUNT.get_name_with_filter()),
23+
query_builder::increase(&ETH_TO_STRK_ERROR_COUNT, "10m"),
2324
PanelType::TimeSeries,
2425
)
2526
}
@@ -61,10 +62,7 @@ fn get_panel_l1_gas_price_provider_insufficient_history() -> Panel {
6162
"L1 Gas Price Provider Insufficient History",
6263
"The number of times the L1 gas price provider calculated an average with too few blocks \
6364
(10m window)",
64-
format!(
65-
"increase({}[10m])",
66-
L1_GAS_PRICE_PROVIDER_INSUFFICIENT_HISTORY.get_name_with_filter()
67-
),
65+
query_builder::increase(&L1_GAS_PRICE_PROVIDER_INSUFFICIENT_HISTORY, "10m"),
6866
PanelType::TimeSeries,
6967
)
7068
.with_log_query("Not enough history to calculate the mean gas price.")
@@ -75,7 +73,7 @@ fn get_panel_l1_gas_price_scraper_success_count() -> Panel {
7573
"L1 Gas Price Scraper Success Count",
7674
"The number of times the L1 gas price scraper successfully scraped and updated gas prices \
7775
(10m window)",
78-
format!("increase({}[10m])", L1_GAS_PRICE_SCRAPER_SUCCESS_COUNT.get_name_with_filter()),
76+
query_builder::increase(&L1_GAS_PRICE_SCRAPER_SUCCESS_COUNT, "10m"),
7977
PanelType::TimeSeries,
8078
)
8179
}
@@ -85,10 +83,7 @@ fn get_panel_l1_gas_price_scraper_baselayer_error_count() -> Panel {
8583
"L1 Gas Price Scraper Base Layer Error Count",
8684
"The number of times the L1 gas price scraper encountered an error while scraping the \
8785
base layer (10m window)",
88-
format!(
89-
"increase({}[10m])",
90-
L1_GAS_PRICE_SCRAPER_BASELAYER_ERROR_COUNT.get_name_with_filter()
91-
),
86+
query_builder::increase(&L1_GAS_PRICE_SCRAPER_BASELAYER_ERROR_COUNT, "10m"),
9287
PanelType::TimeSeries,
9388
)
9489
}
@@ -98,7 +93,7 @@ fn get_panel_l1_gas_price_scraper_reorg_detected() -> Panel {
9893
"L1 Gas Price Scraper Reorg Detected",
9994
"The number of times the L1 gas price scraper detected a reorganization in the base layer \
10095
(10m window)",
101-
format!("increase({}[10m])", L1_GAS_PRICE_SCRAPER_REORG_DETECTED.get_name_with_filter()),
96+
query_builder::increase(&L1_GAS_PRICE_SCRAPER_REORG_DETECTED, "10m"),
10297
PanelType::TimeSeries,
10398
)
10499
}

crates/apollo_dashboard/src/panels/l1_provider.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@ use apollo_l1_provider::metrics::{
66
use apollo_metrics::MetricCommon;
77

88
use crate::dashboard::{get_time_since_last_increase_expr, Panel, PanelType, Row, Unit};
9+
use crate::query_builder;
910

1011
fn get_panel_l1_message_scraper_success_count() -> Panel {
1112
Panel::new(
1213
"L1 Message Scraper Success Count",
1314
"The increase in the number of times the L1 message scraper successfully scraped messages \
1415
(10m window)",
15-
format!("increase({}[10m])", L1_MESSAGE_SCRAPER_SUCCESS_COUNT.get_name_with_filter()),
16+
query_builder::increase(&L1_MESSAGE_SCRAPER_SUCCESS_COUNT, "10m"),
1617
PanelType::TimeSeries,
1718
)
1819
}
@@ -21,18 +22,15 @@ fn get_panel_l1_message_scraper_baselayer_error_count() -> Panel {
2122
"L1 Message Scraper Base Layer Error Count",
2223
"The increase in the number of times the L1 message scraper encountered an error while \
2324
scraping the base layer (10m window)",
24-
format!(
25-
"increase({}[10m])",
26-
L1_MESSAGE_SCRAPER_BASELAYER_ERROR_COUNT.get_name_with_filter()
27-
),
25+
query_builder::increase(&L1_MESSAGE_SCRAPER_BASELAYER_ERROR_COUNT, "10m"),
2826
PanelType::TimeSeries,
2927
)
3028
}
3129
fn get_panel_l1_message_scraper_reorg_detected() -> Panel {
3230
Panel::new(
3331
"L1 Message Scraper Reorg Detected",
3432
"The increase in the number of times the L1 message scraper detected a reorg (12h window)",
35-
format!("increase({}[12h])", L1_MESSAGE_SCRAPER_REORG_DETECTED.get_name_with_filter()),
33+
query_builder::increase(&L1_MESSAGE_SCRAPER_REORG_DETECTED, "12h"),
3634
PanelType::TimeSeries,
3735
)
3836
}

crates/apollo_dashboard/src/panels/mempool.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use apollo_mempool::metrics::{
1414
use apollo_metrics::MetricCommon;
1515

1616
use crate::dashboard::{Panel, PanelType, Row, Unit};
17+
use crate::query_builder;
1718

1819
fn get_panel_mempool_transactions_received_rate() -> Panel {
1920
Panel::new(
@@ -31,7 +32,7 @@ fn get_panel_mempool_transactions_committed() -> Panel {
3132
Panel::new(
3233
"Transactions Committed",
3334
"Number of transactions committed to a block (10m window)",
34-
format!("increase({}[10m])", MEMPOOL_TRANSACTIONS_COMMITTED.get_name_with_filter()),
35+
query_builder::increase(&MEMPOOL_TRANSACTIONS_COMMITTED, "10m"),
3536
PanelType::TimeSeries,
3637
)
3738
}

0 commit comments

Comments
 (0)