Files
MacMonitor/Sources/Telemetry/Kernel/MMKernelTelemetryProvider.h
gronod d24fa7de35
MacMonitor CI/CD Pipeline / Build & Test (Intel x86_64) (push) Canceled after 0s
feat(telemetry): implement kernel context switching and event counter provider (fixes #6)
2026-09-08 12:32:18 +01:00

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 */