in src/data/perf_stat.rs [317:342]
fn collect_data(&mut self, _params: &CollectorParams) -> Result<()> {
self.time = TimeEnum::DateTime(Utc::now());
self.data = String::new();
let cpu_groups = &mut *CPU_CTR_GROUPS.lock().unwrap();
for cpu_group in &mut *cpu_groups {
let count = cpu_group.group.read()?;
let mut group_data = format!("{} {};", cpu_group.cpu, cpu_group.name.clone());
for nr in &cpu_group.nr_ctrs {
let nr_string = format!(" {}", count[&nr.counter]);
group_data.push_str(&nr_string);
}
group_data.push(';');
for dr in &cpu_group.dr_ctrs {
let dr_string = format!(" {}", count[&dr.counter]);
group_data.push_str(&dr_string);
}
group_data.push(';');
let scale_string = format!("{}", cpu_group.scale);
group_data.push_str(&scale_string);
group_data.push('\n');
cpu_group.group.reset()?;
self.data.push_str(&group_data);
}
trace!("{:#?}", self.data);
Ok(())
}