Capture the number of embedded instances in the VM

Test: unit tests
Bug: 154000428
Change-Id: Ic7b84972ad783a55e2cf983954333926ecafd277
diff --git a/invocation_interfaces/com/android/tradefed/invoker/logger/InvocationMetricLogger.java b/invocation_interfaces/com/android/tradefed/invoker/logger/InvocationMetricLogger.java
index a23b5c1..f4c892d 100644
--- a/invocation_interfaces/com/android/tradefed/invoker/logger/InvocationMetricLogger.java
+++ b/invocation_interfaces/com/android/tradefed/invoker/logger/InvocationMetricLogger.java
@@ -41,7 +41,8 @@
         SANDBOX_EXIT_CODE("sandbox_exit_code", false),
         CF_FETCH_ARTIFACT_TIME("cf_fetch_artifact_time_ms", false),
         CF_GCE_CREATE_TIME("cf_gce_create_time_ms", false),
-        CF_LAUNCH_CVD_TIME("cf_launch_cvd_time_ms", false);
+        CF_LAUNCH_CVD_TIME("cf_launch_cvd_time_ms", false),
+        CF_INSTANCE_COUNT("cf_instance_count", false);
 
         private final String mKeyName;
         // Whether or not to add the value when the key is added again.
diff --git a/src/com/android/tradefed/device/cloud/GceAvdInfo.java b/src/com/android/tradefed/device/cloud/GceAvdInfo.java
index 81877f6..4d627f2 100644
--- a/src/com/android/tradefed/device/cloud/GceAvdInfo.java
+++ b/src/com/android/tradefed/device/cloud/GceAvdInfo.java
@@ -251,5 +251,9 @@
                     InvocationMetricKey.CF_LAUNCH_CVD_TIME,
                     Double.valueOf(Double.parseDouble(launch_cvd_time) * 1000).longValue());
         }
+        if (!InvocationMetricLogger.getInvocationMetrics()
+                .containsKey(InvocationMetricKey.CF_INSTANCE_COUNT.toString())) {
+            InvocationMetricLogger.addInvocationMetrics(InvocationMetricKey.CF_INSTANCE_COUNT, 1);
+        }
     }
 }
diff --git a/src/com/android/tradefed/invoker/RemoteInvocationExecution.java b/src/com/android/tradefed/invoker/RemoteInvocationExecution.java
index 56fdb7c..d7843d9 100644
--- a/src/com/android/tradefed/invoker/RemoteInvocationExecution.java
+++ b/src/com/android/tradefed/invoker/RemoteInvocationExecution.java
@@ -36,6 +36,8 @@
 import com.android.tradefed.device.cloud.GceManager;
 import com.android.tradefed.device.cloud.ManagedRemoteDevice;
 import com.android.tradefed.device.cloud.RemoteFileUtil;
+import com.android.tradefed.invoker.logger.InvocationMetricLogger;
+import com.android.tradefed.invoker.logger.InvocationMetricLogger.InvocationMetricKey;
 import com.android.tradefed.log.ITestLogger;
 import com.android.tradefed.log.LogUtil.CLog;
 import com.android.tradefed.result.FileInputStreamSource;
@@ -127,8 +129,10 @@
             TestDeviceOptions options = device.getOptions();
             // Trigger the multi-tenant start in the VM
             options.addGceDriverParams("--num-avds-per-instance");
-            options.addGceDriverParams(config.getCommandOptions().getShardCount().toString());
-            // TODO: Track how many instances we created
+            String count = config.getCommandOptions().getShardCount().toString();
+            options.addGceDriverParams(count);
+            InvocationMetricLogger.addInvocationMetrics(
+                    InvocationMetricKey.CF_INSTANCE_COUNT, count);
         }
     }