private IEnumerable <BucketTimerValueSource> SetupBucketTimers() { const int count = 5; var meterValue = new MeterValue( count, 1, 2, 3, 4, TimeUnit.Seconds, new[] { new MeterValue.SetItem("item", 0.5, new MeterValue(1, 2, 3, 4, 5, TimeUnit.Seconds, new MeterValue.SetItem[0])) }); var histogramValue = new BucketHistogramValue(count, 1, new Dictionary <double, double> { { 1, 1 } }); var timerValue = new BucketTimerValue(meterValue, histogramValue, 0, TimeUnit.Nanoseconds); var timer = new BucketTimerValueSource( BucketTimerNameDefault, ConstantValue.Provider(timerValue), Unit.Requests, TimeUnit.Seconds, TimeUnit.Milliseconds, Tags); return(new[] { timer }); }
public static BucketTimerValueSource FromSerializableMetric(this BucketTimerMetric source) { var rateUnit = source.RateUnit.FromUnit(); var durationUnit = source.DurationUnit.FromUnit(); var rateValue = new MeterValue( source.Count, source.Rate.MeanRate, source.Rate.OneMinuteRate, source.Rate.FiveMinuteRate, source.Rate.FifteenMinuteRate, rateUnit); var histogramValue = new BucketHistogramValue( source.Count, source.Histogram.Sum, new ReadOnlyDictionary <double, double>(source.Histogram.Buckets)); var timerValue = new BucketTimerValue(rateValue, histogramValue, source.ActiveSessions, durationUnit); return(new BucketTimerValueSource( source.Name, ConstantValue.Provider(timerValue), source.Unit, rateUnit, durationUnit, source.Tags.FromDictionary())); }
public static void AddBucketTimerValues( this BucketTimerValue timer, IDictionary <string, object> values, IDictionary <string, string> fields) { if (values == null) { return; } fields.TryAddValuesForKey(values, BucketHistogramFields.Count.ToString(), timer.Histogram.Count); fields.TryAddValuesForKey(values, BucketHistogramFields.Sum.ToString(), timer.Histogram.Sum); foreach (var bucket in timer.Histogram.Buckets) { if (double.IsPositiveInfinity(bucket.Key)) { values[$"{BucketHistogramFields.Bucket}Inf"] = bucket.Value; } else { values[$"{BucketHistogramFields.Bucket}{bucket.Key}"] = bucket.Value; } } }