public static void PackMeterSetItems <T>( this ILineProtocolPayloadBuilder payloadBuilder, Func <string, string, string> metricNameFormatter, string context, MetricValueSourceBase <T> valueSource, MeterValue.SetItem setItem) { var itemData = new Dictionary <string, object>(); setItem.Value.AddMeterValues(itemData); itemData.Add("percent", setItem.Percent); var keys = itemData.Keys.ToList(); var values = keys.Select(k => itemData[k]); var tags = MetricTags.Concat(valueSource.Tags, setItem.Tags); if (valueSource.Group.IsPresent()) { var groupTag = new MetricTags(MetricGroupTagKey, metricNameFormatter(string.Empty, valueSource.Name)); payloadBuilder.Pack(metricNameFormatter(context, valueSource.Group + MetricSetItemSuffix), keys, values, MetricTags.Concat(groupTag, tags)); return; } payloadBuilder.Pack(metricNameFormatter(context, valueSource.Name + MetricSetItemSuffix), keys, values, setItem.Tags); }
public static void PackMeterSetItems <T>( this ILineProtocolPayloadBuilder payloadBuilder, Func <string, string, string> metricNameFormatter, string context, MetricValueSourceBase <T> valueSource, MeterValue.SetItem setItem) { var itemData = new Dictionary <string, object>(); setItem.Value.AddMeterValues(itemData); itemData.AddIfNotNanOrInfinity("percent", setItem.Percent); var keys = itemData.Keys.ToList(); var values = keys.Select(k => itemData[k]); var tags = MetricTags.Concat(valueSource.Tags, setItem.Tags); if (valueSource.IsMultidimensional) { payloadBuilder.Pack( metricNameFormatter(context, valueSource.MultidimensionalName + MetricSetItemSuffix), keys, values, tags); return; } payloadBuilder.Pack(metricNameFormatter(context, valueSource.Name + MetricSetItemSuffix), keys, values, setItem.Tags); }
public InfluxDbReporter(ILineProtocolClient lineProtocolClient, ILineProtocolPayloadBuilder payloadBuilder, TimeSpan reportInterval, ILoggerFactory loggerFactory, Func<string, string, string> metricNameFormatter) : this(lineProtocolClient, payloadBuilder, reportInterval, typeof(InfluxDbReporter).Name, loggerFactory, metricNameFormatter) { }
private static InfluxDbReporter CreateReporter(ILineProtocolPayloadBuilder payloadBuilder) { var lineProtocolClientMock = new Mock <ILineProtocolClient>(); var reportInterval = TimeSpan.FromSeconds(1); var loggerFactory = new LoggerFactory(); var settings = new InfluxDBReporterSettings(); return(new InfluxDbReporter(lineProtocolClientMock.Object, payloadBuilder, reportInterval, loggerFactory, settings.MetricNameFormatter)); }
public InfluxDbReporter(ILineProtocolClient lineProtocolClient, ILineProtocolPayloadBuilder payloadBuilder, TimeSpan reportInterval, string name, ILoggerFactory loggerFactory, Func<string, string, string> metricNameFormatter) { ReportInterval = reportInterval; Name = name; _payloadBuilder = payloadBuilder; _metricNameFormatter = metricNameFormatter; _logger = loggerFactory.CreateLogger<InfluxDbReporter>(); _lineProtocolClient = lineProtocolClient; }
public static void PackValueSource( this ILineProtocolPayloadBuilder payloadBuilder, Func <string, string, string> metricNameFormatter, string context, MetricValueSourceBase <double> valueSource) { if (valueSource.Group.IsPresent()) { var groupTag = new MetricTags(MetricGroupTagKey, metricNameFormatter(string.Empty, valueSource.Name)); payloadBuilder.Pack(metricNameFormatter(context, valueSource.Group), valueSource.Value, MetricTags.Concat(groupTag, valueSource.Tags)); return; } payloadBuilder.Pack(metricNameFormatter(context, valueSource.Name), valueSource.Value, valueSource.Tags); }
public static void PackValueSource( this ILineProtocolPayloadBuilder payloadBuilder, Func <string, string, string> metricNameFormatter, string context, MetricValueSourceBase <double> valueSource) { if (valueSource.IsMultidimensional) { payloadBuilder.Pack( metricNameFormatter(context, valueSource.MultidimensionalName), valueSource.Value, valueSource.Tags); return; } payloadBuilder.Pack(metricNameFormatter(context, valueSource.Name), valueSource.Value, valueSource.Tags); }
public static void PackValueSource( this ILineProtocolPayloadBuilder payloadBuilder, Func <string, string, string> metricNameFormatter, string context, MetricValueSourceBase <CounterValue> valueSource, CounterValueSource counterValueSource) { var count = valueSource.ValueProvider.GetValue(resetMetric: counterValueSource.ResetOnReporting).Count; if (valueSource.Group.IsPresent()) { var groupTag = new MetricTags(MetricGroupTagKey, metricNameFormatter(string.Empty, valueSource.Name)); payloadBuilder.Pack(metricNameFormatter(context, valueSource.Group), count, MetricTags.Concat(groupTag, valueSource.Tags)); return; } payloadBuilder.Pack(metricNameFormatter(context, valueSource.Name), count, valueSource.Tags); }
public static void PackValueSource <T>( this ILineProtocolPayloadBuilder payloadBuilder, Func <string, string, string> metricNameFormatter, string context, MetricValueSourceBase <T> valueSource, Dictionary <string, object> data) { var keys = data.Keys.ToList(); var values = keys.Select(k => data[k]); if (valueSource.Group.IsPresent()) { var groupTag = new MetricTags(MetricGroupTagKey, metricNameFormatter(string.Empty, valueSource.Name)); payloadBuilder.Pack(metricNameFormatter(context, valueSource.Group), keys, values, MetricTags.Concat(groupTag, valueSource.Tags)); return; } payloadBuilder.Pack(metricNameFormatter(context, valueSource.Name), keys, values, valueSource.Tags); }
public static void PackValueSource( this ILineProtocolPayloadBuilder payloadBuilder, Func <string, string, string> metricNameFormatter, string context, MetricValueSourceBase <CounterValue> valueSource, CounterValueSource counterValueSource) { var count = valueSource.ValueProvider.GetValue(resetMetric: counterValueSource.ResetOnReporting).Count; if (valueSource.IsMultidimensional) { payloadBuilder.Pack( metricNameFormatter(context, valueSource.MultidimensionalName), count, valueSource.Tags); return; } payloadBuilder.Pack(metricNameFormatter(context, valueSource.Name), count, valueSource.Tags); }
public static void PackValueSource <T>( this ILineProtocolPayloadBuilder payloadBuilder, Func <string, string, string> metricNameFormatter, string context, MetricValueSourceBase <T> valueSource, Dictionary <string, object> data) { var keys = data.Keys.ToList(); var values = keys.Select(k => data[k]); if (valueSource.IsMultidimensional) { payloadBuilder.Pack( metricNameFormatter(context, valueSource.MultidimensionalName), keys, values, valueSource.Tags); return; } payloadBuilder.Pack(metricNameFormatter(context, valueSource.Name), keys, values, valueSource.Tags); }