diff --git a/virtualizationservice/src/atom.rs b/virtualizationservice/src/atom.rs
index feaa72a..01f3e27 100644
--- a/virtualizationservice/src/atom.rs
+++ b/virtualizationservice/src/atom.rs
@@ -25,6 +25,7 @@
 use log::{trace, warn};
 use microdroid_payload_config::VmPayloadConfig;
 use statslog_virtualization_rust::{vm_booted, vm_creation_requested, vm_exited};
+use std::time::{Duration, SystemTime};
 use zip::ZipArchive;
 
 fn get_vm_payload_config(config: &VirtualMachineAppConfig) -> Result<VmPayloadConfig> {
@@ -36,6 +37,13 @@
     Ok(vm_payload_config)
 }
 
+fn get_duration(vm_start_timestamp: Option<SystemTime>) -> Duration {
+    match vm_start_timestamp {
+        Some(vm_start_timestamp) => vm_start_timestamp.elapsed().unwrap_or_default(),
+        None => Duration::default(),
+    }
+}
+
 /// Write the stats of VMCreation to statsd
 pub fn write_vm_creation_stats(
     config: &VirtualMachineConfig,
@@ -116,8 +124,17 @@
 }
 
 /// Write the stats of VM boot to statsd
-pub fn write_vm_booted_stats(uid: i32, vm_identifier: &String) {
-    let vm_booted = vm_booted::VmBooted { uid, vm_identifier };
+pub fn write_vm_booted_stats(
+    uid: i32,
+    vm_identifier: &String,
+    vm_start_timestamp: Option<SystemTime>,
+) {
+    let duration = get_duration(vm_start_timestamp);
+    let vm_booted = vm_booted::VmBooted {
+        uid,
+        vm_identifier,
+        elapsed_time_millis: duration.as_millis() as i64,
+    };
     match vm_booted.stats_write() {
         Err(e) => {
             warn!("statslog_rust failed with error: {}", e);
@@ -127,10 +144,17 @@
 }
 
 /// Write the stats of VM exit to statsd
-pub fn write_vm_exited_stats(uid: i32, vm_identifier: &String, reason: DeathReason) {
+pub fn write_vm_exited_stats(
+    uid: i32,
+    vm_identifier: &String,
+    reason: DeathReason,
+    vm_start_timestamp: Option<SystemTime>,
+) {
+    let duration = get_duration(vm_start_timestamp);
     let vm_exited = vm_exited::VmExited {
         uid,
         vm_identifier,
+        elapsed_time_millis: duration.as_millis() as i64,
         death_reason: match reason {
             DeathReason::INFRASTRUCTURE_ERROR => vm_exited::DeathReason::InfrastructureError,
             DeathReason::KILLED => vm_exited::DeathReason::Killed,
