示例#1
0
        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());
        }
示例#2
0
 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());
     }
 }
示例#3
0
        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());
        }
示例#4
0
        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);
                }
            }
        }