Пример #1
0
        private void ReportMeter(string name, MetricValueSource <MeterValue> valueSource)
        {
            var data = new Dictionary <string, object>();

            if (valueSource.Value.Items.Any())
            {
                foreach (var item in valueSource.Value.Items.Distinct())
                {
                    var itemData = new Dictionary <string, object>();

                    item.Value.AddMeterValues(itemData);
                    itemData.Add("percent", item.Percent);

                    var itemKeys   = itemData.Keys.ToList();
                    var itemValues = itemKeys.Select(k => itemData[k]).ToList();
                    Pack($"{name}__{valueSource.FormattedMetricName()}__items", itemKeys, itemValues, item.Tags);
                }
            }

            valueSource.Value.AddMeterValues(data);

            var keys   = data.Keys.ToList();
            var values = keys.Select(k => data[k]);

            Pack($"{name}__{valueSource.FormattedMetricName()}", keys, values, valueSource.Tags);
        }
Пример #2
0
 private void ReportGauge(string name, MetricValueSource <double> valueSource)
 {
     if (!double.IsNaN(valueSource.Value) && !double.IsInfinity(valueSource.Value))
     {
         Pack($"{name}__{valueSource.FormattedMetricName()}", valueSource.Value, valueSource.Tags);
     }
 }
Пример #3
0
        private void ReportHistogram(string name, MetricValueSource <HistogramValue> valueSource)
        {
            var data = new Dictionary <string, object>();

            valueSource.Value.AddHistogramValues(data);

            var keys   = data.Keys.ToList();
            var values = keys.Select(k => data[k]);

            Pack($"{name}__{valueSource.FormattedMetricName()}", keys, values, valueSource.Tags);
        }
Пример #4
0
        private void ReportApdex(string name, MetricValueSource <ApdexValue> valueSource)
        {
            var apdexValueSource = valueSource as ApdexValueSource;

            if (apdexValueSource == null)
            {
                return;
            }

            var data = new Dictionary <string, object>();

            valueSource.Value.AddApdexValues(data);

            var keys   = data.Keys.ToList();
            var values = keys.Select(k => data[k]);

            Pack($"{name}__{valueSource.FormattedMetricName()}", keys, values, valueSource.Tags);
        }