IMetricsRecorder

public interface IMetricsRecorder

com.android.tradefed.profiler.recorder.IMetricsRecorder
Known Indirect Subclasses
NumericMetricsRecorder A IMetricsRecorder that aggregates metrics using some basic numeric functions. 
StubMetricsRecorder An IMetricsRecorder which does nothing. 
TraceMetricsRecorder An IMetricsRecorder that records metrics taken from the /d/tracing directory. 


Records metrics to communicate directly to an ITestProfiler. The metrics recorded cover a single test on a single ITestDevice only.

Summary

Public methods

abstract BiFunction<Double, Double, Double> getMergeFunction(String key)

Returns a BiFunction describing how to aggregate results for a particular metric over the course of multiple test runs.

abstract String getName()

Returns a name for this IMetricsRecorder.

abstract void setUp(ITestDevice device, Collection<String> descriptors)

Sets up the recorder.

abstract void startMetrics(ITestDevice device)

Begin recording metrics on a device.

abstract Map<String, Double> stopMetrics(ITestDevice device)

Stop recording metrics on a device.

Public methods

getMergeFunction

BiFunction<Double, Double, Double> getMergeFunction (String key)

Returns a BiFunction describing how to aggregate results for a particular metric over the course of multiple test runs. Examples of relevant functions are average, sum, or count. The BiFunction is used as an argument to merge(K, V, BiFunction).

Parameters
key String: the name of the metric
Returns
BiFunction<Double, Double, Double> a BiFunction used to aggregate values of that metric

getName

String getName ()

Returns a name for this IMetricsRecorder.

Returns
String the name

setUp

void setUp (ITestDevice device, 
                Collection<String> descriptors)

Sets up the recorder. After calling this method, the recorder is ready to begin. This method should be called by setUp(IInvocationContext).

Parameters
device ITestDevice: The device on which this recorder will monitor metrics.
descriptors Collection: A collection of strings describing what metrics to collect and by what means to collect them. It is up to individual implementers to decide how to interpret these string descriptors.
Throws
DeviceNotAvailableException

startMetrics

void startMetrics (ITestDevice device)

Begin recording metrics on a device. This should be called at the beginning of a single test.

Parameters
device ITestDevice: the device to start recording on
Throws
DeviceNotAvailableException

stopMetrics

Map<String, Double> stopMetrics (ITestDevice device)

Stop recording metrics on a device. This should be called at the end of a single test.

Parameters
device ITestDevice: the device to stop recording on
Returns
Map<String, Double> a Map which contains all metrics recorded over the duration of the test.
Throws
DeviceNotAvailableException