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); }