コード例 #1
0
        public RemoteControlledSamplerTests()
        {
            _serivceName         = "testService";
            _mockSamplingManager = Substitute.For <ISamplingManager>();
            _mockLoggerFactory   = Substitute.For <ILoggerFactory>();
            _mockSampler         = Substitute.For <ISampler>();
            _mockMetrics         = Substitute.For <IMetrics>();
            _pollingIntervalMs   = 5000;
            _mockSamplerFactory  = Substitute.For <ISamplerFactory>();
            _mockLogger          = Substitute.For <ILogger <RemoteControlledSampler> >();
            _mockPollTimer       = Substitute.For <Func <Action, int, CancellationToken, Task> >();

            _mockLoggerFactory.CreateLogger <RemoteControlledSampler>().Returns(_mockLogger);

            _testingSampler = new RemoteControlledSampler(
                _serivceName,
                _mockSamplingManager,
                _mockLoggerFactory,
                _mockMetrics,
                _mockSampler,
                _mockSamplerFactory,
                _pollingIntervalMs,
                _mockPollTimer
                );
        }
コード例 #2
0
        private bool InitProfilingSupport()
        {
            try
            {
                lock (Lock)
                {
                    if (_samplingManager == null)
                    {
                        if (APM.ProfilerAttached)
                        {
                            RaygunLogger.Instance.Info("Detected Raygun APM profiler is attached, initializing profiler support.");

                            _samplingManager = new SamplingManager();
                            _refreshTimer    = new Timer(RefreshAgentSettings, null, TimeSpan.Zero, AgentPollingDelay);

                            return(true);
                        }
                    }
                    else
                    {
                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                RaygunLogger.Instance.Error($"Error initialising APM profiler support: {ex.Message}");
            }

            return(false);
        }
コード例 #3
0
 private RemoteControlledSampler(
     string serviceName,
     ISamplingManager samplingManager,
     ILoggerFactory loggerFactory,
     IMetrics metrics,
     ISampler sampler,
     int pollingIntervalMs)
     : this(serviceName, samplingManager, loggerFactory, metrics, sampler, new SamplerFactory(), pollingIntervalMs, PollTimer)
 {
 }
コード例 #4
0
        private RemoteControlledSampler(Builder builder)
        {
            _serviceName     = builder.ServiceName;
            _samplingManager = builder.SamplingManager;
            _loggerFactory   = builder.LoggerFactory;
            _logger          = _loggerFactory.CreateLogger <RemoteControlledSampler>();
            _metrics         = builder.Metrics;
            Sampler          = builder.InitialSampler;

            _pollTimer = new Timer(_ => UpdateSampler(), null, TimeSpan.Zero, builder.PollingInterval);
        }
コード例 #5
0
        public RemoteControlledSamplerTests()
        {
            _loggerFactory = new NullLoggerFactory();

            _samplingManager = Substitute.For <ISamplingManager>();
            _initialSampler  = Substitute.For <ISampler>();

            _metrics   = new MetricsImpl(new InMemoryMetricsFactory());
            _undertest = new RemoteControlledSampler.Builder(SERVICE_NAME)
                         .WithSamplingManager(_samplingManager)
                         .WithInitialSampler(_initialSampler)
                         .WithMetrics(_metrics)
                         .Build();
        }
コード例 #6
0
 internal RemoteControlledSampler(
     string serviceName,
     ISamplingManager samplingManager,
     ILoggerFactory loggerFactory,
     IMetrics metrics,
     ISampler sampler,
     ISamplerFactory samplerFactory,
     int pollingIntervalMs,
     Func <Action, int, CancellationToken, Task> pollTimer)
 {
     _serviceName             = serviceName;
     _samplingManager         = samplingManager;
     _loggerFactory           = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
     _logger                  = loggerFactory.CreateLogger <RemoteControlledSampler>();
     _metrics                 = metrics;
     _sampler                 = sampler;
     _samplerFactory          = samplerFactory;
     _cancellationTokenSource = new CancellationTokenSource();
     _pollTimer               = pollTimer(UpdateSampler, pollingIntervalMs, _cancellationTokenSource.Token);
 }
コード例 #7
0
        private void InitProfilingSupport()
        {
            try
            {
                lock (Lock)
                {
                    if (_samplingManager == null)
                    {
                        if (APM.ProfilerAttached)
                        {
                            System.Diagnostics.Debug.WriteLine("Detected Raygun APM profiler is attached, initializing profiler support.");

                            _samplingManager = new SamplingManager();
                            _refreshTimer    = new Timer(RefreshAgentSettings, null, TimeSpan.Zero, AgentPollingDelay);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine($"Error initialising APM profiler support: {ex.Message}");
            }
        }
コード例 #8
0
 public Builder WithSamplingManager(ISamplingManager samplingManager)
 {
     SamplingManager = samplingManager ?? throw new ArgumentNullException(nameof(samplingManager));
     return(this);
 }
コード例 #9
0
 public Builder(string serviceName, ISamplingManager samplingManager)
 {
     _serviceName     = serviceName;
     _samplingManager = samplingManager ?? throw new ArgumentNullException(nameof(samplingManager));
 }
コード例 #10
0
 public Builder WithSamplingManager(ISamplingManager samplingManager)
 {
     this._samplingManager = samplingManager;
     return(this);
 }