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