2020#include " google/protobuf/timestamp.pb.h"
2121
2222#include " cuttlefish/host/commands/metrics/utils.h"
23- #include " cuttlefish/host/libs/config/cuttlefish_config.h"
2423#include " cuttlefish/host/libs/config/vmm_mode.h"
2524#include " external_proto/cf_log.pb.h"
2625#include " external_proto/cf_metrics_event.pb.h"
@@ -97,10 +96,8 @@ MetricsEvent::OsType GetOsType() {
9796 return MetricsEvent::CUTTLEFISH_OS_TYPE_UNSPECIFIED;
9897}
9998
100- MetricsEvent::VmmType GetVmm () {
101- const CuttlefishConfig* config = CuttlefishConfig::Get ();
102- CHECK (config) << " Could not open cuttlefish config" ;
103- switch (config->vm_manager ()) {
99+ MetricsEvent::VmmType GetVmm (VmmMode vmm_mode) {
100+ switch (vmm_mode) {
104101 case VmmMode::kCrosvm :
105102 return MetricsEvent::CUTTLEFISH_VMM_TYPE_CROSVM;
106103 case VmmMode::kQemu :
@@ -111,14 +108,14 @@ MetricsEvent::VmmType GetVmm() {
111108}
112109
113110// Builds the 2nd level MetricsEvent.
114- MetricsEvent BuildMetricsEvent (uint64_t now_ms,
111+ MetricsEvent BuildMetricsEvent (uint64_t now_ms, VmmMode vmm_mode,
115112 MetricsEvent::EventType event_type) {
116113 // "metrics_event" is the 2nd level MetricsEvent
117114 MetricsEvent metrics_event;
118115 metrics_event.set_event_type (event_type);
119116 metrics_event.set_os_type (GetOsType ());
120117 metrics_event.set_os_version (GetOsVersion ());
121- metrics_event.set_vmm_type (GetVmm ());
118+ metrics_event.set_vmm_type (GetVmm (vmm_mode ));
122119
123120 if (!GetVmmVersion ().empty ()) {
124121 metrics_event.set_vmm_version (GetVmmVersion ());
@@ -150,11 +147,12 @@ LogRequest BuildLogRequest(uint64_t now_ms,
150147 return log_request;
151148}
152149
153- int SendEvent (MetricsEvent::EventType event_type) {
150+ int SendEvent (MetricsEvent::EventType event_type, VmmMode vmm_mode ) {
154151 uint64_t now_ms = GetEpochTimeMs ();
155152
156153 CuttlefishLogEvent cf_event = BuildCfLogEvent (now_ms);
157- *cf_event.mutable_metrics_event () = BuildMetricsEvent (now_ms, event_type);
154+ *cf_event.mutable_metrics_event () =
155+ BuildMetricsEvent (now_ms, vmm_mode, event_type);
158156
159157 LogRequest log_request = BuildLogRequest (now_ms, cf_event);
160158 std::string log_request_str = log_request.SerializeAsString ();
@@ -164,20 +162,22 @@ int SendEvent(MetricsEvent::EventType event_type) {
164162
165163} // namespace
166164
167- int SendVMStart () {
168- return SendEvent (MetricsEvent::CUTTLEFISH_EVENT_TYPE_VM_INSTANTIATION);
165+ int SendVMStart (VmmMode vmm_mode) {
166+ return SendEvent (MetricsEvent::CUTTLEFISH_EVENT_TYPE_VM_INSTANTIATION,
167+ vmm_mode);
169168}
170169
171- int SendVMStop () {
172- return SendEvent (MetricsEvent::CUTTLEFISH_EVENT_TYPE_VM_STOP);
170+ int SendVMStop (VmmMode vmm_mode ) {
171+ return SendEvent (MetricsEvent::CUTTLEFISH_EVENT_TYPE_VM_STOP, vmm_mode );
173172}
174173
175- int SendDeviceBoot () {
176- return SendEvent (MetricsEvent::CUTTLEFISH_EVENT_TYPE_DEVICE_BOOT);
174+ int SendDeviceBoot (VmmMode vmm_mode ) {
175+ return SendEvent (MetricsEvent::CUTTLEFISH_EVENT_TYPE_DEVICE_BOOT, vmm_mode );
177176}
178177
179- int SendLockScreen () {
180- return SendEvent (MetricsEvent::CUTTLEFISH_EVENT_TYPE_LOCK_SCREEN_AVAILABLE);
178+ int SendLockScreen (VmmMode vmm_mode) {
179+ return SendEvent (MetricsEvent::CUTTLEFISH_EVENT_TYPE_LOCK_SCREEN_AVAILABLE,
180+ vmm_mode);
181181}
182182
183183} // namespace cuttlefish::metrics
0 commit comments