31 lines
1.0 KiB
Objective-C
31 lines
1.0 KiB
Objective-C
#ifndef MMKernelTelemetryProvider_h
|
|
#define MMKernelTelemetryProvider_h
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import "MMTelemetryProvider.h"
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
/**
|
|
* MMKernelTelemetryProvider
|
|
* Samples low-level Mach kernel performance counters: context switches, system calls,
|
|
* page faults (soft, COW, zero-fill), pageins/pageouts, and computes instantaneous rates per second.
|
|
*/
|
|
@interface MMKernelTelemetryProvider : NSObject <MMTelemetryProvider>
|
|
|
|
- (instancetype)init;
|
|
|
|
/**
|
|
* Static calculator method for deterministic unit testing.
|
|
* Computes event rates per second based on previous and current cumulative counters over delta time.
|
|
*/
|
|
+ (NSDictionary<NSString *, id> *)calculateRatesWithCurrentCounters:(NSDictionary<NSString *, NSNumber *> *)current
|
|
previousCounters:(nullable NSDictionary<NSString *, NSNumber *> *)previous
|
|
timeDelta:(NSTimeInterval)timeDelta;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|
|
|
|
#endif /* MMKernelTelemetryProvider_h */
|