Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
 public InfluxDbReporter(ILineProtocolClient lineProtocolClient,
     ILineProtocolPayloadBuilder payloadBuilder,
     TimeSpan reportInterval,
     ILoggerFactory loggerFactory,
     Func<string, string, string> metricNameFormatter)
     : this(lineProtocolClient, payloadBuilder, reportInterval, typeof(InfluxDbReporter).Name,
         loggerFactory, metricNameFormatter)
 {
 }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }