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 }); }
private MetricsContextValueSource CreateValueSource( string context, GaugeValueSource gauges = null, CounterValueSource counters = null, MeterValueSource meters = null, HistogramValueSource histograms = null, BucketHistogramValueSource bucketHistograms = null, TimerValueSource timers = null, BucketTimerValueSource bucketTimers = null, ApdexValueSource apdexScores = null) { var gaugeValues = gauges != null ? new[] { gauges } : Enumerable.Empty <GaugeValueSource>(); var counterValues = counters != null ? new[] { counters } : Enumerable.Empty <CounterValueSource>(); var meterValues = meters != null ? new[] { meters } : Enumerable.Empty <MeterValueSource>(); var histogramValues = histograms != null ? new[] { histograms } : Enumerable.Empty <HistogramValueSource>(); var bucketHistogramValues = bucketHistograms != null ? new[] { bucketHistograms } : Enumerable.Empty <BucketHistogramValueSource>(); var timerValues = timers != null ? new[] { timers } : Enumerable.Empty <TimerValueSource>(); var bucketTimerValues = bucketTimers != null ? new[] { bucketTimers } : Enumerable.Empty <BucketTimerValueSource>(); var apdexScoreValues = apdexScores != null ? new[] { apdexScores } : Enumerable.Empty <ApdexValueSource>(); return(new MetricsContextValueSource( context, gaugeValues, counterValues, meterValues, histogramValues, bucketHistogramValues, timerValues, bucketTimerValues, apdexScoreValues)); }
public static BucketTimerMetric ToSerializableMetric(this BucketTimerValueSource source) { var histogramData = new BucketTimerMetric.BucketHistogramData { Sum = source.Value.Histogram.Sum, Buckets = source.Value.Histogram.Buckets.ToDictionary(x => x.Key, x => x.Value) }; var rateData = new BucketTimerMetric.RateData { MeanRate = source.Value.Rate.MeanRate, OneMinuteRate = source.Value.Rate.OneMinuteRate, FiveMinuteRate = source.Value.Rate.FiveMinuteRate, FifteenMinuteRate = source.Value.Rate.FifteenMinuteRate }; return(new BucketTimerMetric { Name = source.Name, Count = source.Value.Rate.Count, ActiveSessions = source.Value.ActiveSessions, Rate = rateData, Histogram = histogramData, Unit = source.Unit.Name, RateUnit = source.RateUnit.Unit(), DurationUnit = source.DurationUnit.Unit(), Tags = source.Tags.ToDictionary() }); }
/// <inheritdoc /> public bool IsBucketTimerMatch(BucketTimerValueSource timer) { if (_types != null && !_types.Contains(MetricType.Timer)) { return(false); } return(IsMetricNameMatch(timer.Name) && IsTagMatch(timer.Tags)); }
/// <inheritdoc /> public ITimer BucketTimer <T>(BucketTimerOptions options, MetricTags tags, Func <T> builder) where T : IBucketTimerMetric { var allTags = AllTags(MetricTags.Concat(options.Tags, tags)); var metricName = allTags.AsMetricName(options.Name); return(_bucketTimers.GetOrAdd( metricName, () => { Logger.Trace("Adding Timer {Name} - {@Options} {MesurementUnit} {DurationUnit} {RateUnit} {@Tags}", metricName, options, options.MeasurementUnit.ToString(), options.DurationUnit, options.RateUnit, allTags.ToDictionary()); var timer = builder(); var valueSource = new BucketTimerValueSource( metricName, timer, options.MeasurementUnit, options.RateUnit, options.DurationUnit, allTags); return Tuple.Create((ITimer)timer, valueSource); })); }
public static IEnumerable <Metric> ToPrometheusMetrics( this BucketTimerValueSource metric, Func <string, string> labelNameFormatter) { return(BucketHistogramValueToHistogram(metric.Value.Histogram, metric.Tags, labelNameFormatter)); }
public static IEnumerable <Metric> ToPrometheusMetrics(this BucketTimerValueSource metric) { return(BucketHistogramValueToHistogram(metric.Value.Histogram, metric.Tags)); }
/// <inheritdoc /> public bool IsBucketTimerMatch(BucketTimerValueSource timer) { return(true); }