From 390f9670051bc853222e4d9dd0e1d1e513e427ce Mon Sep 17 00:00:00 2001 From: Ulan Degenbaev Date: Fri, 8 Sep 2023 11:58:31 +0000 Subject: [PATCH] RUN-757: Add a metric for total reserved balances --- rs/execution_environment/src/scheduler.rs | 6 ++++++ rs/execution_environment/src/scheduler/scheduler_metrics.rs | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/rs/execution_environment/src/scheduler.rs b/rs/execution_environment/src/scheduler.rs index 2523b7b3e91..78eb2858bfc 100644 --- a/rs/execution_environment/src/scheduler.rs +++ b/rs/execution_environment/src/scheduler.rs @@ -1545,6 +1545,7 @@ impl Scheduler for SchedulerImpl { { let mut cycles_out_sum = Cycles::zero(); let mut total_canister_balance = Cycles::zero(); + let mut total_canister_reserved_balance = Cycles::zero(); let mut total_canister_history_memory_usage = NumBytes::new(0); let mut total_canister_memory_usage = NumBytes::new(0); for canister in state.canisters_iter_mut() { @@ -1576,6 +1577,7 @@ impl Scheduler for SchedulerImpl { total_canister_history_memory_usage += canister.canister_history_memory_usage(); total_canister_memory_usage += canister.memory_usage(); total_canister_balance += canister.system_state.balance(); + total_canister_reserved_balance += canister.system_state.reserved_balance(); cycles_out_sum += canister.system_state.queues().output_queue_cycles(); } cycles_out_sum += total_canister_balance; @@ -1584,6 +1586,10 @@ impl Scheduler for SchedulerImpl { .total_canister_balance .set(total_canister_balance.get() as f64); + self.metrics + .total_canister_reserved_balance + .set(total_canister_reserved_balance.get() as f64); + // TODO(EXC-1124): Re-enable the check below once it's fixed. // // Check that amount of cycles at the beginning of the round (balances and cycles from input messages) is bigger or equal diff --git a/rs/execution_environment/src/scheduler/scheduler_metrics.rs b/rs/execution_environment/src/scheduler/scheduler_metrics.rs index 3fbb9fc7aad..0499a0ab05b 100644 --- a/rs/execution_environment/src/scheduler/scheduler_metrics.rs +++ b/rs/execution_environment/src/scheduler/scheduler_metrics.rs @@ -84,6 +84,7 @@ pub(super) struct SchedulerMetrics { pub(super) scheduler_accumulated_priority_deviation: Gauge, pub(super) subnet_memory_usage_invariant: IntCounter, pub(super) total_canister_balance: Gauge, + pub(super) total_canister_reserved_balance: Gauge, pub(super) canister_paused_execution: Histogram, pub(super) canister_aborted_execution: Histogram, pub(super) canister_paused_install_code: Histogram, @@ -555,6 +556,10 @@ impl SchedulerMetrics { "scheduler_canister_balance_cycles_total", "Total canister balance in Cycles.", ), + total_canister_reserved_balance: metrics_registry.gauge( + "scheduler_canister_reserved_balance_cycles_total", + "Total canister reserved balance in Cycles.", + ), canister_paused_execution: dts_pause_or_abort_histogram( "scheduler_canister_paused_execution", "Number of canisters that have a paused execution.",