Skip to content

Commit

Permalink
Add few more metrics data points (solana-labs#19624)
Browse files Browse the repository at this point in the history
  • Loading branch information
tao-stones committed Sep 30, 2021
1 parent 41da09d commit ae3770f
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 7 deletions.
8 changes: 5 additions & 3 deletions core/src/cost_update_service.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ impl CostUpdateServiceTiming {
let elapsed_ms = now - self.last_print;
if elapsed_ms > 1000 {
datapoint_info!(
"replay-service-timing-stats",
"cost-update-service-stats",
("total_elapsed_us", elapsed_ms * 1000, i64),
(
"update_cost_model_count",
Expand Down Expand Up @@ -101,15 +101,17 @@ impl CostUpdateService {
cost_update_receiver: CostUpdateReceiver,
) {
let mut cost_update_service_timing = CostUpdateServiceTiming::default();
let mut dirty = false;
let mut dirty: bool;
let mut update_count: u64;
let wait_timer = Duration::from_millis(100);

loop {
if exit.load(Ordering::Relaxed) {
break;
}

let mut update_count = 0_u64;
dirty = false;
update_count = 0_u64;
let mut update_cost_model_time = Measure::start("update_cost_model_time");
for cost_update in cost_update_receiver.try_iter() {
dirty |= Self::update_cost_model(&cost_model, &cost_update);
Expand Down
24 changes: 20 additions & 4 deletions core/src/progress_map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,19 +121,35 @@ impl ReplaySlotStats {
.per_program_timings
.iter()
.collect();
per_pubkey_timings.sort_by(|a, b| b.1 .0.cmp(&a.1 .0));
let total: u64 = per_pubkey_timings.iter().map(|a| a.1 .0).sum();
per_pubkey_timings.sort_by(|a, b| b.1.accumulated_us.cmp(&a.1.accumulated_us));
let (total_us, total_units, total_count) =
per_pubkey_timings
.iter()
.fold((0, 0, 0), |(sum_us, sum_units, sum_count), a| {
(
sum_us + a.1.accumulated_us,
sum_units + a.1.accumulated_units,
sum_count + a.1.count,
)
});

for (pubkey, time) in per_pubkey_timings.iter().take(5) {
datapoint_info!(
"per_program_timings",
("slot", slot as i64, i64),
("pubkey", pubkey.to_string(), String),
("execute_us", time.0, i64)
("execute_us", time.accumulated_us, i64),
("accumulated_units", time.accumulated_units, i64),
("count", time.count, i64)
);
}
datapoint_info!(
"per_program_timings",
("slot", slot as i64, i64),
("pubkey", "all", String),
("execute_us", total, i64)
("execute_us", total_us, i64),
("accumulated_units", total_units, i64),
("count", total_count, i64)
);
}
}
Expand Down

0 comments on commit ae3770f

Please sign in to comment.