in src/core/admin/src/lib.rs [460:485]
fn human_stats(&self) -> String {
let mut data = Vec::new();
for metric in &rustcommon_metrics::metrics() {
let any = match metric.as_any() {
Some(any) => any,
None => {
continue;
}
};
if let Some(counter) = any.downcast_ref::<Counter>() {
data.push(format!("{}: {}", metric.name(), counter.value()));
} else if let Some(gauge) = any.downcast_ref::<Gauge>() {
data.push(format!("{}: {}", metric.name(), gauge.value()));
} else if let Some(heatmap) = any.downcast_ref::<Heatmap>() {
for (label, value) in PERCENTILES {
let percentile = heatmap.percentile(*value).map(|b| b.high()).unwrap_or(0);
data.push(format!("{}_{}: {}", metric.name(), label, percentile));
}
}
}
data.sort();
data.join("\n") + "\n"
}