public ProfilerSettings()

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;
    }