Interfaces
- IKeplerResourceStatsModule — The module creates object of ISystemResource and IAppResourceQuotas which in turn provides API to get the system’s stats and app’s stats. This is the entry point for resource_stats module.
- IKeplerResourceStatsModuleV2 — KeplerResourceStatsModuleV2 provides system resource information, app resource usage, and quotas.
- ISystemResource — Interface for creating objects of ISystemMemoryStats, ISystemLogicalCpu and IAggregratedAppDataStorageStats.
- ISystemMemoryStats — Device-wide memory stats.
- ILogicalCpuUsageStats — Get logical cpu data.
- ILogicalCpuStats — Get logical cpu number and cpu time.
- ISystemLogicalCpu — Create object of ILogicalCpuUsageStats and list of ILogicalCpuStats.
- IAggregratedAppDataStorageStats — Get app’s total storage and available storage.
- IAppResourceQuotas — App resource usage quotas. Quotas may be imposed on system resources like memory, cpu, and cache. This module has APIs to query these quotas. Quotas change based on system load.
- IMemoryInfo — Memory usage info in bytes.
- IAppResource — An interface that can query the calling app’s current and peak resource usage.
Exceptions
- CpuDataNotAvailable — Exception thrown if the cpu data is not enabled.
- StorageDataNotAvailable — Exception thrown when storage data is not available.
- MemoryDataNotAvailable — Exception thrown when memory data is not available.
- NoQuota — Exception thrown when no quota is set for an app for a resource. Quota gives an app an idea of how hard a resource limit you should impose on your application to let the overall system work best. Products set the resource levels per application using the ResourceManager’s configuration. ResourceManager (RM) calls it the application resource budget. The budget can be set on memory, cpu, and cache storage. Refer to resource budget for more information on RM’s behavior regarding resource budget. It is recommended that apps keep their resource usage under the budget to avoid actions being taken by the OS to reclaim resources.

