in src/ServiceProfiler.EventPipe.Otel/Microsoft.ApplicationInsights.Profiler.Shared/Orchestrations/ResourceUsageSource.cs [127:145]
private BaselineTracker CreateAndStartCPUBaselineTracker(CpuTriggerSettings cpuTriggerSettings, IMetricsProvider cpuMetricsProvider)
{
BaselineTracker cpuBaselineTracker = new(
new RollingHistoryArray<float>(
TimeSpan.FromMinutes(cpuTriggerSettings.CpuRollingHistorySize),
TimeSpan.FromSeconds(cpuTriggerSettings.CpuRollingHistoryInterval)),
TimeSpan.FromSeconds(cpuTriggerSettings.CpuAverageWindow),
getNextMetric: cpuMetricsProvider.GetNextValue,
logger: _loggerFactory.CreateLogger<BaselineTracker>());
cpuBaselineTracker.RegisterCallback((oldBaseline, newBaseline) =>
{
_logger.LogTrace("CPU monitoring calling back. Old base: {old}, new base: {new}", oldBaseline, newBaseline);
_currentCPUBaseline = newBaseline;
});
cpuBaselineTracker.Start();
return cpuBaselineTracker;
}