Implement write_vm_booted_stats for VmBooted atom
Bug: 236254440
Test: N/A
Change-Id: I512a2cd0ddf004e8c67778ad81878132cd9a495d
diff --git a/virtualizationservice/src/aidl.rs b/virtualizationservice/src/aidl.rs
index 5bc646f..10162d2 100644
--- a/virtualizationservice/src/aidl.rs
+++ b/virtualizationservice/src/aidl.rs
@@ -14,7 +14,7 @@
//! Implementation of the AIDL interface of the VirtualizationService.
-use crate::atom::write_vm_creation_stats;
+use crate::atom::{write_vm_booted_stats, write_vm_creation_stats};
use crate::composite::make_composite_image;
use crate::crosvm::{CrosvmConfig, DiskFile, PayloadState, VmInstance, VmState};
use crate::payload::add_microdroid_images;
@@ -1043,6 +1043,7 @@
})?;
let stream = vm.stream.lock().unwrap().take();
vm.callbacks.notify_payload_started(cid, stream);
+ write_vm_booted_stats();
Ok(())
} else {
error!("notifyPayloadStarted is called from an unknown CID {}", cid);
diff --git a/virtualizationservice/src/atom.rs b/virtualizationservice/src/atom.rs
index 960eaa7..82ff161 100644
--- a/virtualizationservice/src/atom.rs
+++ b/virtualizationservice/src/atom.rs
@@ -23,7 +23,7 @@
use anyhow::{anyhow, Result};
use log::{trace, warn};
use microdroid_payload_config::VmPayloadConfig;
-use statslog_virtualization_rust::vm_creation_requested;
+use statslog_virtualization_rust::{vm_booted, vm_creation_requested};
use zip::ZipArchive;
fn get_vm_payload_config(config: &VirtualMachineAppConfig) -> Result<VmPayloadConfig> {
@@ -112,3 +112,19 @@
Ok(_) => trace!("statslog_rust succeeded for virtualization service"),
}
}
+
+/// Write the stats of VM boot to statsd
+pub fn write_vm_booted_stats() {
+ let empty_string = String::new();
+ let vm_booted = vm_booted::VmBooted {
+ // TODO(seungjaeyoo) Implement sending proper data about uid & vm_identifier
+ uid: -1,
+ vm_identifier: &empty_string,
+ };
+ match vm_booted.stats_write() {
+ Err(e) => {
+ warn!("statslog_rust failed with error: {}", e);
+ }
+ Ok(_) => trace!("statslog_rust succeeded for virtualization service"),
+ }
+}