aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Desprez <jdesprez@google.com>2022-01-04 12:22:11 -0800
committerJulien Desprez <jdesprez@google.com>2022-01-06 01:08:10 +0000
commitc206ce353d5f2aa6f88fb8da23f32cf62e8e05d2 (patch)
treea8a7246ef311407e25ccac4ca596f8aec3646b8c
parenta1c91dc957cef76a08610a64b80ca043dc6b0de6 (diff)
downloadtradefederation-c206ce353d5f2aa6f88fb8da23f32cf62e8e05d2.tar.gz
Track granular teardown of preparers
Test: unit tests Bug: 213219940 Change-Id: If82e336c86821d5573b230c5ccbe5d36d629e405
-rw-r--r--invocation_interfaces/com/android/tradefed/invoker/logger/InvocationMetricLogger.java4
-rw-r--r--src/com/android/tradefed/invoker/InvocationExecution.java23
2 files changed, 23 insertions, 4 deletions
diff --git a/invocation_interfaces/com/android/tradefed/invoker/logger/InvocationMetricLogger.java b/invocation_interfaces/com/android/tradefed/invoker/logger/InvocationMetricLogger.java
index 3f5a2cedc..7756145f7 100644
--- a/invocation_interfaces/com/android/tradefed/invoker/logger/InvocationMetricLogger.java
+++ b/invocation_interfaces/com/android/tradefed/invoker/logger/InvocationMetricLogger.java
@@ -158,7 +158,9 @@ public class InvocationMetricLogger {
/** Grouping allows to log several groups under a same key. */
public enum InvocationGroupMetricKey {
TEST_TYPE_COUNT("test-type-count", true),
- TARGET_PREPARER_SETUP_LATENCY("target-preparer-setup-latency", true);
+ TARGET_PREPARER_SETUP_LATENCY("target-preparer-setup-latency", true),
+ TARGET_PREPARER_TEARDOWN_LATENCY("target-preparer-teardown-latency", true),
+ MULTI_TARGET_PREPARER_TEARDOWN_LATENCY("multi-target-preparer-teardown-latency", true);
private final String mGroupName;
// Whether or not to add the value when the key is added again.
diff --git a/src/com/android/tradefed/invoker/InvocationExecution.java b/src/com/android/tradefed/invoker/InvocationExecution.java
index 629af3f56..7172d4b4a 100644
--- a/src/com/android/tradefed/invoker/InvocationExecution.java
+++ b/src/com/android/tradefed/invoker/InvocationExecution.java
@@ -487,6 +487,7 @@ public class InvocationExecution implements IInvocationExecution {
if (multipreparer instanceof ITestLoggerReceiver) {
((ITestLoggerReceiver) multipreparer).setTestLogger(logger);
}
+ long startTime = System.currentTimeMillis();
CLog.d("Starting %s '%s'", description, multipreparer);
try {
multipreparer.tearDown(testInfo, throwable);
@@ -499,7 +500,15 @@ public class InvocationExecution implements IInvocationExecution {
deferredThrowable = t;
}
}
- CLog.d("Done with %s '%s'", description, multipreparer);
+ long elapsedTime = System.currentTimeMillis() - startTime;
+
+ CLog.d(
+ "Done with %s '%s' in %s",
+ description, multipreparer, TimeUtil.formatElapsedTime(elapsedTime));
+ InvocationMetricLogger.addInvocationMetrics(
+ InvocationGroupMetricKey.MULTI_TARGET_PREPARER_TEARDOWN_LATENCY,
+ multipreparer.getClass().getName(),
+ elapsedTime);
}
return deferredThrowable;
@@ -609,6 +618,7 @@ public class InvocationExecution implements IInvocationExecution {
if (preparer instanceof ITestLoggerReceiver) {
((ITestLoggerReceiver) preparer).setTestLogger(logger);
}
+ long startTime = System.currentTimeMillis();
try {
CLog.d(
"starting tearDown '%s' on device: '%s'",
@@ -630,9 +640,16 @@ public class InvocationExecution implements IInvocationExecution {
}
} finally {
testInfo.setActiveDeviceIndex(0);
+ long elapsedTime = System.currentTimeMillis() - startTime;
CLog.d(
- "done with tearDown '%s' on device: '%s'",
- preparer, device.getSerialNumber());
+ "done with tearDown '%s' on device: '%s' in %s",
+ preparer,
+ device.getSerialNumber(),
+ TimeUtil.formatElapsedTime(elapsedTime));
+ InvocationMetricLogger.addInvocationMetrics(
+ InvocationGroupMetricKey.TARGET_PREPARER_TEARDOWN_LATENCY,
+ preparer.getClass().getName(),
+ elapsedTime);
}
}
return deferredThrowable;