public static IEnumerable <(GraphiteMetricName name, GraphiteValue value)> GetHistogramItemsToSend(this MetricValueSourceBase <HistogramValue> valueSource) { var name = valueSource.ToGraphiteName(MetricType.Histogram); var value = valueSource.Value; yield return(name.WithFolder("Count"), value.Count.ToGraphiteValue()); yield return(name.WithFolder("Last"), value.LastValue.ToGraphiteValue()); yield return(name.WithFolder("Min"), value.Min.ToGraphiteValue()); yield return(name.WithFolder("Mean"), value.Mean.ToGraphiteValue()); yield return(name.WithFolder("Max"), value.Max.ToGraphiteValue()); yield return(name.WithFolder("StdDev"), value.StdDev.ToGraphiteValue()); yield return(name.WithFolder("Median"), value.Median.ToGraphiteValue()); yield return(name.WithFolder("p75"), value.Percentile75.ToGraphiteValue()); yield return(name.WithFolder("p95"), value.Percentile95.ToGraphiteValue()); yield return(name.WithFolder("p98"), value.Percentile98.ToGraphiteValue()); yield return(name.WithFolder("p99"), value.Percentile99.ToGraphiteValue()); yield return(name.WithFolder("p99,9"), value.Percentile999.ToGraphiteValue()); }
public static IEnumerable <(GraphiteMetricName name, GraphiteValue value)> GetGaugeItemsToSend(this MetricValueSourceBase <double> valueSource) { if (!double.IsNaN(valueSource.Value) && !double.IsInfinity(valueSource.Value)) { yield return(valueSource.ToGraphiteName(MetricType.Gauge), valueSource.Value.ToGraphiteValue()); } }
public static IEnumerable <(GraphiteMetricName name, GraphiteValue value)> GetApdexItemsToSend(this MetricValueSourceBase <ApdexValue> valueSource) { var name = valueSource.ToGraphiteName(MetricType.Apdex); var value = valueSource.Value; yield return(name.WithFolder("Samples"), value.SampleSize.ToGraphiteValue()); if (!double.IsNaN(value.Score) && !double.IsInfinity(value.Score)) { yield return(name.WithFolder("Score"), value.Score.ToGraphiteValue()); } yield return(name.WithFolder("Satisfied"), value.Satisfied.ToGraphiteValue()); yield return(name.WithFolder("Tolerating"), value.Tolerating.ToGraphiteValue()); yield return(name.WithFolder("Frustrating"), value.Frustrating.ToGraphiteValue()); }
public static IEnumerable <(GraphiteMetricName name, GraphiteValue value)> GetMeterItemsToSend(this MetricValueSourceBase <MeterValue> valueSource) { var name = valueSource.ToGraphiteName(MetricType.Meter); var value = valueSource.Value; yield return(name.WithFolder("Total"), value.Count.ToGraphiteValue()); foreach (var itemToSend in value.GetMeterItemsToSend(name)) { yield return(itemToSend); } foreach (var item in value.Items) { yield return(name.WithFolder(item.Item, "Count"), item.Value.Count.ToGraphiteValue()); yield return(name.WithFolder(item.Item, "Percent"), item.Percent.ToGraphiteValue()); foreach (var itemToSend in item.Value.GetMeterItemsToSend(name)) { yield return(itemToSend); } } }