The important classes, from the bottom up, are:
Measurement Delegates (MemoryMeasurementDelegate
, CPUMeasurementDelegate
, etc):
Interface directly with OS or common Chrome functions to perform measurements. Can be replaced by test stubs to simulate measurements. Measurement Providers create delegates through factory classes as needed.
Measurement Providers (MemoryMeasurementProvider
, CPUMeasurementMonitor
, etc):
Own and control the Measurement Delegates. Convert measurements they return to a common format, aggregate and store them.
QueryScheduler:
Central rendezvous point for queries from the public API. Owns and controls the Measurement Providers and schedules measurements from them based on incoming queries. Filters and combines results from the providers into responses containing the data each query expects.
Public API classes (ResourceContext
, QueryBuilder
, QueryResult
, etc):
Described at bit.ly/resource-attribution-api.