in src/ServiceProfiler.EventPipe.Otel/Microsoft.ApplicationInsights.Profiler.Shared/Orchestrations/Scheduling/RandomSchedulingPolicy.cs [28:50]
public RandomSchedulingPolicy(
IOptions<UserConfigurationBase> userConfiguration,
ProfilerSettings profilerSettings,
ProcessExpirationPolicy expirationPolicy,
IDelaySource delaySource,
IRandomSource randomSource,
IResourceUsageSource resourceUsageSource,
ILogger<RandomSchedulingPolicy> logger)
: base(
profilingDuration: TimeSpan.FromSeconds(profilerSettings.SamplingOptions.ProfilingDurationInSeconds),
profilingCooldown: TimeSpan.Zero,
pollingInterval: userConfiguration.Value.ConfigurationUpdateFrequency,
profilerSettings: profilerSettings,
delaySource,
expirationPolicy,
resourceUsageSource,
logger
)
{
PolicyEnabled = profilerSettings.SamplingOptions.Enabled;
_randomSource = randomSource ?? throw new ArgumentNullException(nameof(randomSource));
_overhead = profilerSettings.SamplingOptions.SamplingRate;
}