diff options
author | Julien Desprez <jdesprez@google.com> | 2022-01-04 12:22:11 -0800 |
---|---|---|
committer | Julien Desprez <jdesprez@google.com> | 2022-01-06 01:08:10 +0000 |
commit | c206ce353d5f2aa6f88fb8da23f32cf62e8e05d2 (patch) | |
tree | a8a7246ef311407e25ccac4ca596f8aec3646b8c | |
parent | a1c91dc957cef76a08610a64b80ca043dc6b0de6 (diff) | |
download | tradefederation-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.java | 4 | ||||
-rw-r--r-- | src/com/android/tradefed/invoker/InvocationExecution.java | 23 |
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; |