protected BaseDiagnosticProvider(SamplingRateSource source = SamplingRateSource.None, int samplingRate = 0)
        {
            if (samplingRate < 0 || samplingRate > 100)
            {
                throw new SamplingPercentageOutOfRangeException("Sampling rate percentage out of range, expected 0-100.");
            }

            MessageNumber          = 0;
            SamplingOn             = true;
            SamplingRatePercentage = 0;
            SampledMessageCount    = 0;
            _samplingRateSource    = source;
#if WINDOWS_UWP || NETCOREAPP1_1 || NETCOREAPP2_0 || NETSTANDARD1_3
            _diagVersion = "0.1.0";
#else
            _diagVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString().Substring(0, 5);
#endif
            switch (source)
            {
            case SamplingRateSource.Client:
                SamplingRatePercentage = samplingRate;
                break;

            case SamplingRateSource.Server:
                SamplingRatePercentage = 0;
                break;

            case SamplingRateSource.None:
                SamplingOn = false;
                break;
            }
        }
예제 #2
0
 public ContinuousDiagnosticProvider(SamplingRateSource source = SamplingRateSource.None, int samplingRate = 0) : base(source, samplingRate)
 {
 }
예제 #3
0
 public ProbabilityDiagnosticProvider(SamplingRateSource source = SamplingRateSource.None, int samplingRate = 0) : base(source, samplingRate)
 {
     _randomNum = _random.Next(1, 101);
 }