in src/ServiceProfiler.EventPipe.Otel/Microsoft.ApplicationInsights.Profiler.Shared/Contracts/ProfilerSettings.cs [26:50]
public ProfilerSettings(
IOptions<UserConfigurationBase> userConfiguration,
IProfilerSettingsService settingsService,
SettingsParser settingsParser,
ILogger<ProfilerSettings> logger)
{
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
if (userConfiguration is null)
{
throw new ArgumentNullException(nameof(userConfiguration));
}
if (settingsService is null)
{
throw new ArgumentNullException(nameof(settingsService));
}
_settingsParser = settingsParser ?? throw new ArgumentNullException(nameof(settingsParser));
Enabled = !userConfiguration.Value.IsDisabled;
SamplingOptions.SamplingRate = userConfiguration.Value.RandomProfilingOverhead;
SamplingOptions.ProfilingDurationInSeconds = (int)userConfiguration.Value.Duration.TotalSeconds;
CpuTriggerSettings.CpuThreshold = userConfiguration.Value.CPUTriggerThreshold;
MemoryTriggerSettings.MemoryThreshold = userConfiguration.Value.MemoryTriggerThreshold;
settingsService.SettingsUpdated += SetFromSettingsContract;
}