/// <summary> /// Sets last known request sampling percentage for telemetry type. /// </summary> internal void SetLastObservedSamplingPercentage(SamplingTelemetryItemTypes samplingItemType, double value) { switch (samplingItemType) { case SamplingTelemetryItemTypes.Request: Interlocked.Exchange(ref this.requestSampleRate, value); break; case SamplingTelemetryItemTypes.Message: Interlocked.Exchange(ref this.messageSampleRate, value); break; case SamplingTelemetryItemTypes.RemoteDependency: Interlocked.Exchange(ref this.dependencySampleRate, value); break; case SamplingTelemetryItemTypes.Event: Interlocked.Exchange(ref this.eventSampleRate, value); break; case SamplingTelemetryItemTypes.Exception: Interlocked.Exchange(ref this.exceptionSampleRate, value); break; case SamplingTelemetryItemTypes.PageView: Interlocked.Exchange(ref this.pageViewSampleRate, value); break; default: throw new ArgumentException("Unsupported Item Type", nameof(samplingItemType)); } }
/// <summary> /// Gets last known request sampling percentage for telemetry type. /// </summary> internal double GetLastObservedSamplingPercentage(SamplingTelemetryItemTypes samplingItemType) { switch (samplingItemType) { case SamplingTelemetryItemTypes.Request: return(this.requestSampleRate); case SamplingTelemetryItemTypes.Message: return(this.messageSampleRate); case SamplingTelemetryItemTypes.RemoteDependency: return(this.dependencySampleRate); case SamplingTelemetryItemTypes.Event: return(this.eventSampleRate); case SamplingTelemetryItemTypes.Exception: return(this.exceptionSampleRate); case SamplingTelemetryItemTypes.PageView: return(this.pageViewSampleRate); default: throw new ArgumentException("Unsupported Item Type", nameof(samplingItemType)); } }
private bool IsSamplingApplicable(SamplingTelemetryItemTypes telemetryItemTypeFlag) { if (this.includedTypesFlags == SamplingTelemetryItemTypes.None) { // default value return(true); } else { return(this.includedTypesFlags.HasFlag(telemetryItemTypeFlag)); } }
private bool IsSamplingApplicable(SamplingTelemetryItemTypes telemetryItemTypeFlag) { if (this.excludedTypesFlags.HasFlag(telemetryItemTypeFlag)) { return(false); } if (this.includedTypesFlags != SamplingTelemetryItemTypes.None && !this.includedTypesFlags.HasFlag(telemetryItemTypeFlag)) { return(false); } return(true); }
private SamplingTelemetryItemTypes PopulateSamplingFlagsFromTheInput(string input) { SamplingTelemetryItemTypes samplingTypeFlags = SamplingTelemetryItemTypes.None; if (!string.IsNullOrEmpty(input)) { string[] splitList = input.Split(this.listSeparators, StringSplitOptions.RemoveEmptyEntries); foreach (string item in splitList) { if (this.allowedTypes.ContainsKey(item)) { switch (item.ToUpperInvariant()) { case RequestTelemetryName: samplingTypeFlags |= SamplingTelemetryItemTypes.Request; break; case DependencyTelemetryName: samplingTypeFlags |= SamplingTelemetryItemTypes.RemoteDependency; break; case ExceptionTelemetryName: samplingTypeFlags |= SamplingTelemetryItemTypes.Exception; break; case PageViewTelemetryName: samplingTypeFlags |= SamplingTelemetryItemTypes.PageView; break; case TraceTelemetryName: samplingTypeFlags |= SamplingTelemetryItemTypes.Message; break; case EventTelemetryName: samplingTypeFlags |= SamplingTelemetryItemTypes.Event; break; } } } } return(samplingTypeFlags); }
internal long GetItems(SamplingTelemetryItemTypes telemetryItemTypeFlag) { // Returns known index in the counter array or default value 0 for unknown types this.typeToSamplingIndexMap.TryGetValue(telemetryItemTypeFlag, out int typeIndex); return(Interlocked.Read(ref this.proactivelySampledOutItems[typeIndex])); }
internal void ClearItems(SamplingTelemetryItemTypes telemetryItemTypeFlag) { // Returns known index in the counter array or default value 0 for unknown types this.typeToSamplingIndexMap.TryGetValue(telemetryItemTypeFlag, out int typeIndex); Interlocked.Exchange(ref this.proactivelySampledOutItems[typeIndex], 0); }
/// <summary> /// Sets last known request sampling percentage to skip initializers for sampled requests. /// </summary> public static void SetLastObservedSamplingPercentage(this TelemetryConfiguration configuration, SamplingTelemetryItemTypes samplingItemType, double value) { configuration.LastKnownSampleRateStore.SetLastObservedSamplingPercentage(samplingItemType, value); }
/// <summary> /// Gets last known request sampling percentage to skip initializers for sampled requests. /// </summary> public static double GetLastObservedSamplingPercentage(this TelemetryConfiguration configuration, SamplingTelemetryItemTypes samplingItemType) { return(configuration.LastKnownSampleRateStore.GetLastObservedSamplingPercentage(samplingItemType)); }
/// <summary> /// Sets last known request sampling percentage to skip initializers for sampled requests. /// </summary> public static void SetLastObservedSamplingPercentage(this TelemetryConfiguration configuration, SamplingTelemetryItemTypes samplingItemType, double value) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } configuration.LastKnownSampleRateStore.SetLastObservedSamplingPercentage(samplingItemType, value); }
private static SamplingTelemetryItemTypes ExcludeOperator(SamplingTelemetryItemTypes flags, SamplingTelemetryItemTypes value) => flags &= ~value;
private static SamplingTelemetryItemTypes Calculate(Func <SamplingTelemetryItemTypes, SamplingTelemetryItemTypes, SamplingTelemetryItemTypes> operation, SamplingTelemetryItemTypes flags, string input) { if (!string.IsNullOrEmpty(input)) { var allowedTypes = GetAllowedTypes(); foreach (string item in SplitInput(input)) { if (allowedTypes.TryGetValue(item, out SamplingTelemetryItemTypes value)) { flags = operation(flags, value); } } } return(flags); }