Exemple #1
0
 public RelayMetricsService(string serviceName,
                            CancellationToken cancellationToken,
                            string prefix = null)
 {
     _prefix                   = serviceName + "." + (String.IsNullOrEmpty(prefix) ? String.Empty : (prefix + "."));
     _counts                   = new ConcurrentDictionary <string, int>();
     _gauges                   = new ConcurrentDictionary <string, int>();
     _intervalService          = new IntervalService(60, cancellationToken);
     _intervalService.Elapsed += SendPendingMetrics;
     _intervalService.Start();
 }
        public TimedBufferBlock(TimeSpan flushPeriod,
                                Action <T[]> flushAction,
                                IIntervalService interval           = null,
                                CancellationToken?cancellationToken = null)
        {
            _buffer = new ConcurrentStack <T>();

            _completionTask = new Task(() =>
            {
                _isActive = false;
            });
            _flushAction = flushAction;
            if (interval == null)
            {
                _intervalService = new IntervalService(flushPeriod, cancellationToken);
            }
            _intervalService.Elapsed += (sender, e) =>
            {
                Flush();
            };
            _intervalService.Start();
            _isActive = true;
        }