Reduce frequency for collecting CPU/mem metrics for AVF telemetry
Bug: 395981347
Test: Presubmit
Change-Id: I3db5c11d6b9b77a221ebad60786f67a1781f83fd
diff --git a/android/virtmgr/src/crosvm.rs b/android/virtmgr/src/crosvm.rs
index 8500421..9ee181a 100644
--- a/android/virtmgr/src/crosvm.rs
+++ b/android/virtmgr/src/crosvm.rs
@@ -628,6 +628,7 @@
fn monitor_vm_status(&self, child: Arc<SharedChild>) {
let pid = child.id();
+ let mut metric_countdown = 0;
loop {
{
@@ -637,23 +638,34 @@
break;
}
- let mut vm_metric = self.vm_metric.lock().unwrap();
+ if metric_countdown > 0 {
+ metric_countdown -= 1;
+ } else {
+ metric_countdown = 10;
+ let mut vm_metric = self.vm_metric.lock().unwrap();
- // Get CPU Information
- match get_guest_time(pid) {
- Ok(guest_time) => vm_metric.cpu_guest_time = Some(guest_time),
- Err(e) => error!("Failed to get guest CPU time: {e:?}"),
- }
-
- // Get Memory Information
- match get_rss(pid) {
- Ok(rss) => {
- vm_metric.rss = match &vm_metric.rss {
- Some(x) => Some(Rss::extract_max(x, &rss)),
- None => Some(rss),
+ // Get CPU Information
+ match get_guest_time(pid) {
+ Ok(guest_time) => vm_metric.cpu_guest_time = Some(guest_time),
+ Err(e) => {
+ metric_countdown = 0;
+ error!("Failed to get guest CPU time: {e:?}");
}
}
- Err(e) => error!("Failed to get guest RSS: {}", e),
+
+ // Get Memory Information
+ match get_rss(pid) {
+ Ok(rss) => {
+ vm_metric.rss = match &vm_metric.rss {
+ Some(x) => Some(Rss::extract_max(x, &rss)),
+ None => Some(rss),
+ }
+ }
+ Err(e) => {
+ metric_countdown = 0;
+ error!("Failed to get guest RSS: {}", e);
+ }
+ }
}
}