public void Can_update() { var metricName = "test_update_histogram"; var options = new BucketHistogramOptions { Name = metricName }; _manager.Update(options, 2L); _fixture.Snapshot.GetBucketHistogramValue(_context, metricName).Sum.Should().Be(2L); _fixture.Snapshot.GetBucketHistogramValue(_context, metricName).Count.Should().Be(1L); }
static MeasureBucketHistogramBenchmark() { Metrics = new BucketHistogramOptions[NumberOfMetrics]; for (var i = 0; i < NumberOfMetrics; i++) { Metrics[i] = new BucketHistogramOptions { Name = $"metric_{i:D4}", Buckets = new[] { .005, .01, .025, .05, .075, .1, .25, .5, .75, 1, 2.5, 5, 7.5, 10 } } } ; }
/// <inheritdoc /> public IBucketHistogram BucketHistogram <T>(BucketHistogramOptions options, MetricTags tags, Func <T> builder) where T : IBucketHistogramMetric { if (_nullMetricsRegistry.IsValueCreated) { return(_nullMetricsRegistry.Value.BucketHistogram(options, tags, builder)); } EnsureContextLabel(options); var contextRegistry = _contexts.GetOrAdd(options.Context, _newContextRegistry); return(contextRegistry.BucketHistogram(options, tags, builder)); }
public void Can_update_multidimensional() { var metricName = "test_update_histogram_multi"; var options = new BucketHistogramOptions { Name = metricName }; _manager.Update(options, _fixture.Tags[0], 2L); _manager.Update(options, _fixture.Tags[1], 4L); _fixture.Snapshot.GetBucketHistogramValue(_context, _fixture.Tags[0].AsMetricName(metricName)).Sum.Should().Be(2L); _fixture.Snapshot.GetBucketHistogramValue(_context, _fixture.Tags[0].AsMetricName(metricName)).Count.Should().Be(1L); _fixture.Snapshot.GetBucketHistogramValue(_context, _fixture.Tags[1].AsMetricName(metricName)).Sum.Should().Be(4L); _fixture.Snapshot.GetBucketHistogramValue(_context, _fixture.Tags[1].AsMetricName(metricName)).Count.Should().Be(1L); }
public PostAndPutRequestSizeHistogramMiddleware( RequestDelegate next, IOptions <MetricsWebTrackingOptions> trackingMiddlwareOptionsAccessor, ILogger <PostAndPutRequestSizeHistogramMiddleware> logger, IMetrics metrics) { _next = next ?? throw new ArgumentNullException(nameof(next)); _logger = logger; _metrics = metrics; if (trackingMiddlwareOptionsAccessor.Value.UseBucketHistograms) { _useBucketHistograms = true; _postSizeBucketHistogramOptions = HttpRequestMetricsRegistry.BucketHistograms.PostRequestSizeHistogram(trackingMiddlwareOptionsAccessor.Value.RequestSizeHistogramBuckets); _putSizeBucketHistogramOptions = HttpRequestMetricsRegistry.BucketHistograms.PutRequestSizeHistogram(trackingMiddlwareOptionsAccessor.Value.RequestSizeHistogramBuckets); } }
public OAuthTrackingMiddleware( RequestDelegate next, IOptions <MetricsWebTrackingOptions> trackingMiddlwareOptionsAccessor, ILogger <OAuthTrackingMiddleware> logger, IMetrics metrics) { _next = next; _logger = logger; _metrics = metrics; _ignoredHttpStatusCodes = trackingMiddlwareOptionsAccessor.Value.IgnoredHttpStatusCodes; if (trackingMiddlwareOptionsAccessor.Value.UseBucketHistograms) { _useBucketHistograms = true; _postSizeBucketHistogramOptions = OAuthRequestMetricsRegistry.BucketHistograms.PostRequestSizeHistogram(trackingMiddlwareOptionsAccessor.Value.RequestSizeHistogramBuckets); _putSizeBucketHistogramOptions = OAuthRequestMetricsRegistry.BucketHistograms.PutRequestSizeHistogram(trackingMiddlwareOptionsAccessor.Value.RequestSizeHistogramBuckets); } }
/// <inheritdoc /> public IBucketHistogram BucketHistogram <T>(BucketHistogramOptions options, MetricTags tags, Func <T> builder) where T : IBucketHistogramMetric { var allTags = AllTags(MetricTags.Concat(options.Tags, tags)); var metricName = allTags.AsMetricName(options.Name); return(_bucketHistograms.GetOrAdd( metricName, () => { Logger.Trace("Adding Bucket Histogram {Name} - {@Options} {MesurementUnit} {@Tags}", metricName, options, options.MeasurementUnit.ToString(), allTags.ToDictionary()); var histogram = builder(); var valueSource = new BucketHistogramValueSource( metricName, histogram, options.MeasurementUnit, allTags); return Tuple.Create((IBucketHistogram)histogram, valueSource); })); }
public IBucketHistogram BucketHistogram <T>(BucketHistogramOptions options, Func <T> builder) where T : IBucketHistogramMetric { return(_bucketHistogramInstance); }
/// <summary> /// Records a metric for the size of a HTTP PUT requests. /// </summary> /// <param name="metrics">The metrics.</param> /// <param name="bucketHistogramOptions">The bucket histogram options</param> /// <param name="value">The value.</param> public static void UpdatePutRequestSize(this IMetrics metrics, BucketHistogramOptions bucketHistogramOptions, long value) { metrics.Measure.BucketHistogram.Update(bucketHistogramOptions, value); }
/// <summary> /// Records a metric for the size of a HTTP PUT requests. /// </summary> /// <param name="metrics">The metrics.</param> /// <param name="bucketHistogramOptions">The bucket histogram options</param> /// <param name="value">The value.</param> /// <param name="clientId">The OAuth2 client identifier to tag the histogram values.</param> /// <param name="routeTemplate">The route template of the endpoint.</param> public static void UpdateClientPutRequestSize(this IMetrics metrics, BucketHistogramOptions bucketHistogramOptions, long value, string clientId, string routeTemplate) { var tags = new MetricTags(new[] { MiddlewareConstants.DefaultTagKeys.ClientId, MiddlewareConstants.DefaultTagKeys.Route }, new[] { clientId, routeTemplate }); metrics.Measure.BucketHistogram.Update(bucketHistogramOptions, tags, value); }