예제 #1
0
        public RedisOutput(TimberWinR.Manager manager, Parser.RedisOutputParameters parameters, CancellationToken cancelToken)
            : base(cancelToken, "Redis")
        {
            _redisDepth = 0;
            _batchCount = parameters.BatchCount;
            _maxBatchCount = parameters.MaxBatchCount;
            // Make sure maxBatchCount is larger than batchCount
            if (_maxBatchCount <= _batchCount)
                _maxBatchCount = _batchCount * 10;

            _manager = manager;
            _redisHostIndex = 0;
            _redisHosts = parameters.Host;
            _jsonQueue = new List<string>();
            _port = parameters.Port;
            _timeout = parameters.Timeout;
            _logstashIndexName = parameters.Index;
            _interval = parameters.Interval;
            _numThreads = parameters.NumThreads;
            _errorCount = 0;
            _lastErrorTimeUTC = null;
            _maxQueueSize = parameters.MaxQueueSize;
            _queueOverflowDiscardOldest = parameters.QueueOverflowDiscardOldest;
            _batchCounter = new BatchCounter(_batchCount, _maxBatchCount);
            _currentBatchCount = _batchCount;

            for (int i = 0; i < parameters.NumThreads; i++)
            {
                var redisThread = new Task(RedisSender, cancelToken);
                redisThread.Start();
            }
        }
예제 #2
0
        public ElasticsearchOutput(TimberWinR.Manager manager, Parser.ElasticsearchOutputParameters parameters, CancellationToken cancelToken)
            : base(cancelToken, "Elasticsearch")
        {
            _sentMessages = 0;
            _errorCount = 0;

            _parameters = parameters;
            _flushSize = parameters.FlushSize;
            _idleFlushTimeSeconds = parameters.IdleFlushTimeInSeconds;
            _protocol = parameters.Protocol;
            _timeout = parameters.Timeout;
            _manager = manager;
            _port = parameters.Port;
            _ssl = parameters.Ssl;
            _username = parameters.Username;
            _password = parameters.Password;
            _interval = parameters.Interval;
            _hosts = parameters.Host;
            _jsonQueue = new List<JObject>();
            _numThreads = parameters.NumThreads;
            _maxQueueSize = parameters.MaxQueueSize;
            _queueOverflowDiscardOldest = parameters.QueueOverflowDiscardOldest;
            _disablePing = !parameters.EnablePing;
            _pingTimeout = parameters.PingTimeout;

            for (int i = 0; i < parameters.NumThreads; i++)
            {
                Task.Factory.StartNew(ElasticsearchSender, cancelToken, TaskCreationOptions.LongRunning, TaskScheduler.Current);
            }
        }
예제 #3
0
        public ElasticsearchOutput(TimberWinR.Manager manager, Parser.ElasticsearchOutputParameters parameters, CancellationToken cancelToken)
            : base(cancelToken, "Elasticsearch")
        {
            _sentMessages = 0;
            _errorCount   = 0;

            _parameters           = parameters;
            _flushSize            = parameters.FlushSize;
            _idleFlushTimeSeconds = parameters.IdleFlushTimeInSeconds;
            _protocol             = parameters.Protocol;
            _timeout      = parameters.Timeout;
            _manager      = manager;
            _port         = parameters.Port;
            _interval     = parameters.Interval;
            _hosts        = parameters.Host;
            _jsonQueue    = new List <JObject>();
            _numThreads   = parameters.NumThreads;
            _maxQueueSize = parameters.MaxQueueSize;
            _queueOverflowDiscardOldest = parameters.QueueOverflowDiscardOldest;
            _disablePing = !parameters.EnablePing;
            _pingTimeout = parameters.PingTimeout;

            for (int i = 0; i < parameters.NumThreads; i++)
            {
                Task.Factory.StartNew(ElasticsearchSender, cancelToken, TaskCreationOptions.LongRunning, TaskScheduler.Current);
            }
        }
예제 #4
0
        public StatsDOutput(TimberWinR.Manager manager, Parser.StatsDOutputParameters parameters, CancellationToken cancelToken)
            : base(cancelToken, "StatsD")
        {
            _params                     = parameters;
            _manager                    = manager;
            _port                       = parameters.Port;
            _host                       = parameters.Host;
            _interval                   = parameters.Interval;
            _flushSize                  = parameters.FlushSize;
            _idleFlushTimeSeconds       = parameters.IdleFlushTimeInSeconds;
            _maxQueueSize               = parameters.MaxQueueSize;
            _queueOverflowDiscardOldest = parameters.QueueOverflowDiscardOldest;
            _numThreads                 = parameters.NumThreads;
            _jsonQueue                  = new List <JObject>();

            var metricsConfig = new MetricsConfig
            {
                StatsdServerName = _host,
                Prefix           = parameters.Namespace,
            };

            StatsdClient.Metrics.Configure(metricsConfig);

            for (int i = 0; i < _numThreads; i++)
            {
                Task.Factory.StartNew(StatsDSender, cancelToken, TaskCreationOptions.LongRunning, TaskScheduler.Current);
            }
        }
예제 #5
0
        public StatsDOutput(TimberWinR.Manager manager, Parser.StatsDOutputParameters parameters, CancellationToken cancelToken)
            : base(cancelToken, "StatsD")
        {
            _params = parameters;
            _manager = manager;
            _port = parameters.Port;
            _host = parameters.Host;
            _interval = parameters.Interval;
            _flushSize = parameters.FlushSize;
            _idleFlushTimeSeconds = parameters.IdleFlushTimeInSeconds;
            _maxQueueSize = parameters.MaxQueueSize;
            _queueOverflowDiscardOldest = parameters.QueueOverflowDiscardOldest;
            _numThreads = parameters.NumThreads;
            _jsonQueue = new List<JObject>();

            var metricsConfig = new MetricsConfig
            {
                StatsdServerName = _host,
                Prefix = parameters.Namespace,
            };

            StatsdClient.Metrics.Configure(metricsConfig);

            for (int i = 0; i < _numThreads; i++)
            {
                Task.Factory.StartNew(StatsDSender, cancelToken, TaskCreationOptions.LongRunning, TaskScheduler.Current);
            }
        }
예제 #6
0
        public RedisOutput(TimberWinR.Manager manager, Parser.RedisOutputParameters parameters, CancellationToken cancelToken)
            : base(cancelToken, "Redis")
        {
            _redisDepth    = 0;
            _batchCount    = parameters.BatchCount;
            _maxBatchCount = parameters.MaxBatchCount;
            // Make sure maxBatchCount is larger than batchCount
            if (_maxBatchCount <= _batchCount)
            {
                _maxBatchCount = _batchCount * 10;
            }

            _manager                    = manager;
            _redisHostIndex             = 0;
            _redisHosts                 = parameters.Host;
            _jsonQueue                  = new List <string>();
            _port                       = parameters.Port;
            _timeout                    = parameters.Timeout;
            _logstashIndexName          = parameters.Index;
            _interval                   = parameters.Interval;
            _numThreads                 = parameters.NumThreads;
            _errorCount                 = 0;
            _lastErrorTimeUTC           = null;
            _maxQueueSize               = parameters.MaxQueueSize;
            _queueOverflowDiscardOldest = parameters.QueueOverflowDiscardOldest;
            _batchCounter               = new BatchCounter(_batchCount, _maxBatchCount);
            _currentBatchCount          = _batchCount;

            for (int i = 0; i < parameters.NumThreads; i++)
            {
                var redisThread = new Task(RedisSender, cancelToken);
                redisThread.Start();
            }
        }
예제 #7
0
 /// <summary>
 /// The Main body of the Service Worker Thread
 /// </summary>
 private void RunService()
 {
     _manager = new TimberWinR.Manager(_args.ConfigFile, _args.LogLevel, _args.LogfileDir, _cancellationToken);
     if (_args.DiagnosticPort > 0)
     {
         _diags = new Diagnostics.Diagnostics(_manager, _cancellationToken, _args.DiagnosticPort);
     }
 }
예제 #8
0
 /// <summary>
 /// The Main body of the Service Worker Thread
 /// </summary>
 private void RunService()
 {
     StartingUp = true;
     _manager   = new TimberWinR.Manager(_args.ConfigFile, _args.LogLevel, _args.LogfileDir, _args.LiveMonitor, _cancellationToken);
     if (_args.DiagnosticPort > 0)
     {
         _diags = new Diagnostics.Diagnostics(_manager, _cancellationToken, _args.DiagnosticPort);
     }
     Started = true;
 }
예제 #9
0
        public StdoutOutput(TimberWinR.Manager manager, Parser.StdoutOutputParameters eo, CancellationToken cancelToken)
            : base(cancelToken, "Stdout")
        {
            _sentMessages = 0;
            _manager = manager;
            _interval = eo.Interval;
            _jsonQueue = new List<JObject>();

            var elsThread = new Task(StdoutSender, cancelToken);
            elsThread.Start();
        }
예제 #10
0
        public StdoutOutput(TimberWinR.Manager manager, Parser.StdoutOutput eo, CancellationToken cancelToken)
            : base(cancelToken, "Stdout")
        {
            _sentMessages = 0;
            _manager      = manager;
            _interval     = eo.Interval;
            _jsonQueue    = new List <JObject>();

            var elsThread = new Task(StdoutSender, cancelToken);

            elsThread.Start();
        }
예제 #11
0
        public FileOutput(TimberWinR.Manager manager, Parser.FileOutputParameters arguments, CancellationToken cancelToken)
            : base(cancelToken, "File")
        {
            _arguments = arguments;
            _sentMessages = 0;
            _manager = manager;
            _interval = arguments.Interval;
            _jsonQueue = new List<JObject>();

            var elsThread = new Task(FileSender, cancelToken);
            elsThread.Start();
        }
예제 #12
0
        public FileOutput(TimberWinR.Manager manager, Parser.FileOutputParameters arguments, CancellationToken cancelToken)
            : base(cancelToken, "File")
        {
            _arguments    = arguments;
            _sentMessages = 0;
            _manager      = manager;
            _interval     = arguments.Interval;
            _jsonQueue    = new List <JObject>();

            var elsThread = new Task(FileSender, cancelToken);

            elsThread.Start();
        }
예제 #13
0
        public ElasticsearchOutput(TimberWinR.Manager manager, Parser.ElasticsearchOutput eo, CancellationToken cancelToken)
            : base(cancelToken, "Elasticsearch")
        {
            _sentMessages = 0;
            _errorCount   = 0;

            _protocol   = eo.Protocol;
            _timeout    = eo.Timeout;
            _manager    = manager;
            _port       = eo.Port;
            _interval   = eo.Interval;
            _host       = eo.Host;
            _index      = eo.Index;
            _hostIndex  = 0;
            _jsonQueue  = new List <JObject>();
            _numThreads = eo.NumThreads;

            for (int i = 0; i < eo.NumThreads; i++)
            {
                Task.Factory.StartNew(ElasticsearchSender, cancelToken, TaskCreationOptions.LongRunning, TaskScheduler.Current);
            }
        }
예제 #14
0
        public RedisOutput(TimberWinR.Manager manager, Parser.RedisOutput ro, CancellationToken cancelToken)
            : base(cancelToken, "Redis")
        {
            _redisDepth        = 0;
            _batchCount        = ro.BatchCount;
            _manager           = manager;
            _redisHostIndex    = 0;
            _redisHosts        = ro.Host;
            _jsonQueue         = new List <string>();
            _port              = ro.Port;
            _timeout           = ro.Timeout;
            _logstashIndexName = ro.Index;
            _interval          = ro.Interval;
            _numThreads        = ro.NumThreads;
            _errorCount        = 0;

            for (int i = 0; i < ro.NumThreads; i++)
            {
                var redisThread = new Task(RedisSender, cancelToken);
                redisThread.Start();
            }
        }
예제 #15
0
 /// <summary>
 /// The Main body of the Service Worker Thread
 /// </summary>
 private void RunService()
 {
     StartingUp = true;
     _manager = new TimberWinR.Manager(_args.ConfigFile, _args.LogLevel, _args.LogfileDir, _args.LiveMonitor, _cancellationToken);
     if (_args.DiagnosticPort > 0)
         _diags = new Diagnostics.Diagnostics(_manager, _cancellationToken, _args.DiagnosticPort);
     Started = true;
 }