protected override void Emit(PointData[] points)
        {
            foreach (var point in points)
                _enricher.Enrich(point);

            _emitter.Emit(points);
        }
 public void Enrich(PointData point)
 {
     point.Tags = point.Tags ?? new Dictionary<string, string>();
     foreach (var tag in _tags)
     {
         if (!point.Tags.ContainsKey(tag.Key))
             point.Tags.Add(tag.Key, tag.Value);
     }
 }
 public void Write(string measurement, IReadOnlyDictionary<string, object> fields, IReadOnlyDictionary<string, string> tags = null)
 {
     try
     {
         var point = new PointData(measurement, fields, tags, DateTime.UtcNow);
         Emit(new[] { point });
     }
     catch (Exception ex)
     {
         CollectorLog.WriteLine("Failed to write point: {0}", ex);
     }
 }
        public void Emit(PointData[] points)
        {
            var payload = new LineProtocolPayload();

            foreach (var point in points)
            {
                payload.Add(new LineProtocolPoint(point.Measurement, point.Fields, point.Tags, point.UtcTimestamp));
            }

            var influxResult = _client.WriteAsync(payload).Result;
            if (!influxResult.Success)
                CollectorLog.WriteLine(influxResult.ErrorMessage);
        }
        public void Emit(PointData[] points)
        {
            lock (_stateLock)
            {
                if (_unloading) return;
                if (!_started)
                {
                    _started = true;
                    _timer.Start(TimeSpan.Zero);
                }
            }

            lock (_queueLock)
            {
                foreach(var point in points)
                    _queue.Enqueue(point);
            }
        }
 protected abstract void Emit(PointData[] points);
 void IPointEmitter.Emit(PointData[] points)
 {
     Emit(points);
 }