From 864bd064af61929f36a0cb9ed391f6c44a97bd64 Mon Sep 17 00:00:00 2001 From: martincostello Date: Sat, 20 Jun 2026 15:53:10 +0100 Subject: [PATCH 1/7] [Prometheus.AspNetCore] Improve tests - Simplify test names. - Use snapshots. - Fix buffer resize test to actually grow the buffer. --- .../PrometheusExporterMiddlewareTests.cs | 219 +- ...izeIncreasesWithLotOfMetrics.verified.text | 3004 +++++++++++++++++ ...WithCustomScrapeEndpointPath.verified.text | 8 + ...alizer.RunWithDefaultOptions.verified.text | 8 + ....RunWithHttpContextPredicate.verified.text | 8 + ...apPrometheusScrapingEndpoint.verified.text | 8 + ...ingEndpointWithMeterProvider.verified.text | 8 + ...WithPathNamedOptionsOverride.verified.text | 8 + ...pingEndpointWithPathOverride.verified.text | 8 + ...ializer.RunWithMeterProvider.verified.text | 8 + ...sSerializer.RunWithMixedPath.verified.text | 8 + ...RunWithMixedPredicateAndPath.verified.text | 8 + ...sSerializer.RunWithNoMetrics.verified.text | 4 + ...WithOpenMetricsVersionHeader.verified.text | 8 + ...icsVersionHeaderAndMeterTags.verified.text | 8 + ...WithPathNamedOptionsOverride.verified.text | 8 + ...thScrapeEndpointPathFallback.verified.text | 8 + ...ackFromAddPrometheusExporter.verified.text | 8 + ...thScrapeEndpointPathOverride.verified.text | 8 + ...zer.RunWithTextPlainResponse.verified.text | 7 + ...extPlainResponseAndMeterTags.verified.text | 7 + 21 files changed, 3304 insertions(+), 65 deletions(-) create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.BufferSizeIncreasesWithLotOfMetrics.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithCustomScrapeEndpointPath.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithDefaultOptions.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithHttpContextPredicate.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpoint.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithMeterProvider.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithPathNamedOptionsOverride.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithPathOverride.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMeterProvider.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMixedPath.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMixedPredicateAndPath.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithNoMetrics.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithOpenMetricsVersionHeader.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithOpenMetricsVersionHeaderAndMeterTags.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithPathNamedOptionsOverride.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathFallback.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathFallbackFromAddPrometheusExporter.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathOverride.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTextPlainResponse.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTextPlainResponseAndMeterTags.verified.text diff --git a/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs b/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs index 4a9ad97ac97..42b33bf7949 100644 --- a/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs +++ b/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs @@ -13,41 +13,53 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; +using OpenTelemetry.Exporter.Prometheus.Tests; using OpenTelemetry.Metrics; using OpenTelemetry.Resources; -using OpenTelemetry.Tests; namespace OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests; public sealed class PrometheusExporterMiddlewareTests { + private const string MeterName = nameof(PrometheusExporterMiddlewareTests); private const string MeterVersion = "1.0.1"; - private static readonly string MeterName = Utils.GetCurrentMethodName(); - [Fact] - public Task PrometheusExporterMiddlewareIntegration() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithDefaultOptions() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics", app => app.UseOpenTelemetryPrometheusScrapingEndpoint()); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public Task PrometheusExporterMiddlewareIntegration_Options() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithCustomScrapeEndpointPath() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics_options", app => app.UseOpenTelemetryPrometheusScrapingEndpoint(), services => services.Configure(o => o.ScrapeEndpointPath = "metrics_options")); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public Task PrometheusExporterMiddlewareIntegration_OptionsFallback() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithScrapeEndpointPathFallback() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics", app => app.UseOpenTelemetryPrometheusScrapingEndpoint(), services => services.Configure(o => o.ScrapeEndpointPath = null)); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public Task PrometheusExporterMiddlewareIntegration_OptionsViaAddPrometheusExporter() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithScrapeEndpointPathFallbackFromAddPrometheusExporter() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics_from_AddPrometheusExporter", app => app.UseOpenTelemetryPrometheusScrapingEndpoint(), configureOptions: o => @@ -55,15 +67,23 @@ public Task PrometheusExporterMiddlewareIntegration_OptionsViaAddPrometheusExpor o.ScrapeEndpointPath = "/metrics_from_AddPrometheusExporter"; }); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public Task PrometheusExporterMiddlewareIntegration_PathOverride() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithScrapeEndpointPathOverride() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics_override", app => app.UseOpenTelemetryPrometheusScrapingEndpoint("/metrics_override")); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public Task PrometheusExporterMiddlewareIntegration_WithPathNamedOptionsOverride() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithPathNamedOptionsOverride() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics_override", app => app.UseOpenTelemetryPrometheusScrapingEndpoint( meterProvider: null, @@ -76,15 +96,24 @@ public Task PrometheusExporterMiddlewareIntegration_WithPathNamedOptionsOverride services.Configure("myOptions", o => o.ScrapeEndpointPath = "/metrics_override"); }); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public Task PrometheusExporterMiddlewareIntegration_Predicate() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithHttpContextPredicate() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics_predicate?enabled=true", - app => app.UseOpenTelemetryPrometheusScrapingEndpoint(httpcontext => httpcontext.Request.Path == "/metrics_predicate" && httpcontext.Request.Query["enabled"] == "true")); + app => app.UseOpenTelemetryPrometheusScrapingEndpoint( + httpContext => httpContext.Request.Path == "/metrics_predicate" && httpContext.Request.Query["enabled"] == "true")); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } [Fact] - public Task PrometheusExporterMiddlewareIntegration_MixedPredicateAndPath() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithMixedPredicateAndPath() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics_predicate", app => app.UseOpenTelemetryPrometheusScrapingEndpoint( meterProvider: null, @@ -107,9 +136,13 @@ public Task PrometheusExporterMiddlewareIntegration_MixedPredicateAndPath() => Assert.Equal("true", headers.FirstOrDefault()); }); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public Task PrometheusExporterMiddlewareIntegration_MixedPath() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithMixedPath() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics_path", app => app.UseOpenTelemetryPrometheusScrapingEndpoint( meterProvider: null, @@ -132,8 +165,11 @@ public Task PrometheusExporterMiddlewareIntegration_MixedPath() => Assert.Equal("true", headers.FirstOrDefault()); }); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public async Task PrometheusExporterMiddlewareIntegration_MeterProvider() + public async Task RunWithMeterProvider() { using var meterProvider = Sdk.CreateMeterProviderBuilder() .AddMeter(MeterName) @@ -141,7 +177,7 @@ public async Task PrometheusExporterMiddlewareIntegration_MeterProvider() .AddPrometheusExporter() .Build(); - await RunPrometheusExporterMiddlewareIntegrationTest( + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics", app => app.UseOpenTelemetryPrometheusScrapingEndpoint( meterProvider: meterProvider, @@ -150,32 +186,47 @@ await RunPrometheusExporterMiddlewareIntegrationTest( configureBranchedPipeline: null, optionsName: null), registerMeterProvider: false); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); } [Fact] - public Task PrometheusExporterMiddlewareIntegration_NoMetrics() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithNoMetrics() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics", app => app.UseOpenTelemetryPrometheusScrapingEndpoint(), skipMetrics: true); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public Task PrometheusExporterMiddlewareIntegration_MapEndpoint() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithMapPrometheusScrapingEndpoint() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics", app => app.UseRouting().UseEndpoints(builder => builder.MapPrometheusScrapingEndpoint()), services => services.AddRouting()); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public Task PrometheusExporterMiddlewareIntegration_MapEndpoint_WithPathOverride() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithMapPrometheusScrapingEndpointWithPathOverride() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics_path", app => app.UseRouting().UseEndpoints(builder => builder.MapPrometheusScrapingEndpoint("metrics_path")), services => services.AddRouting()); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public Task PrometheusExporterMiddlewareIntegration_MapEndpoint_WithPathNamedOptionsOverride() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithMapPrometheusScrapingEndpointWithPathNamedOptionsOverride() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics_path", app => app.UseRouting().UseEndpoints(builder => builder.MapPrometheusScrapingEndpoint( path: null, @@ -188,8 +239,11 @@ public Task PrometheusExporterMiddlewareIntegration_MapEndpoint_WithPathNamedOpt services.Configure("myOptions", o => o.ScrapeEndpointPath = "/metrics_path"); }); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public async Task PrometheusExporterMiddlewareIntegration_MapEndpoint_WithMeterProvider() + public async Task RunWithMapPrometheusScrapingEndpointWithMeterProvider() { using var meterProvider = Sdk.CreateMeterProviderBuilder() .AddMeter(MeterName) @@ -197,7 +251,7 @@ public async Task PrometheusExporterMiddlewareIntegration_MapEndpoint_WithMeterP .AddPrometheusExporter() .Build(); - await RunPrometheusExporterMiddlewareIntegrationTest( + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics", app => app.UseRouting().UseEndpoints(builder => builder.MapPrometheusScrapingEndpoint( path: null, @@ -206,26 +260,36 @@ await RunPrometheusExporterMiddlewareIntegrationTest( optionsName: null)), services => services.AddRouting(), registerMeterProvider: false); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); } [Fact] - public Task PrometheusExporterMiddlewareIntegration_TextPlainResponse() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithTextPlainResponse() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics", app => app.UseOpenTelemetryPrometheusScrapingEndpoint(), acceptHeader: "text/plain"); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] - public Task PrometheusExporterMiddlewareIntegration_UseOpenMetricsVersionHeader() => - RunPrometheusExporterMiddlewareIntegrationTest( + public async Task RunWithOpenMetricsVersionHeader() + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics", app => app.UseOpenTelemetryPrometheusScrapingEndpoint(), acceptHeader: "application/openmetrics-text; version=1.0.0", contentType: "application/openmetrics-text; version=1.0.0; charset=utf-8; escaping=underscores"); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Theory] [MemberData(nameof(PrometheusAcceptHeaders.Valid), MemberType = typeof(PrometheusAcceptHeaders))] - public void PrometheusExporterMiddlewareNegotiate_UsesTypedAcceptHeaders( + public void Negotiate_UsesTypedAcceptHeaders( string accept, string mediaType, bool isOpenMetrics, @@ -245,7 +309,7 @@ public void PrometheusExporterMiddlewareNegotiate_UsesTypedAcceptHeaders( [Theory] [MemberData(nameof(PrometheusAcceptHeaders.Invalid), MemberType = typeof(PrometheusAcceptHeaders))] - public void PrometheusExporterMiddlewareNegotiate_UsesFallbackForInvalidHeader(string accept) + public void Negotiate_UsesFallbackForInvalidHeader(string accept) { var context = new DefaultHttpContext(); context.Request.Headers.Accept = accept; @@ -256,7 +320,7 @@ public void PrometheusExporterMiddlewareNegotiate_UsesFallbackForInvalidHeader(s } [Fact] - public Task PrometheusExporterMiddlewareIntegration_TextPlainResponse_WithMeterTags() + public async Task RunWithTextPlainResponseAndMeterTags() { var meterTags = new KeyValuePair[] { @@ -264,15 +328,17 @@ public Task PrometheusExporterMiddlewareIntegration_TextPlainResponse_WithMeterT new("meterKey2", "value2"), }; - return RunPrometheusExporterMiddlewareIntegrationTest( + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics", app => app.UseOpenTelemetryPrometheusScrapingEndpoint(), acceptHeader: "text/plain", meterTags: meterTags); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); } [Fact] - public Task PrometheusExporterMiddlewareIntegration_UseOpenMetricsVersionHeader_WithMeterTags() + public async Task RunWithOpenMetricsVersionHeaderAndMeterTags() { var meterTags = new KeyValuePair[] { @@ -280,20 +346,22 @@ public Task PrometheusExporterMiddlewareIntegration_UseOpenMetricsVersionHeader_ new("meterKey2", "value2"), }; - return RunPrometheusExporterMiddlewareIntegrationTest( + var output = await RunPrometheusExporterMiddlewareIntegrationTest( "/metrics", app => app.UseOpenTelemetryPrometheusScrapingEndpoint(), acceptHeader: "application/openmetrics-text; version=1.0.0", contentType: "application/openmetrics-text; version=1.0.0; charset=utf-8; escaping=underscores", meterTags: meterTags); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); } [Fact] - public async Task PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags() - => await RunPrometheusExporterMiddlewareIntegrationTestWithBothFormats(); + public Task CanServeMultipleContentTypes_NoMeterTags() => + RunPrometheusExporterMiddlewareIntegrationTestWithMultipleContentTypes(); [Fact] - public async Task PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags() + public async Task CanServeMultipleContentTypes_WithMeterTags() { var meterTags = new KeyValuePair[] { @@ -301,11 +369,11 @@ public async Task PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAnd new("meterKey2", "value2"), }; - await RunPrometheusExporterMiddlewareIntegrationTestWithBothFormats(meterTags); + await RunPrometheusExporterMiddlewareIntegrationTestWithMultipleContentTypes(meterTags); } [Fact] - public async Task PrometheusExporterMiddlewareIntegration_TestBufferSizeIncrease_With_LotOfMetrics() + public async Task BufferSizeIncreasesWithLotOfMetrics() { using var host = await StartTestHostAsync( app => app.UseOpenTelemetryPrometheusScrapingEndpoint()); @@ -318,18 +386,22 @@ public async Task PrometheusExporterMiddlewareIntegration_TestBufferSizeIncrease counter.Add(1); } + host.Services.GetRequiredService().ForceFlush(); + using var client = host.GetTestClient(); using var response = await client.GetAsync(new Uri("/metrics", UriKind.Relative)); - var text = await response.Content.ReadAsStringAsync(); + var output = await response.Content.ReadAsStringAsync(); - Assert.NotEmpty(text); + Assert.NotEmpty(output); await host.StopAsync(); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); } [Fact] - public async Task PrometheusExporterMiddlewareInvokeAsync_WhenNoData_Returns200() + public async Task InvokeAsync_WhenNoData_Returns200() { using var exporter = new PrometheusExporter(new PrometheusExporterOptions()); exporter.Collect = _ => true; @@ -343,7 +415,7 @@ public async Task PrometheusExporterMiddlewareInvokeAsync_WhenNoData_Returns200( } [Fact] - public async Task PrometheusExporterMiddlewareInvokeAsync_WhenExceptionOccurs_Returns500() + public async Task InvokeAsync_WhenExceptionOccurs_Returns500() { using var exporter = new PrometheusExporter(new PrometheusExporterOptions()); exporter.Collect = _ => throw new InvalidOperationException("Simulated collection failure"); @@ -357,7 +429,7 @@ public async Task PrometheusExporterMiddlewareInvokeAsync_WhenExceptionOccurs_Re } [Fact] - public async Task PrometheusExporterMiddlewareInvokeAsync_WhenExceptionOccursAfterResponseStarted_DoesNotReturn500() + public async Task InvokeAsync_WhenExceptionOccursAfterResponseStarted_DoesNotReturn500() { using var exporter = new PrometheusExporter(new PrometheusExporterOptions()); exporter.Collect = _ => throw new InvalidOperationException("Simulated collection failure"); @@ -374,7 +446,7 @@ public async Task PrometheusExporterMiddlewareInvokeAsync_WhenExceptionOccursAft } [Fact] - public async Task PrometheusExporterMiddlewareInvokeAsync_WhenRequest_TimesOut_Returns408() + public async Task InvokeAsync_WhenRequest_TimesOut_Returns408() { using var exporter = new PrometheusExporter(new PrometheusExporterOptions()); exporter.Collect = _ => true; @@ -393,7 +465,7 @@ public async Task PrometheusExporterMiddlewareInvokeAsync_WhenRequest_TimesOut_R [Theory] [InlineData("0.9")] [InlineData("1")] - public async Task PrometheusExporterMiddlewareInvokeAsync_WhenRequestDeadlineExceeded_Returns408(string value) + public async Task InvokeAsync_WhenRequestDeadlineExceeded_Returns408(string value) { using var exporter = new PrometheusExporter(new PrometheusExporterOptions()); @@ -425,7 +497,7 @@ public async Task PrometheusExporterMiddlewareInvokeAsync_WhenRequestDeadlineExc [InlineData("+Inf")] [InlineData("-Inf")] [InlineData("NaN")] - public async Task PrometheusExporterMiddlewareInvokeAsync_WhenRequestDeadlineInvalid_Returns200(string scrapeTimeoutSeconds) + public async Task InvokeAsync_WhenRequestDeadlineInvalid_Returns200(string scrapeTimeoutSeconds) { using var exporter = new PrometheusExporter(new PrometheusExporterOptions()); exporter.Collect = _ => true; @@ -441,7 +513,7 @@ public async Task PrometheusExporterMiddlewareInvokeAsync_WhenRequestDeadlineInv Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode); } - private static async Task RunPrometheusExporterMiddlewareIntegrationTestWithBothFormats( + private static async Task RunPrometheusExporterMiddlewareIntegrationTestWithMultipleContentTypes( KeyValuePair[]? meterTags = null, string? contentType = null) { @@ -460,6 +532,7 @@ private static async Task RunPrometheusExporterMiddlewareIntegrationTestWithBoth counter.Add(100.18D, counterTags); counter.Add(0.99D, counterTags); + // Generate alternating formats var testCases = new bool[] { true, false, true, true, false }; using var client = host.GetTestClient(); @@ -473,13 +546,13 @@ private static async Task RunPrometheusExporterMiddlewareIntegrationTestWithBoth Method = HttpMethod.Get, }; using var response = await client.SendAsync(request); - await VerifyAsync(response, testCase, meterTags, contentType); + await VerifyResponseAsync(response, testCase, meterTags, contentType); } await host.StopAsync(); } - private static async Task RunPrometheusExporterMiddlewareIntegrationTest( + private static async Task RunPrometheusExporterMiddlewareIntegrationTest( string path, Action configure, Action? configureServices = null, @@ -493,7 +566,11 @@ private static async Task RunPrometheusExporterMiddlewareIntegrationTest( { var requestOpenMetrics = acceptHeader.StartsWith("application/openmetrics-text", StringComparison.Ordinal); - using var host = await StartTestHostAsync(configure, configureServices, registerMeterProvider, configureOptions); + using var host = await StartTestHostAsync( + configure, + configureServices, + registerMeterProvider, + configureOptions); var counterTags = new KeyValuePair[] { @@ -519,23 +596,32 @@ private static async Task RunPrometheusExporterMiddlewareIntegrationTest( using var response = await client.GetAsync(new Uri(path, UriKind.Relative)); + string responseContent; + if (!skipMetrics) { var options = new PrometheusAspNetCoreOptions(); configureOptions?.Invoke(options); - await VerifyAsync(response, requestOpenMetrics, meterTags, contentType); + + responseContent = await VerifyResponseAsync( + response, + requestOpenMetrics, + meterTags, + contentType); } else { Assert.Equal(HttpStatusCode.OK, response.StatusCode); + responseContent = await response.Content.ReadAsStringAsync(); } validateResponse?.Invoke(response); await host.StopAsync(); + return responseContent; } - private static async Task VerifyAsync( + private static async Task VerifyResponseAsync( HttpResponseMessage response, bool requestOpenMetrics, KeyValuePair[]? meterTags, @@ -560,6 +646,7 @@ private static async Task VerifyAsync( : string.Empty; var content = (await response.Content.ReadAsStringAsync()).ReplaceLineEndings(); + var normalizedContent = content.ReplaceLineEndings(); var expected = requestOpenMetrics ? $$""" @@ -584,9 +671,11 @@ private static async Task VerifyAsync( """.ReplaceLineEndings(); - var matches = Regex.Matches(content, "^" + expected + "$"); + var matches = Regex.Matches(normalizedContent, "^" + expected + "$"); + + Assert.True(matches.Count == 1, normalizedContent); - Assert.True(matches.Count == 1, content); + return content; } private static Task StartTestHostAsync( diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.BufferSizeIncreasesWithLotOfMetrics.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.BufferSizeIncreasesWithLotOfMetrics.verified.text new file mode 100644 index 00000000000..fb3a47d49d4 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.BufferSizeIncreasesWithLotOfMetrics.verified.text @@ -0,0 +1,3004 @@ +# TYPE target_info gauge +# HELP target_info Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_0_bytes_total counter +# UNIT counter_double_0_bytes_total bytes +counter_double_0_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_100_bytes_total counter +# UNIT counter_double_100_bytes_total bytes +counter_double_100_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_101_bytes_total counter +# UNIT counter_double_101_bytes_total bytes +counter_double_101_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_102_bytes_total counter +# UNIT counter_double_102_bytes_total bytes +counter_double_102_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_103_bytes_total counter +# UNIT counter_double_103_bytes_total bytes +counter_double_103_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_104_bytes_total counter +# UNIT counter_double_104_bytes_total bytes +counter_double_104_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_105_bytes_total counter +# UNIT counter_double_105_bytes_total bytes +counter_double_105_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_106_bytes_total counter +# UNIT counter_double_106_bytes_total bytes +counter_double_106_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_107_bytes_total counter +# UNIT counter_double_107_bytes_total bytes +counter_double_107_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_108_bytes_total counter +# UNIT counter_double_108_bytes_total bytes +counter_double_108_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_109_bytes_total counter +# UNIT counter_double_109_bytes_total bytes +counter_double_109_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_10_bytes_total counter +# UNIT counter_double_10_bytes_total bytes +counter_double_10_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_110_bytes_total counter +# UNIT counter_double_110_bytes_total bytes +counter_double_110_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_111_bytes_total counter +# UNIT counter_double_111_bytes_total bytes +counter_double_111_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_112_bytes_total counter +# UNIT counter_double_112_bytes_total bytes +counter_double_112_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_113_bytes_total counter +# UNIT counter_double_113_bytes_total bytes +counter_double_113_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_114_bytes_total counter +# UNIT counter_double_114_bytes_total bytes +counter_double_114_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_115_bytes_total counter +# UNIT counter_double_115_bytes_total bytes +counter_double_115_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_116_bytes_total counter +# UNIT counter_double_116_bytes_total bytes +counter_double_116_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_117_bytes_total counter +# UNIT counter_double_117_bytes_total bytes +counter_double_117_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_118_bytes_total counter +# UNIT counter_double_118_bytes_total bytes +counter_double_118_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_119_bytes_total counter +# UNIT counter_double_119_bytes_total bytes +counter_double_119_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_11_bytes_total counter +# UNIT counter_double_11_bytes_total bytes +counter_double_11_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_120_bytes_total counter +# UNIT counter_double_120_bytes_total bytes +counter_double_120_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_121_bytes_total counter +# UNIT counter_double_121_bytes_total bytes +counter_double_121_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_122_bytes_total counter +# UNIT counter_double_122_bytes_total bytes +counter_double_122_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_123_bytes_total counter +# UNIT counter_double_123_bytes_total bytes +counter_double_123_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_124_bytes_total counter +# UNIT counter_double_124_bytes_total bytes +counter_double_124_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_125_bytes_total counter +# UNIT counter_double_125_bytes_total bytes +counter_double_125_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_126_bytes_total counter +# UNIT counter_double_126_bytes_total bytes +counter_double_126_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_127_bytes_total counter +# UNIT counter_double_127_bytes_total bytes +counter_double_127_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_128_bytes_total counter +# UNIT counter_double_128_bytes_total bytes +counter_double_128_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_129_bytes_total counter +# UNIT counter_double_129_bytes_total bytes +counter_double_129_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_12_bytes_total counter +# UNIT counter_double_12_bytes_total bytes +counter_double_12_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_130_bytes_total counter +# UNIT counter_double_130_bytes_total bytes +counter_double_130_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_131_bytes_total counter +# UNIT counter_double_131_bytes_total bytes +counter_double_131_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_132_bytes_total counter +# UNIT counter_double_132_bytes_total bytes +counter_double_132_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_133_bytes_total counter +# UNIT counter_double_133_bytes_total bytes +counter_double_133_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_134_bytes_total counter +# UNIT counter_double_134_bytes_total bytes +counter_double_134_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_135_bytes_total counter +# UNIT counter_double_135_bytes_total bytes +counter_double_135_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_136_bytes_total counter +# UNIT counter_double_136_bytes_total bytes +counter_double_136_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_137_bytes_total counter +# UNIT counter_double_137_bytes_total bytes +counter_double_137_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_138_bytes_total counter +# UNIT counter_double_138_bytes_total bytes +counter_double_138_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_139_bytes_total counter +# UNIT counter_double_139_bytes_total bytes +counter_double_139_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_13_bytes_total counter +# UNIT counter_double_13_bytes_total bytes +counter_double_13_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_140_bytes_total counter +# UNIT counter_double_140_bytes_total bytes +counter_double_140_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_141_bytes_total counter +# UNIT counter_double_141_bytes_total bytes +counter_double_141_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_142_bytes_total counter +# UNIT counter_double_142_bytes_total bytes +counter_double_142_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_143_bytes_total counter +# UNIT counter_double_143_bytes_total bytes +counter_double_143_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_144_bytes_total counter +# UNIT counter_double_144_bytes_total bytes +counter_double_144_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_145_bytes_total counter +# UNIT counter_double_145_bytes_total bytes +counter_double_145_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_146_bytes_total counter +# UNIT counter_double_146_bytes_total bytes +counter_double_146_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_147_bytes_total counter +# UNIT counter_double_147_bytes_total bytes +counter_double_147_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_148_bytes_total counter +# UNIT counter_double_148_bytes_total bytes +counter_double_148_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_149_bytes_total counter +# UNIT counter_double_149_bytes_total bytes +counter_double_149_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_14_bytes_total counter +# UNIT counter_double_14_bytes_total bytes +counter_double_14_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_150_bytes_total counter +# UNIT counter_double_150_bytes_total bytes +counter_double_150_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_151_bytes_total counter +# UNIT counter_double_151_bytes_total bytes +counter_double_151_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_152_bytes_total counter +# UNIT counter_double_152_bytes_total bytes +counter_double_152_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_153_bytes_total counter +# UNIT counter_double_153_bytes_total bytes +counter_double_153_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_154_bytes_total counter +# UNIT counter_double_154_bytes_total bytes +counter_double_154_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_155_bytes_total counter +# UNIT counter_double_155_bytes_total bytes +counter_double_155_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_156_bytes_total counter +# UNIT counter_double_156_bytes_total bytes +counter_double_156_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_157_bytes_total counter +# UNIT counter_double_157_bytes_total bytes +counter_double_157_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_158_bytes_total counter +# UNIT counter_double_158_bytes_total bytes +counter_double_158_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_159_bytes_total counter +# UNIT counter_double_159_bytes_total bytes +counter_double_159_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_15_bytes_total counter +# UNIT counter_double_15_bytes_total bytes +counter_double_15_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_160_bytes_total counter +# UNIT counter_double_160_bytes_total bytes +counter_double_160_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_161_bytes_total counter +# UNIT counter_double_161_bytes_total bytes +counter_double_161_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_162_bytes_total counter +# UNIT counter_double_162_bytes_total bytes +counter_double_162_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_163_bytes_total counter +# UNIT counter_double_163_bytes_total bytes +counter_double_163_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_164_bytes_total counter +# UNIT counter_double_164_bytes_total bytes +counter_double_164_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_165_bytes_total counter +# UNIT counter_double_165_bytes_total bytes +counter_double_165_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_166_bytes_total counter +# UNIT counter_double_166_bytes_total bytes +counter_double_166_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_167_bytes_total counter +# UNIT counter_double_167_bytes_total bytes +counter_double_167_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_168_bytes_total counter +# UNIT counter_double_168_bytes_total bytes +counter_double_168_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_169_bytes_total counter +# UNIT counter_double_169_bytes_total bytes +counter_double_169_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_16_bytes_total counter +# UNIT counter_double_16_bytes_total bytes +counter_double_16_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_170_bytes_total counter +# UNIT counter_double_170_bytes_total bytes +counter_double_170_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_171_bytes_total counter +# UNIT counter_double_171_bytes_total bytes +counter_double_171_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_172_bytes_total counter +# UNIT counter_double_172_bytes_total bytes +counter_double_172_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_173_bytes_total counter +# UNIT counter_double_173_bytes_total bytes +counter_double_173_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_174_bytes_total counter +# UNIT counter_double_174_bytes_total bytes +counter_double_174_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_175_bytes_total counter +# UNIT counter_double_175_bytes_total bytes +counter_double_175_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_176_bytes_total counter +# UNIT counter_double_176_bytes_total bytes +counter_double_176_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_177_bytes_total counter +# UNIT counter_double_177_bytes_total bytes +counter_double_177_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_178_bytes_total counter +# UNIT counter_double_178_bytes_total bytes +counter_double_178_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_179_bytes_total counter +# UNIT counter_double_179_bytes_total bytes +counter_double_179_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_17_bytes_total counter +# UNIT counter_double_17_bytes_total bytes +counter_double_17_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_180_bytes_total counter +# UNIT counter_double_180_bytes_total bytes +counter_double_180_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_181_bytes_total counter +# UNIT counter_double_181_bytes_total bytes +counter_double_181_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_182_bytes_total counter +# UNIT counter_double_182_bytes_total bytes +counter_double_182_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_183_bytes_total counter +# UNIT counter_double_183_bytes_total bytes +counter_double_183_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_184_bytes_total counter +# UNIT counter_double_184_bytes_total bytes +counter_double_184_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_185_bytes_total counter +# UNIT counter_double_185_bytes_total bytes +counter_double_185_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_186_bytes_total counter +# UNIT counter_double_186_bytes_total bytes +counter_double_186_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_187_bytes_total counter +# UNIT counter_double_187_bytes_total bytes +counter_double_187_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_188_bytes_total counter +# UNIT counter_double_188_bytes_total bytes +counter_double_188_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_189_bytes_total counter +# UNIT counter_double_189_bytes_total bytes +counter_double_189_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_18_bytes_total counter +# UNIT counter_double_18_bytes_total bytes +counter_double_18_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_190_bytes_total counter +# UNIT counter_double_190_bytes_total bytes +counter_double_190_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_191_bytes_total counter +# UNIT counter_double_191_bytes_total bytes +counter_double_191_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_192_bytes_total counter +# UNIT counter_double_192_bytes_total bytes +counter_double_192_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_193_bytes_total counter +# UNIT counter_double_193_bytes_total bytes +counter_double_193_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_194_bytes_total counter +# UNIT counter_double_194_bytes_total bytes +counter_double_194_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_195_bytes_total counter +# UNIT counter_double_195_bytes_total bytes +counter_double_195_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_196_bytes_total counter +# UNIT counter_double_196_bytes_total bytes +counter_double_196_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_197_bytes_total counter +# UNIT counter_double_197_bytes_total bytes +counter_double_197_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_198_bytes_total counter +# UNIT counter_double_198_bytes_total bytes +counter_double_198_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_199_bytes_total counter +# UNIT counter_double_199_bytes_total bytes +counter_double_199_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_19_bytes_total counter +# UNIT counter_double_19_bytes_total bytes +counter_double_19_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_1_bytes_total counter +# UNIT counter_double_1_bytes_total bytes +counter_double_1_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_200_bytes_total counter +# UNIT counter_double_200_bytes_total bytes +counter_double_200_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_201_bytes_total counter +# UNIT counter_double_201_bytes_total bytes +counter_double_201_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_202_bytes_total counter +# UNIT counter_double_202_bytes_total bytes +counter_double_202_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_203_bytes_total counter +# UNIT counter_double_203_bytes_total bytes +counter_double_203_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_204_bytes_total counter +# UNIT counter_double_204_bytes_total bytes +counter_double_204_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_205_bytes_total counter +# UNIT counter_double_205_bytes_total bytes +counter_double_205_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_206_bytes_total counter +# UNIT counter_double_206_bytes_total bytes +counter_double_206_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_207_bytes_total counter +# UNIT counter_double_207_bytes_total bytes +counter_double_207_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_208_bytes_total counter +# UNIT counter_double_208_bytes_total bytes +counter_double_208_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_209_bytes_total counter +# UNIT counter_double_209_bytes_total bytes +counter_double_209_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_20_bytes_total counter +# UNIT counter_double_20_bytes_total bytes +counter_double_20_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_210_bytes_total counter +# UNIT counter_double_210_bytes_total bytes +counter_double_210_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_211_bytes_total counter +# UNIT counter_double_211_bytes_total bytes +counter_double_211_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_212_bytes_total counter +# UNIT counter_double_212_bytes_total bytes +counter_double_212_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_213_bytes_total counter +# UNIT counter_double_213_bytes_total bytes +counter_double_213_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_214_bytes_total counter +# UNIT counter_double_214_bytes_total bytes +counter_double_214_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_215_bytes_total counter +# UNIT counter_double_215_bytes_total bytes +counter_double_215_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_216_bytes_total counter +# UNIT counter_double_216_bytes_total bytes +counter_double_216_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_217_bytes_total counter +# UNIT counter_double_217_bytes_total bytes +counter_double_217_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_218_bytes_total counter +# UNIT counter_double_218_bytes_total bytes +counter_double_218_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_219_bytes_total counter +# UNIT counter_double_219_bytes_total bytes +counter_double_219_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_21_bytes_total counter +# UNIT counter_double_21_bytes_total bytes +counter_double_21_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_220_bytes_total counter +# UNIT counter_double_220_bytes_total bytes +counter_double_220_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_221_bytes_total counter +# UNIT counter_double_221_bytes_total bytes +counter_double_221_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_222_bytes_total counter +# UNIT counter_double_222_bytes_total bytes +counter_double_222_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_223_bytes_total counter +# UNIT counter_double_223_bytes_total bytes +counter_double_223_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_224_bytes_total counter +# UNIT counter_double_224_bytes_total bytes +counter_double_224_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_225_bytes_total counter +# UNIT counter_double_225_bytes_total bytes +counter_double_225_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_226_bytes_total counter +# UNIT counter_double_226_bytes_total bytes +counter_double_226_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_227_bytes_total counter +# UNIT counter_double_227_bytes_total bytes +counter_double_227_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_228_bytes_total counter +# UNIT counter_double_228_bytes_total bytes +counter_double_228_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_229_bytes_total counter +# UNIT counter_double_229_bytes_total bytes +counter_double_229_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_22_bytes_total counter +# UNIT counter_double_22_bytes_total bytes +counter_double_22_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_230_bytes_total counter +# UNIT counter_double_230_bytes_total bytes +counter_double_230_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_231_bytes_total counter +# UNIT counter_double_231_bytes_total bytes +counter_double_231_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_232_bytes_total counter +# UNIT counter_double_232_bytes_total bytes +counter_double_232_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_233_bytes_total counter +# UNIT counter_double_233_bytes_total bytes +counter_double_233_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_234_bytes_total counter +# UNIT counter_double_234_bytes_total bytes +counter_double_234_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_235_bytes_total counter +# UNIT counter_double_235_bytes_total bytes +counter_double_235_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_236_bytes_total counter +# UNIT counter_double_236_bytes_total bytes +counter_double_236_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_237_bytes_total counter +# UNIT counter_double_237_bytes_total bytes +counter_double_237_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_238_bytes_total counter +# UNIT counter_double_238_bytes_total bytes +counter_double_238_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_239_bytes_total counter +# UNIT counter_double_239_bytes_total bytes +counter_double_239_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_23_bytes_total counter +# UNIT counter_double_23_bytes_total bytes +counter_double_23_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_240_bytes_total counter +# UNIT counter_double_240_bytes_total bytes +counter_double_240_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_241_bytes_total counter +# UNIT counter_double_241_bytes_total bytes +counter_double_241_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_242_bytes_total counter +# UNIT counter_double_242_bytes_total bytes +counter_double_242_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_243_bytes_total counter +# UNIT counter_double_243_bytes_total bytes +counter_double_243_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_244_bytes_total counter +# UNIT counter_double_244_bytes_total bytes +counter_double_244_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_245_bytes_total counter +# UNIT counter_double_245_bytes_total bytes +counter_double_245_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_246_bytes_total counter +# UNIT counter_double_246_bytes_total bytes +counter_double_246_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_247_bytes_total counter +# UNIT counter_double_247_bytes_total bytes +counter_double_247_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_248_bytes_total counter +# UNIT counter_double_248_bytes_total bytes +counter_double_248_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_249_bytes_total counter +# UNIT counter_double_249_bytes_total bytes +counter_double_249_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_24_bytes_total counter +# UNIT counter_double_24_bytes_total bytes +counter_double_24_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_250_bytes_total counter +# UNIT counter_double_250_bytes_total bytes +counter_double_250_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_251_bytes_total counter +# UNIT counter_double_251_bytes_total bytes +counter_double_251_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_252_bytes_total counter +# UNIT counter_double_252_bytes_total bytes +counter_double_252_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_253_bytes_total counter +# UNIT counter_double_253_bytes_total bytes +counter_double_253_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_254_bytes_total counter +# UNIT counter_double_254_bytes_total bytes +counter_double_254_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_255_bytes_total counter +# UNIT counter_double_255_bytes_total bytes +counter_double_255_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_256_bytes_total counter +# UNIT counter_double_256_bytes_total bytes +counter_double_256_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_257_bytes_total counter +# UNIT counter_double_257_bytes_total bytes +counter_double_257_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_258_bytes_total counter +# UNIT counter_double_258_bytes_total bytes +counter_double_258_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_259_bytes_total counter +# UNIT counter_double_259_bytes_total bytes +counter_double_259_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_25_bytes_total counter +# UNIT counter_double_25_bytes_total bytes +counter_double_25_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_260_bytes_total counter +# UNIT counter_double_260_bytes_total bytes +counter_double_260_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_261_bytes_total counter +# UNIT counter_double_261_bytes_total bytes +counter_double_261_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_262_bytes_total counter +# UNIT counter_double_262_bytes_total bytes +counter_double_262_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_263_bytes_total counter +# UNIT counter_double_263_bytes_total bytes +counter_double_263_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_264_bytes_total counter +# UNIT counter_double_264_bytes_total bytes +counter_double_264_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_265_bytes_total counter +# UNIT counter_double_265_bytes_total bytes +counter_double_265_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_266_bytes_total counter +# UNIT counter_double_266_bytes_total bytes +counter_double_266_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_267_bytes_total counter +# UNIT counter_double_267_bytes_total bytes +counter_double_267_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_268_bytes_total counter +# UNIT counter_double_268_bytes_total bytes +counter_double_268_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_269_bytes_total counter +# UNIT counter_double_269_bytes_total bytes +counter_double_269_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_26_bytes_total counter +# UNIT counter_double_26_bytes_total bytes +counter_double_26_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_270_bytes_total counter +# UNIT counter_double_270_bytes_total bytes +counter_double_270_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_271_bytes_total counter +# UNIT counter_double_271_bytes_total bytes +counter_double_271_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_272_bytes_total counter +# UNIT counter_double_272_bytes_total bytes +counter_double_272_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_273_bytes_total counter +# UNIT counter_double_273_bytes_total bytes +counter_double_273_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_274_bytes_total counter +# UNIT counter_double_274_bytes_total bytes +counter_double_274_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_275_bytes_total counter +# UNIT counter_double_275_bytes_total bytes +counter_double_275_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_276_bytes_total counter +# UNIT counter_double_276_bytes_total bytes +counter_double_276_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_277_bytes_total counter +# UNIT counter_double_277_bytes_total bytes +counter_double_277_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_278_bytes_total counter +# UNIT counter_double_278_bytes_total bytes +counter_double_278_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_279_bytes_total counter +# UNIT counter_double_279_bytes_total bytes +counter_double_279_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_27_bytes_total counter +# UNIT counter_double_27_bytes_total bytes +counter_double_27_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_280_bytes_total counter +# UNIT counter_double_280_bytes_total bytes +counter_double_280_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_281_bytes_total counter +# UNIT counter_double_281_bytes_total bytes +counter_double_281_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_282_bytes_total counter +# UNIT counter_double_282_bytes_total bytes +counter_double_282_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_283_bytes_total counter +# UNIT counter_double_283_bytes_total bytes +counter_double_283_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_284_bytes_total counter +# UNIT counter_double_284_bytes_total bytes +counter_double_284_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_285_bytes_total counter +# UNIT counter_double_285_bytes_total bytes +counter_double_285_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_286_bytes_total counter +# UNIT counter_double_286_bytes_total bytes +counter_double_286_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_287_bytes_total counter +# UNIT counter_double_287_bytes_total bytes +counter_double_287_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_288_bytes_total counter +# UNIT counter_double_288_bytes_total bytes +counter_double_288_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_289_bytes_total counter +# UNIT counter_double_289_bytes_total bytes +counter_double_289_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_28_bytes_total counter +# UNIT counter_double_28_bytes_total bytes +counter_double_28_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_290_bytes_total counter +# UNIT counter_double_290_bytes_total bytes +counter_double_290_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_291_bytes_total counter +# UNIT counter_double_291_bytes_total bytes +counter_double_291_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_292_bytes_total counter +# UNIT counter_double_292_bytes_total bytes +counter_double_292_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_293_bytes_total counter +# UNIT counter_double_293_bytes_total bytes +counter_double_293_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_294_bytes_total counter +# UNIT counter_double_294_bytes_total bytes +counter_double_294_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_295_bytes_total counter +# UNIT counter_double_295_bytes_total bytes +counter_double_295_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_296_bytes_total counter +# UNIT counter_double_296_bytes_total bytes +counter_double_296_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_297_bytes_total counter +# UNIT counter_double_297_bytes_total bytes +counter_double_297_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_298_bytes_total counter +# UNIT counter_double_298_bytes_total bytes +counter_double_298_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_299_bytes_total counter +# UNIT counter_double_299_bytes_total bytes +counter_double_299_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_29_bytes_total counter +# UNIT counter_double_29_bytes_total bytes +counter_double_29_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_2_bytes_total counter +# UNIT counter_double_2_bytes_total bytes +counter_double_2_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_300_bytes_total counter +# UNIT counter_double_300_bytes_total bytes +counter_double_300_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_301_bytes_total counter +# UNIT counter_double_301_bytes_total bytes +counter_double_301_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_302_bytes_total counter +# UNIT counter_double_302_bytes_total bytes +counter_double_302_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_303_bytes_total counter +# UNIT counter_double_303_bytes_total bytes +counter_double_303_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_304_bytes_total counter +# UNIT counter_double_304_bytes_total bytes +counter_double_304_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_305_bytes_total counter +# UNIT counter_double_305_bytes_total bytes +counter_double_305_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_306_bytes_total counter +# UNIT counter_double_306_bytes_total bytes +counter_double_306_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_307_bytes_total counter +# UNIT counter_double_307_bytes_total bytes +counter_double_307_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_308_bytes_total counter +# UNIT counter_double_308_bytes_total bytes +counter_double_308_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_309_bytes_total counter +# UNIT counter_double_309_bytes_total bytes +counter_double_309_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_30_bytes_total counter +# UNIT counter_double_30_bytes_total bytes +counter_double_30_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_310_bytes_total counter +# UNIT counter_double_310_bytes_total bytes +counter_double_310_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_311_bytes_total counter +# UNIT counter_double_311_bytes_total bytes +counter_double_311_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_312_bytes_total counter +# UNIT counter_double_312_bytes_total bytes +counter_double_312_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_313_bytes_total counter +# UNIT counter_double_313_bytes_total bytes +counter_double_313_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_314_bytes_total counter +# UNIT counter_double_314_bytes_total bytes +counter_double_314_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_315_bytes_total counter +# UNIT counter_double_315_bytes_total bytes +counter_double_315_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_316_bytes_total counter +# UNIT counter_double_316_bytes_total bytes +counter_double_316_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_317_bytes_total counter +# UNIT counter_double_317_bytes_total bytes +counter_double_317_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_318_bytes_total counter +# UNIT counter_double_318_bytes_total bytes +counter_double_318_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_319_bytes_total counter +# UNIT counter_double_319_bytes_total bytes +counter_double_319_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_31_bytes_total counter +# UNIT counter_double_31_bytes_total bytes +counter_double_31_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_320_bytes_total counter +# UNIT counter_double_320_bytes_total bytes +counter_double_320_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_321_bytes_total counter +# UNIT counter_double_321_bytes_total bytes +counter_double_321_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_322_bytes_total counter +# UNIT counter_double_322_bytes_total bytes +counter_double_322_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_323_bytes_total counter +# UNIT counter_double_323_bytes_total bytes +counter_double_323_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_324_bytes_total counter +# UNIT counter_double_324_bytes_total bytes +counter_double_324_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_325_bytes_total counter +# UNIT counter_double_325_bytes_total bytes +counter_double_325_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_326_bytes_total counter +# UNIT counter_double_326_bytes_total bytes +counter_double_326_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_327_bytes_total counter +# UNIT counter_double_327_bytes_total bytes +counter_double_327_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_328_bytes_total counter +# UNIT counter_double_328_bytes_total bytes +counter_double_328_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_329_bytes_total counter +# UNIT counter_double_329_bytes_total bytes +counter_double_329_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_32_bytes_total counter +# UNIT counter_double_32_bytes_total bytes +counter_double_32_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_330_bytes_total counter +# UNIT counter_double_330_bytes_total bytes +counter_double_330_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_331_bytes_total counter +# UNIT counter_double_331_bytes_total bytes +counter_double_331_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_332_bytes_total counter +# UNIT counter_double_332_bytes_total bytes +counter_double_332_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_333_bytes_total counter +# UNIT counter_double_333_bytes_total bytes +counter_double_333_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_334_bytes_total counter +# UNIT counter_double_334_bytes_total bytes +counter_double_334_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_335_bytes_total counter +# UNIT counter_double_335_bytes_total bytes +counter_double_335_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_336_bytes_total counter +# UNIT counter_double_336_bytes_total bytes +counter_double_336_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_337_bytes_total counter +# UNIT counter_double_337_bytes_total bytes +counter_double_337_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_338_bytes_total counter +# UNIT counter_double_338_bytes_total bytes +counter_double_338_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_339_bytes_total counter +# UNIT counter_double_339_bytes_total bytes +counter_double_339_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_33_bytes_total counter +# UNIT counter_double_33_bytes_total bytes +counter_double_33_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_340_bytes_total counter +# UNIT counter_double_340_bytes_total bytes +counter_double_340_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_341_bytes_total counter +# UNIT counter_double_341_bytes_total bytes +counter_double_341_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_342_bytes_total counter +# UNIT counter_double_342_bytes_total bytes +counter_double_342_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_343_bytes_total counter +# UNIT counter_double_343_bytes_total bytes +counter_double_343_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_344_bytes_total counter +# UNIT counter_double_344_bytes_total bytes +counter_double_344_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_345_bytes_total counter +# UNIT counter_double_345_bytes_total bytes +counter_double_345_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_346_bytes_total counter +# UNIT counter_double_346_bytes_total bytes +counter_double_346_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_347_bytes_total counter +# UNIT counter_double_347_bytes_total bytes +counter_double_347_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_348_bytes_total counter +# UNIT counter_double_348_bytes_total bytes +counter_double_348_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_349_bytes_total counter +# UNIT counter_double_349_bytes_total bytes +counter_double_349_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_34_bytes_total counter +# UNIT counter_double_34_bytes_total bytes +counter_double_34_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_350_bytes_total counter +# UNIT counter_double_350_bytes_total bytes +counter_double_350_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_351_bytes_total counter +# UNIT counter_double_351_bytes_total bytes +counter_double_351_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_352_bytes_total counter +# UNIT counter_double_352_bytes_total bytes +counter_double_352_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_353_bytes_total counter +# UNIT counter_double_353_bytes_total bytes +counter_double_353_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_354_bytes_total counter +# UNIT counter_double_354_bytes_total bytes +counter_double_354_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_355_bytes_total counter +# UNIT counter_double_355_bytes_total bytes +counter_double_355_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_356_bytes_total counter +# UNIT counter_double_356_bytes_total bytes +counter_double_356_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_357_bytes_total counter +# UNIT counter_double_357_bytes_total bytes +counter_double_357_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_358_bytes_total counter +# UNIT counter_double_358_bytes_total bytes +counter_double_358_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_359_bytes_total counter +# UNIT counter_double_359_bytes_total bytes +counter_double_359_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_35_bytes_total counter +# UNIT counter_double_35_bytes_total bytes +counter_double_35_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_360_bytes_total counter +# UNIT counter_double_360_bytes_total bytes +counter_double_360_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_361_bytes_total counter +# UNIT counter_double_361_bytes_total bytes +counter_double_361_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_362_bytes_total counter +# UNIT counter_double_362_bytes_total bytes +counter_double_362_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_363_bytes_total counter +# UNIT counter_double_363_bytes_total bytes +counter_double_363_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_364_bytes_total counter +# UNIT counter_double_364_bytes_total bytes +counter_double_364_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_365_bytes_total counter +# UNIT counter_double_365_bytes_total bytes +counter_double_365_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_366_bytes_total counter +# UNIT counter_double_366_bytes_total bytes +counter_double_366_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_367_bytes_total counter +# UNIT counter_double_367_bytes_total bytes +counter_double_367_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_368_bytes_total counter +# UNIT counter_double_368_bytes_total bytes +counter_double_368_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_369_bytes_total counter +# UNIT counter_double_369_bytes_total bytes +counter_double_369_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_36_bytes_total counter +# UNIT counter_double_36_bytes_total bytes +counter_double_36_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_370_bytes_total counter +# UNIT counter_double_370_bytes_total bytes +counter_double_370_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_371_bytes_total counter +# UNIT counter_double_371_bytes_total bytes +counter_double_371_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_372_bytes_total counter +# UNIT counter_double_372_bytes_total bytes +counter_double_372_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_373_bytes_total counter +# UNIT counter_double_373_bytes_total bytes +counter_double_373_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_374_bytes_total counter +# UNIT counter_double_374_bytes_total bytes +counter_double_374_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_375_bytes_total counter +# UNIT counter_double_375_bytes_total bytes +counter_double_375_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_376_bytes_total counter +# UNIT counter_double_376_bytes_total bytes +counter_double_376_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_377_bytes_total counter +# UNIT counter_double_377_bytes_total bytes +counter_double_377_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_378_bytes_total counter +# UNIT counter_double_378_bytes_total bytes +counter_double_378_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_379_bytes_total counter +# UNIT counter_double_379_bytes_total bytes +counter_double_379_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_37_bytes_total counter +# UNIT counter_double_37_bytes_total bytes +counter_double_37_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_380_bytes_total counter +# UNIT counter_double_380_bytes_total bytes +counter_double_380_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_381_bytes_total counter +# UNIT counter_double_381_bytes_total bytes +counter_double_381_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_382_bytes_total counter +# UNIT counter_double_382_bytes_total bytes +counter_double_382_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_383_bytes_total counter +# UNIT counter_double_383_bytes_total bytes +counter_double_383_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_384_bytes_total counter +# UNIT counter_double_384_bytes_total bytes +counter_double_384_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_385_bytes_total counter +# UNIT counter_double_385_bytes_total bytes +counter_double_385_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_386_bytes_total counter +# UNIT counter_double_386_bytes_total bytes +counter_double_386_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_387_bytes_total counter +# UNIT counter_double_387_bytes_total bytes +counter_double_387_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_388_bytes_total counter +# UNIT counter_double_388_bytes_total bytes +counter_double_388_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_389_bytes_total counter +# UNIT counter_double_389_bytes_total bytes +counter_double_389_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_38_bytes_total counter +# UNIT counter_double_38_bytes_total bytes +counter_double_38_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_390_bytes_total counter +# UNIT counter_double_390_bytes_total bytes +counter_double_390_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_391_bytes_total counter +# UNIT counter_double_391_bytes_total bytes +counter_double_391_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_392_bytes_total counter +# UNIT counter_double_392_bytes_total bytes +counter_double_392_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_393_bytes_total counter +# UNIT counter_double_393_bytes_total bytes +counter_double_393_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_394_bytes_total counter +# UNIT counter_double_394_bytes_total bytes +counter_double_394_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_395_bytes_total counter +# UNIT counter_double_395_bytes_total bytes +counter_double_395_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_396_bytes_total counter +# UNIT counter_double_396_bytes_total bytes +counter_double_396_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_397_bytes_total counter +# UNIT counter_double_397_bytes_total bytes +counter_double_397_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_398_bytes_total counter +# UNIT counter_double_398_bytes_total bytes +counter_double_398_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_399_bytes_total counter +# UNIT counter_double_399_bytes_total bytes +counter_double_399_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_39_bytes_total counter +# UNIT counter_double_39_bytes_total bytes +counter_double_39_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_3_bytes_total counter +# UNIT counter_double_3_bytes_total bytes +counter_double_3_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_400_bytes_total counter +# UNIT counter_double_400_bytes_total bytes +counter_double_400_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_401_bytes_total counter +# UNIT counter_double_401_bytes_total bytes +counter_double_401_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_402_bytes_total counter +# UNIT counter_double_402_bytes_total bytes +counter_double_402_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_403_bytes_total counter +# UNIT counter_double_403_bytes_total bytes +counter_double_403_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_404_bytes_total counter +# UNIT counter_double_404_bytes_total bytes +counter_double_404_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_405_bytes_total counter +# UNIT counter_double_405_bytes_total bytes +counter_double_405_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_406_bytes_total counter +# UNIT counter_double_406_bytes_total bytes +counter_double_406_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_407_bytes_total counter +# UNIT counter_double_407_bytes_total bytes +counter_double_407_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_408_bytes_total counter +# UNIT counter_double_408_bytes_total bytes +counter_double_408_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_409_bytes_total counter +# UNIT counter_double_409_bytes_total bytes +counter_double_409_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_40_bytes_total counter +# UNIT counter_double_40_bytes_total bytes +counter_double_40_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_410_bytes_total counter +# UNIT counter_double_410_bytes_total bytes +counter_double_410_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_411_bytes_total counter +# UNIT counter_double_411_bytes_total bytes +counter_double_411_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_412_bytes_total counter +# UNIT counter_double_412_bytes_total bytes +counter_double_412_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_413_bytes_total counter +# UNIT counter_double_413_bytes_total bytes +counter_double_413_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_414_bytes_total counter +# UNIT counter_double_414_bytes_total bytes +counter_double_414_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_415_bytes_total counter +# UNIT counter_double_415_bytes_total bytes +counter_double_415_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_416_bytes_total counter +# UNIT counter_double_416_bytes_total bytes +counter_double_416_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_417_bytes_total counter +# UNIT counter_double_417_bytes_total bytes +counter_double_417_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_418_bytes_total counter +# UNIT counter_double_418_bytes_total bytes +counter_double_418_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_419_bytes_total counter +# UNIT counter_double_419_bytes_total bytes +counter_double_419_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_41_bytes_total counter +# UNIT counter_double_41_bytes_total bytes +counter_double_41_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_420_bytes_total counter +# UNIT counter_double_420_bytes_total bytes +counter_double_420_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_421_bytes_total counter +# UNIT counter_double_421_bytes_total bytes +counter_double_421_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_422_bytes_total counter +# UNIT counter_double_422_bytes_total bytes +counter_double_422_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_423_bytes_total counter +# UNIT counter_double_423_bytes_total bytes +counter_double_423_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_424_bytes_total counter +# UNIT counter_double_424_bytes_total bytes +counter_double_424_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_425_bytes_total counter +# UNIT counter_double_425_bytes_total bytes +counter_double_425_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_426_bytes_total counter +# UNIT counter_double_426_bytes_total bytes +counter_double_426_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_427_bytes_total counter +# UNIT counter_double_427_bytes_total bytes +counter_double_427_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_428_bytes_total counter +# UNIT counter_double_428_bytes_total bytes +counter_double_428_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_429_bytes_total counter +# UNIT counter_double_429_bytes_total bytes +counter_double_429_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_42_bytes_total counter +# UNIT counter_double_42_bytes_total bytes +counter_double_42_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_430_bytes_total counter +# UNIT counter_double_430_bytes_total bytes +counter_double_430_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_431_bytes_total counter +# UNIT counter_double_431_bytes_total bytes +counter_double_431_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_432_bytes_total counter +# UNIT counter_double_432_bytes_total bytes +counter_double_432_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_433_bytes_total counter +# UNIT counter_double_433_bytes_total bytes +counter_double_433_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_434_bytes_total counter +# UNIT counter_double_434_bytes_total bytes +counter_double_434_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_435_bytes_total counter +# UNIT counter_double_435_bytes_total bytes +counter_double_435_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_436_bytes_total counter +# UNIT counter_double_436_bytes_total bytes +counter_double_436_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_437_bytes_total counter +# UNIT counter_double_437_bytes_total bytes +counter_double_437_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_438_bytes_total counter +# UNIT counter_double_438_bytes_total bytes +counter_double_438_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_439_bytes_total counter +# UNIT counter_double_439_bytes_total bytes +counter_double_439_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_43_bytes_total counter +# UNIT counter_double_43_bytes_total bytes +counter_double_43_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_440_bytes_total counter +# UNIT counter_double_440_bytes_total bytes +counter_double_440_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_441_bytes_total counter +# UNIT counter_double_441_bytes_total bytes +counter_double_441_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_442_bytes_total counter +# UNIT counter_double_442_bytes_total bytes +counter_double_442_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_443_bytes_total counter +# UNIT counter_double_443_bytes_total bytes +counter_double_443_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_444_bytes_total counter +# UNIT counter_double_444_bytes_total bytes +counter_double_444_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_445_bytes_total counter +# UNIT counter_double_445_bytes_total bytes +counter_double_445_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_446_bytes_total counter +# UNIT counter_double_446_bytes_total bytes +counter_double_446_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_447_bytes_total counter +# UNIT counter_double_447_bytes_total bytes +counter_double_447_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_448_bytes_total counter +# UNIT counter_double_448_bytes_total bytes +counter_double_448_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_449_bytes_total counter +# UNIT counter_double_449_bytes_total bytes +counter_double_449_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_44_bytes_total counter +# UNIT counter_double_44_bytes_total bytes +counter_double_44_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_450_bytes_total counter +# UNIT counter_double_450_bytes_total bytes +counter_double_450_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_451_bytes_total counter +# UNIT counter_double_451_bytes_total bytes +counter_double_451_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_452_bytes_total counter +# UNIT counter_double_452_bytes_total bytes +counter_double_452_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_453_bytes_total counter +# UNIT counter_double_453_bytes_total bytes +counter_double_453_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_454_bytes_total counter +# UNIT counter_double_454_bytes_total bytes +counter_double_454_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_455_bytes_total counter +# UNIT counter_double_455_bytes_total bytes +counter_double_455_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_456_bytes_total counter +# UNIT counter_double_456_bytes_total bytes +counter_double_456_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_457_bytes_total counter +# UNIT counter_double_457_bytes_total bytes +counter_double_457_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_458_bytes_total counter +# UNIT counter_double_458_bytes_total bytes +counter_double_458_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_459_bytes_total counter +# UNIT counter_double_459_bytes_total bytes +counter_double_459_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_45_bytes_total counter +# UNIT counter_double_45_bytes_total bytes +counter_double_45_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_460_bytes_total counter +# UNIT counter_double_460_bytes_total bytes +counter_double_460_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_461_bytes_total counter +# UNIT counter_double_461_bytes_total bytes +counter_double_461_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_462_bytes_total counter +# UNIT counter_double_462_bytes_total bytes +counter_double_462_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_463_bytes_total counter +# UNIT counter_double_463_bytes_total bytes +counter_double_463_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_464_bytes_total counter +# UNIT counter_double_464_bytes_total bytes +counter_double_464_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_465_bytes_total counter +# UNIT counter_double_465_bytes_total bytes +counter_double_465_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_466_bytes_total counter +# UNIT counter_double_466_bytes_total bytes +counter_double_466_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_467_bytes_total counter +# UNIT counter_double_467_bytes_total bytes +counter_double_467_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_468_bytes_total counter +# UNIT counter_double_468_bytes_total bytes +counter_double_468_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_469_bytes_total counter +# UNIT counter_double_469_bytes_total bytes +counter_double_469_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_46_bytes_total counter +# UNIT counter_double_46_bytes_total bytes +counter_double_46_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_470_bytes_total counter +# UNIT counter_double_470_bytes_total bytes +counter_double_470_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_471_bytes_total counter +# UNIT counter_double_471_bytes_total bytes +counter_double_471_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_472_bytes_total counter +# UNIT counter_double_472_bytes_total bytes +counter_double_472_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_473_bytes_total counter +# UNIT counter_double_473_bytes_total bytes +counter_double_473_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_474_bytes_total counter +# UNIT counter_double_474_bytes_total bytes +counter_double_474_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_475_bytes_total counter +# UNIT counter_double_475_bytes_total bytes +counter_double_475_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_476_bytes_total counter +# UNIT counter_double_476_bytes_total bytes +counter_double_476_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_477_bytes_total counter +# UNIT counter_double_477_bytes_total bytes +counter_double_477_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_478_bytes_total counter +# UNIT counter_double_478_bytes_total bytes +counter_double_478_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_479_bytes_total counter +# UNIT counter_double_479_bytes_total bytes +counter_double_479_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_47_bytes_total counter +# UNIT counter_double_47_bytes_total bytes +counter_double_47_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_480_bytes_total counter +# UNIT counter_double_480_bytes_total bytes +counter_double_480_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_481_bytes_total counter +# UNIT counter_double_481_bytes_total bytes +counter_double_481_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_482_bytes_total counter +# UNIT counter_double_482_bytes_total bytes +counter_double_482_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_483_bytes_total counter +# UNIT counter_double_483_bytes_total bytes +counter_double_483_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_484_bytes_total counter +# UNIT counter_double_484_bytes_total bytes +counter_double_484_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_485_bytes_total counter +# UNIT counter_double_485_bytes_total bytes +counter_double_485_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_486_bytes_total counter +# UNIT counter_double_486_bytes_total bytes +counter_double_486_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_487_bytes_total counter +# UNIT counter_double_487_bytes_total bytes +counter_double_487_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_488_bytes_total counter +# UNIT counter_double_488_bytes_total bytes +counter_double_488_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_489_bytes_total counter +# UNIT counter_double_489_bytes_total bytes +counter_double_489_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_48_bytes_total counter +# UNIT counter_double_48_bytes_total bytes +counter_double_48_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_490_bytes_total counter +# UNIT counter_double_490_bytes_total bytes +counter_double_490_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_491_bytes_total counter +# UNIT counter_double_491_bytes_total bytes +counter_double_491_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_492_bytes_total counter +# UNIT counter_double_492_bytes_total bytes +counter_double_492_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_493_bytes_total counter +# UNIT counter_double_493_bytes_total bytes +counter_double_493_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_494_bytes_total counter +# UNIT counter_double_494_bytes_total bytes +counter_double_494_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_495_bytes_total counter +# UNIT counter_double_495_bytes_total bytes +counter_double_495_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_496_bytes_total counter +# UNIT counter_double_496_bytes_total bytes +counter_double_496_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_497_bytes_total counter +# UNIT counter_double_497_bytes_total bytes +counter_double_497_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_498_bytes_total counter +# UNIT counter_double_498_bytes_total bytes +counter_double_498_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_499_bytes_total counter +# UNIT counter_double_499_bytes_total bytes +counter_double_499_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_49_bytes_total counter +# UNIT counter_double_49_bytes_total bytes +counter_double_49_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_4_bytes_total counter +# UNIT counter_double_4_bytes_total bytes +counter_double_4_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_500_bytes_total counter +# UNIT counter_double_500_bytes_total bytes +counter_double_500_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_501_bytes_total counter +# UNIT counter_double_501_bytes_total bytes +counter_double_501_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_502_bytes_total counter +# UNIT counter_double_502_bytes_total bytes +counter_double_502_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_503_bytes_total counter +# UNIT counter_double_503_bytes_total bytes +counter_double_503_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_504_bytes_total counter +# UNIT counter_double_504_bytes_total bytes +counter_double_504_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_505_bytes_total counter +# UNIT counter_double_505_bytes_total bytes +counter_double_505_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_506_bytes_total counter +# UNIT counter_double_506_bytes_total bytes +counter_double_506_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_507_bytes_total counter +# UNIT counter_double_507_bytes_total bytes +counter_double_507_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_508_bytes_total counter +# UNIT counter_double_508_bytes_total bytes +counter_double_508_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_509_bytes_total counter +# UNIT counter_double_509_bytes_total bytes +counter_double_509_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_50_bytes_total counter +# UNIT counter_double_50_bytes_total bytes +counter_double_50_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_510_bytes_total counter +# UNIT counter_double_510_bytes_total bytes +counter_double_510_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_511_bytes_total counter +# UNIT counter_double_511_bytes_total bytes +counter_double_511_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_512_bytes_total counter +# UNIT counter_double_512_bytes_total bytes +counter_double_512_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_513_bytes_total counter +# UNIT counter_double_513_bytes_total bytes +counter_double_513_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_514_bytes_total counter +# UNIT counter_double_514_bytes_total bytes +counter_double_514_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_515_bytes_total counter +# UNIT counter_double_515_bytes_total bytes +counter_double_515_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_516_bytes_total counter +# UNIT counter_double_516_bytes_total bytes +counter_double_516_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_517_bytes_total counter +# UNIT counter_double_517_bytes_total bytes +counter_double_517_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_518_bytes_total counter +# UNIT counter_double_518_bytes_total bytes +counter_double_518_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_519_bytes_total counter +# UNIT counter_double_519_bytes_total bytes +counter_double_519_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_51_bytes_total counter +# UNIT counter_double_51_bytes_total bytes +counter_double_51_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_520_bytes_total counter +# UNIT counter_double_520_bytes_total bytes +counter_double_520_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_521_bytes_total counter +# UNIT counter_double_521_bytes_total bytes +counter_double_521_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_522_bytes_total counter +# UNIT counter_double_522_bytes_total bytes +counter_double_522_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_523_bytes_total counter +# UNIT counter_double_523_bytes_total bytes +counter_double_523_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_524_bytes_total counter +# UNIT counter_double_524_bytes_total bytes +counter_double_524_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_525_bytes_total counter +# UNIT counter_double_525_bytes_total bytes +counter_double_525_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_526_bytes_total counter +# UNIT counter_double_526_bytes_total bytes +counter_double_526_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_527_bytes_total counter +# UNIT counter_double_527_bytes_total bytes +counter_double_527_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_528_bytes_total counter +# UNIT counter_double_528_bytes_total bytes +counter_double_528_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_529_bytes_total counter +# UNIT counter_double_529_bytes_total bytes +counter_double_529_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_52_bytes_total counter +# UNIT counter_double_52_bytes_total bytes +counter_double_52_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_530_bytes_total counter +# UNIT counter_double_530_bytes_total bytes +counter_double_530_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_531_bytes_total counter +# UNIT counter_double_531_bytes_total bytes +counter_double_531_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_532_bytes_total counter +# UNIT counter_double_532_bytes_total bytes +counter_double_532_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_533_bytes_total counter +# UNIT counter_double_533_bytes_total bytes +counter_double_533_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_534_bytes_total counter +# UNIT counter_double_534_bytes_total bytes +counter_double_534_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_535_bytes_total counter +# UNIT counter_double_535_bytes_total bytes +counter_double_535_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_536_bytes_total counter +# UNIT counter_double_536_bytes_total bytes +counter_double_536_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_537_bytes_total counter +# UNIT counter_double_537_bytes_total bytes +counter_double_537_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_538_bytes_total counter +# UNIT counter_double_538_bytes_total bytes +counter_double_538_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_539_bytes_total counter +# UNIT counter_double_539_bytes_total bytes +counter_double_539_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_53_bytes_total counter +# UNIT counter_double_53_bytes_total bytes +counter_double_53_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_540_bytes_total counter +# UNIT counter_double_540_bytes_total bytes +counter_double_540_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_541_bytes_total counter +# UNIT counter_double_541_bytes_total bytes +counter_double_541_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_542_bytes_total counter +# UNIT counter_double_542_bytes_total bytes +counter_double_542_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_543_bytes_total counter +# UNIT counter_double_543_bytes_total bytes +counter_double_543_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_544_bytes_total counter +# UNIT counter_double_544_bytes_total bytes +counter_double_544_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_545_bytes_total counter +# UNIT counter_double_545_bytes_total bytes +counter_double_545_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_546_bytes_total counter +# UNIT counter_double_546_bytes_total bytes +counter_double_546_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_547_bytes_total counter +# UNIT counter_double_547_bytes_total bytes +counter_double_547_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_548_bytes_total counter +# UNIT counter_double_548_bytes_total bytes +counter_double_548_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_549_bytes_total counter +# UNIT counter_double_549_bytes_total bytes +counter_double_549_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_54_bytes_total counter +# UNIT counter_double_54_bytes_total bytes +counter_double_54_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_550_bytes_total counter +# UNIT counter_double_550_bytes_total bytes +counter_double_550_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_551_bytes_total counter +# UNIT counter_double_551_bytes_total bytes +counter_double_551_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_552_bytes_total counter +# UNIT counter_double_552_bytes_total bytes +counter_double_552_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_553_bytes_total counter +# UNIT counter_double_553_bytes_total bytes +counter_double_553_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_554_bytes_total counter +# UNIT counter_double_554_bytes_total bytes +counter_double_554_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_555_bytes_total counter +# UNIT counter_double_555_bytes_total bytes +counter_double_555_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_556_bytes_total counter +# UNIT counter_double_556_bytes_total bytes +counter_double_556_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_557_bytes_total counter +# UNIT counter_double_557_bytes_total bytes +counter_double_557_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_558_bytes_total counter +# UNIT counter_double_558_bytes_total bytes +counter_double_558_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_559_bytes_total counter +# UNIT counter_double_559_bytes_total bytes +counter_double_559_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_55_bytes_total counter +# UNIT counter_double_55_bytes_total bytes +counter_double_55_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_560_bytes_total counter +# UNIT counter_double_560_bytes_total bytes +counter_double_560_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_561_bytes_total counter +# UNIT counter_double_561_bytes_total bytes +counter_double_561_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_562_bytes_total counter +# UNIT counter_double_562_bytes_total bytes +counter_double_562_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_563_bytes_total counter +# UNIT counter_double_563_bytes_total bytes +counter_double_563_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_564_bytes_total counter +# UNIT counter_double_564_bytes_total bytes +counter_double_564_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_565_bytes_total counter +# UNIT counter_double_565_bytes_total bytes +counter_double_565_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_566_bytes_total counter +# UNIT counter_double_566_bytes_total bytes +counter_double_566_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_567_bytes_total counter +# UNIT counter_double_567_bytes_total bytes +counter_double_567_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_568_bytes_total counter +# UNIT counter_double_568_bytes_total bytes +counter_double_568_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_569_bytes_total counter +# UNIT counter_double_569_bytes_total bytes +counter_double_569_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_56_bytes_total counter +# UNIT counter_double_56_bytes_total bytes +counter_double_56_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_570_bytes_total counter +# UNIT counter_double_570_bytes_total bytes +counter_double_570_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_571_bytes_total counter +# UNIT counter_double_571_bytes_total bytes +counter_double_571_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_572_bytes_total counter +# UNIT counter_double_572_bytes_total bytes +counter_double_572_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_573_bytes_total counter +# UNIT counter_double_573_bytes_total bytes +counter_double_573_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_574_bytes_total counter +# UNIT counter_double_574_bytes_total bytes +counter_double_574_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_575_bytes_total counter +# UNIT counter_double_575_bytes_total bytes +counter_double_575_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_576_bytes_total counter +# UNIT counter_double_576_bytes_total bytes +counter_double_576_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_577_bytes_total counter +# UNIT counter_double_577_bytes_total bytes +counter_double_577_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_578_bytes_total counter +# UNIT counter_double_578_bytes_total bytes +counter_double_578_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_579_bytes_total counter +# UNIT counter_double_579_bytes_total bytes +counter_double_579_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_57_bytes_total counter +# UNIT counter_double_57_bytes_total bytes +counter_double_57_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_580_bytes_total counter +# UNIT counter_double_580_bytes_total bytes +counter_double_580_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_581_bytes_total counter +# UNIT counter_double_581_bytes_total bytes +counter_double_581_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_582_bytes_total counter +# UNIT counter_double_582_bytes_total bytes +counter_double_582_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_583_bytes_total counter +# UNIT counter_double_583_bytes_total bytes +counter_double_583_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_584_bytes_total counter +# UNIT counter_double_584_bytes_total bytes +counter_double_584_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_585_bytes_total counter +# UNIT counter_double_585_bytes_total bytes +counter_double_585_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_586_bytes_total counter +# UNIT counter_double_586_bytes_total bytes +counter_double_586_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_587_bytes_total counter +# UNIT counter_double_587_bytes_total bytes +counter_double_587_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_588_bytes_total counter +# UNIT counter_double_588_bytes_total bytes +counter_double_588_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_589_bytes_total counter +# UNIT counter_double_589_bytes_total bytes +counter_double_589_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_58_bytes_total counter +# UNIT counter_double_58_bytes_total bytes +counter_double_58_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_590_bytes_total counter +# UNIT counter_double_590_bytes_total bytes +counter_double_590_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_591_bytes_total counter +# UNIT counter_double_591_bytes_total bytes +counter_double_591_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_592_bytes_total counter +# UNIT counter_double_592_bytes_total bytes +counter_double_592_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_593_bytes_total counter +# UNIT counter_double_593_bytes_total bytes +counter_double_593_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_594_bytes_total counter +# UNIT counter_double_594_bytes_total bytes +counter_double_594_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_595_bytes_total counter +# UNIT counter_double_595_bytes_total bytes +counter_double_595_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_596_bytes_total counter +# UNIT counter_double_596_bytes_total bytes +counter_double_596_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_597_bytes_total counter +# UNIT counter_double_597_bytes_total bytes +counter_double_597_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_598_bytes_total counter +# UNIT counter_double_598_bytes_total bytes +counter_double_598_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_599_bytes_total counter +# UNIT counter_double_599_bytes_total bytes +counter_double_599_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_59_bytes_total counter +# UNIT counter_double_59_bytes_total bytes +counter_double_59_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_5_bytes_total counter +# UNIT counter_double_5_bytes_total bytes +counter_double_5_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_600_bytes_total counter +# UNIT counter_double_600_bytes_total bytes +counter_double_600_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_601_bytes_total counter +# UNIT counter_double_601_bytes_total bytes +counter_double_601_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_602_bytes_total counter +# UNIT counter_double_602_bytes_total bytes +counter_double_602_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_603_bytes_total counter +# UNIT counter_double_603_bytes_total bytes +counter_double_603_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_604_bytes_total counter +# UNIT counter_double_604_bytes_total bytes +counter_double_604_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_605_bytes_total counter +# UNIT counter_double_605_bytes_total bytes +counter_double_605_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_606_bytes_total counter +# UNIT counter_double_606_bytes_total bytes +counter_double_606_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_607_bytes_total counter +# UNIT counter_double_607_bytes_total bytes +counter_double_607_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_608_bytes_total counter +# UNIT counter_double_608_bytes_total bytes +counter_double_608_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_609_bytes_total counter +# UNIT counter_double_609_bytes_total bytes +counter_double_609_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_60_bytes_total counter +# UNIT counter_double_60_bytes_total bytes +counter_double_60_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_610_bytes_total counter +# UNIT counter_double_610_bytes_total bytes +counter_double_610_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_611_bytes_total counter +# UNIT counter_double_611_bytes_total bytes +counter_double_611_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_612_bytes_total counter +# UNIT counter_double_612_bytes_total bytes +counter_double_612_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_613_bytes_total counter +# UNIT counter_double_613_bytes_total bytes +counter_double_613_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_614_bytes_total counter +# UNIT counter_double_614_bytes_total bytes +counter_double_614_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_615_bytes_total counter +# UNIT counter_double_615_bytes_total bytes +counter_double_615_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_616_bytes_total counter +# UNIT counter_double_616_bytes_total bytes +counter_double_616_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_617_bytes_total counter +# UNIT counter_double_617_bytes_total bytes +counter_double_617_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_618_bytes_total counter +# UNIT counter_double_618_bytes_total bytes +counter_double_618_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_619_bytes_total counter +# UNIT counter_double_619_bytes_total bytes +counter_double_619_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_61_bytes_total counter +# UNIT counter_double_61_bytes_total bytes +counter_double_61_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_620_bytes_total counter +# UNIT counter_double_620_bytes_total bytes +counter_double_620_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_621_bytes_total counter +# UNIT counter_double_621_bytes_total bytes +counter_double_621_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_622_bytes_total counter +# UNIT counter_double_622_bytes_total bytes +counter_double_622_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_623_bytes_total counter +# UNIT counter_double_623_bytes_total bytes +counter_double_623_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_624_bytes_total counter +# UNIT counter_double_624_bytes_total bytes +counter_double_624_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_625_bytes_total counter +# UNIT counter_double_625_bytes_total bytes +counter_double_625_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_626_bytes_total counter +# UNIT counter_double_626_bytes_total bytes +counter_double_626_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_627_bytes_total counter +# UNIT counter_double_627_bytes_total bytes +counter_double_627_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_628_bytes_total counter +# UNIT counter_double_628_bytes_total bytes +counter_double_628_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_629_bytes_total counter +# UNIT counter_double_629_bytes_total bytes +counter_double_629_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_62_bytes_total counter +# UNIT counter_double_62_bytes_total bytes +counter_double_62_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_630_bytes_total counter +# UNIT counter_double_630_bytes_total bytes +counter_double_630_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_631_bytes_total counter +# UNIT counter_double_631_bytes_total bytes +counter_double_631_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_632_bytes_total counter +# UNIT counter_double_632_bytes_total bytes +counter_double_632_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_633_bytes_total counter +# UNIT counter_double_633_bytes_total bytes +counter_double_633_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_634_bytes_total counter +# UNIT counter_double_634_bytes_total bytes +counter_double_634_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_635_bytes_total counter +# UNIT counter_double_635_bytes_total bytes +counter_double_635_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_636_bytes_total counter +# UNIT counter_double_636_bytes_total bytes +counter_double_636_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_637_bytes_total counter +# UNIT counter_double_637_bytes_total bytes +counter_double_637_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_638_bytes_total counter +# UNIT counter_double_638_bytes_total bytes +counter_double_638_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_639_bytes_total counter +# UNIT counter_double_639_bytes_total bytes +counter_double_639_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_63_bytes_total counter +# UNIT counter_double_63_bytes_total bytes +counter_double_63_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_640_bytes_total counter +# UNIT counter_double_640_bytes_total bytes +counter_double_640_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_641_bytes_total counter +# UNIT counter_double_641_bytes_total bytes +counter_double_641_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_642_bytes_total counter +# UNIT counter_double_642_bytes_total bytes +counter_double_642_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_643_bytes_total counter +# UNIT counter_double_643_bytes_total bytes +counter_double_643_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_644_bytes_total counter +# UNIT counter_double_644_bytes_total bytes +counter_double_644_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_645_bytes_total counter +# UNIT counter_double_645_bytes_total bytes +counter_double_645_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_646_bytes_total counter +# UNIT counter_double_646_bytes_total bytes +counter_double_646_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_647_bytes_total counter +# UNIT counter_double_647_bytes_total bytes +counter_double_647_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_648_bytes_total counter +# UNIT counter_double_648_bytes_total bytes +counter_double_648_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_649_bytes_total counter +# UNIT counter_double_649_bytes_total bytes +counter_double_649_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_64_bytes_total counter +# UNIT counter_double_64_bytes_total bytes +counter_double_64_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_650_bytes_total counter +# UNIT counter_double_650_bytes_total bytes +counter_double_650_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_651_bytes_total counter +# UNIT counter_double_651_bytes_total bytes +counter_double_651_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_652_bytes_total counter +# UNIT counter_double_652_bytes_total bytes +counter_double_652_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_653_bytes_total counter +# UNIT counter_double_653_bytes_total bytes +counter_double_653_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_654_bytes_total counter +# UNIT counter_double_654_bytes_total bytes +counter_double_654_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_655_bytes_total counter +# UNIT counter_double_655_bytes_total bytes +counter_double_655_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_656_bytes_total counter +# UNIT counter_double_656_bytes_total bytes +counter_double_656_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_657_bytes_total counter +# UNIT counter_double_657_bytes_total bytes +counter_double_657_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_658_bytes_total counter +# UNIT counter_double_658_bytes_total bytes +counter_double_658_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_659_bytes_total counter +# UNIT counter_double_659_bytes_total bytes +counter_double_659_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_65_bytes_total counter +# UNIT counter_double_65_bytes_total bytes +counter_double_65_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_660_bytes_total counter +# UNIT counter_double_660_bytes_total bytes +counter_double_660_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_661_bytes_total counter +# UNIT counter_double_661_bytes_total bytes +counter_double_661_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_662_bytes_total counter +# UNIT counter_double_662_bytes_total bytes +counter_double_662_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_663_bytes_total counter +# UNIT counter_double_663_bytes_total bytes +counter_double_663_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_664_bytes_total counter +# UNIT counter_double_664_bytes_total bytes +counter_double_664_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_665_bytes_total counter +# UNIT counter_double_665_bytes_total bytes +counter_double_665_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_666_bytes_total counter +# UNIT counter_double_666_bytes_total bytes +counter_double_666_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_667_bytes_total counter +# UNIT counter_double_667_bytes_total bytes +counter_double_667_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_668_bytes_total counter +# UNIT counter_double_668_bytes_total bytes +counter_double_668_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_669_bytes_total counter +# UNIT counter_double_669_bytes_total bytes +counter_double_669_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_66_bytes_total counter +# UNIT counter_double_66_bytes_total bytes +counter_double_66_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_670_bytes_total counter +# UNIT counter_double_670_bytes_total bytes +counter_double_670_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_671_bytes_total counter +# UNIT counter_double_671_bytes_total bytes +counter_double_671_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_672_bytes_total counter +# UNIT counter_double_672_bytes_total bytes +counter_double_672_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_673_bytes_total counter +# UNIT counter_double_673_bytes_total bytes +counter_double_673_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_674_bytes_total counter +# UNIT counter_double_674_bytes_total bytes +counter_double_674_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_675_bytes_total counter +# UNIT counter_double_675_bytes_total bytes +counter_double_675_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_676_bytes_total counter +# UNIT counter_double_676_bytes_total bytes +counter_double_676_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_677_bytes_total counter +# UNIT counter_double_677_bytes_total bytes +counter_double_677_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_678_bytes_total counter +# UNIT counter_double_678_bytes_total bytes +counter_double_678_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_679_bytes_total counter +# UNIT counter_double_679_bytes_total bytes +counter_double_679_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_67_bytes_total counter +# UNIT counter_double_67_bytes_total bytes +counter_double_67_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_680_bytes_total counter +# UNIT counter_double_680_bytes_total bytes +counter_double_680_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_681_bytes_total counter +# UNIT counter_double_681_bytes_total bytes +counter_double_681_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_682_bytes_total counter +# UNIT counter_double_682_bytes_total bytes +counter_double_682_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_683_bytes_total counter +# UNIT counter_double_683_bytes_total bytes +counter_double_683_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_684_bytes_total counter +# UNIT counter_double_684_bytes_total bytes +counter_double_684_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_685_bytes_total counter +# UNIT counter_double_685_bytes_total bytes +counter_double_685_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_686_bytes_total counter +# UNIT counter_double_686_bytes_total bytes +counter_double_686_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_687_bytes_total counter +# UNIT counter_double_687_bytes_total bytes +counter_double_687_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_688_bytes_total counter +# UNIT counter_double_688_bytes_total bytes +counter_double_688_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_689_bytes_total counter +# UNIT counter_double_689_bytes_total bytes +counter_double_689_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_68_bytes_total counter +# UNIT counter_double_68_bytes_total bytes +counter_double_68_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_690_bytes_total counter +# UNIT counter_double_690_bytes_total bytes +counter_double_690_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_691_bytes_total counter +# UNIT counter_double_691_bytes_total bytes +counter_double_691_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_692_bytes_total counter +# UNIT counter_double_692_bytes_total bytes +counter_double_692_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_693_bytes_total counter +# UNIT counter_double_693_bytes_total bytes +counter_double_693_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_694_bytes_total counter +# UNIT counter_double_694_bytes_total bytes +counter_double_694_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_695_bytes_total counter +# UNIT counter_double_695_bytes_total bytes +counter_double_695_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_696_bytes_total counter +# UNIT counter_double_696_bytes_total bytes +counter_double_696_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_697_bytes_total counter +# UNIT counter_double_697_bytes_total bytes +counter_double_697_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_698_bytes_total counter +# UNIT counter_double_698_bytes_total bytes +counter_double_698_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_699_bytes_total counter +# UNIT counter_double_699_bytes_total bytes +counter_double_699_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_69_bytes_total counter +# UNIT counter_double_69_bytes_total bytes +counter_double_69_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_6_bytes_total counter +# UNIT counter_double_6_bytes_total bytes +counter_double_6_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_700_bytes_total counter +# UNIT counter_double_700_bytes_total bytes +counter_double_700_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_701_bytes_total counter +# UNIT counter_double_701_bytes_total bytes +counter_double_701_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_702_bytes_total counter +# UNIT counter_double_702_bytes_total bytes +counter_double_702_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_703_bytes_total counter +# UNIT counter_double_703_bytes_total bytes +counter_double_703_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_704_bytes_total counter +# UNIT counter_double_704_bytes_total bytes +counter_double_704_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_705_bytes_total counter +# UNIT counter_double_705_bytes_total bytes +counter_double_705_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_706_bytes_total counter +# UNIT counter_double_706_bytes_total bytes +counter_double_706_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_707_bytes_total counter +# UNIT counter_double_707_bytes_total bytes +counter_double_707_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_708_bytes_total counter +# UNIT counter_double_708_bytes_total bytes +counter_double_708_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_709_bytes_total counter +# UNIT counter_double_709_bytes_total bytes +counter_double_709_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_70_bytes_total counter +# UNIT counter_double_70_bytes_total bytes +counter_double_70_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_710_bytes_total counter +# UNIT counter_double_710_bytes_total bytes +counter_double_710_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_711_bytes_total counter +# UNIT counter_double_711_bytes_total bytes +counter_double_711_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_712_bytes_total counter +# UNIT counter_double_712_bytes_total bytes +counter_double_712_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_713_bytes_total counter +# UNIT counter_double_713_bytes_total bytes +counter_double_713_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_714_bytes_total counter +# UNIT counter_double_714_bytes_total bytes +counter_double_714_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_715_bytes_total counter +# UNIT counter_double_715_bytes_total bytes +counter_double_715_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_716_bytes_total counter +# UNIT counter_double_716_bytes_total bytes +counter_double_716_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_717_bytes_total counter +# UNIT counter_double_717_bytes_total bytes +counter_double_717_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_718_bytes_total counter +# UNIT counter_double_718_bytes_total bytes +counter_double_718_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_719_bytes_total counter +# UNIT counter_double_719_bytes_total bytes +counter_double_719_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_71_bytes_total counter +# UNIT counter_double_71_bytes_total bytes +counter_double_71_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_720_bytes_total counter +# UNIT counter_double_720_bytes_total bytes +counter_double_720_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_721_bytes_total counter +# UNIT counter_double_721_bytes_total bytes +counter_double_721_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_722_bytes_total counter +# UNIT counter_double_722_bytes_total bytes +counter_double_722_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_723_bytes_total counter +# UNIT counter_double_723_bytes_total bytes +counter_double_723_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_724_bytes_total counter +# UNIT counter_double_724_bytes_total bytes +counter_double_724_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_725_bytes_total counter +# UNIT counter_double_725_bytes_total bytes +counter_double_725_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_726_bytes_total counter +# UNIT counter_double_726_bytes_total bytes +counter_double_726_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_727_bytes_total counter +# UNIT counter_double_727_bytes_total bytes +counter_double_727_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_728_bytes_total counter +# UNIT counter_double_728_bytes_total bytes +counter_double_728_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_729_bytes_total counter +# UNIT counter_double_729_bytes_total bytes +counter_double_729_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_72_bytes_total counter +# UNIT counter_double_72_bytes_total bytes +counter_double_72_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_730_bytes_total counter +# UNIT counter_double_730_bytes_total bytes +counter_double_730_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_731_bytes_total counter +# UNIT counter_double_731_bytes_total bytes +counter_double_731_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_732_bytes_total counter +# UNIT counter_double_732_bytes_total bytes +counter_double_732_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_733_bytes_total counter +# UNIT counter_double_733_bytes_total bytes +counter_double_733_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_734_bytes_total counter +# UNIT counter_double_734_bytes_total bytes +counter_double_734_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_735_bytes_total counter +# UNIT counter_double_735_bytes_total bytes +counter_double_735_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_736_bytes_total counter +# UNIT counter_double_736_bytes_total bytes +counter_double_736_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_737_bytes_total counter +# UNIT counter_double_737_bytes_total bytes +counter_double_737_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_738_bytes_total counter +# UNIT counter_double_738_bytes_total bytes +counter_double_738_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_739_bytes_total counter +# UNIT counter_double_739_bytes_total bytes +counter_double_739_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_73_bytes_total counter +# UNIT counter_double_73_bytes_total bytes +counter_double_73_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_740_bytes_total counter +# UNIT counter_double_740_bytes_total bytes +counter_double_740_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_741_bytes_total counter +# UNIT counter_double_741_bytes_total bytes +counter_double_741_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_742_bytes_total counter +# UNIT counter_double_742_bytes_total bytes +counter_double_742_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_743_bytes_total counter +# UNIT counter_double_743_bytes_total bytes +counter_double_743_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_744_bytes_total counter +# UNIT counter_double_744_bytes_total bytes +counter_double_744_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_745_bytes_total counter +# UNIT counter_double_745_bytes_total bytes +counter_double_745_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_746_bytes_total counter +# UNIT counter_double_746_bytes_total bytes +counter_double_746_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_747_bytes_total counter +# UNIT counter_double_747_bytes_total bytes +counter_double_747_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_748_bytes_total counter +# UNIT counter_double_748_bytes_total bytes +counter_double_748_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_749_bytes_total counter +# UNIT counter_double_749_bytes_total bytes +counter_double_749_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_74_bytes_total counter +# UNIT counter_double_74_bytes_total bytes +counter_double_74_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_750_bytes_total counter +# UNIT counter_double_750_bytes_total bytes +counter_double_750_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_751_bytes_total counter +# UNIT counter_double_751_bytes_total bytes +counter_double_751_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_752_bytes_total counter +# UNIT counter_double_752_bytes_total bytes +counter_double_752_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_753_bytes_total counter +# UNIT counter_double_753_bytes_total bytes +counter_double_753_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_754_bytes_total counter +# UNIT counter_double_754_bytes_total bytes +counter_double_754_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_755_bytes_total counter +# UNIT counter_double_755_bytes_total bytes +counter_double_755_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_756_bytes_total counter +# UNIT counter_double_756_bytes_total bytes +counter_double_756_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_757_bytes_total counter +# UNIT counter_double_757_bytes_total bytes +counter_double_757_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_758_bytes_total counter +# UNIT counter_double_758_bytes_total bytes +counter_double_758_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_759_bytes_total counter +# UNIT counter_double_759_bytes_total bytes +counter_double_759_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_75_bytes_total counter +# UNIT counter_double_75_bytes_total bytes +counter_double_75_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_760_bytes_total counter +# UNIT counter_double_760_bytes_total bytes +counter_double_760_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_761_bytes_total counter +# UNIT counter_double_761_bytes_total bytes +counter_double_761_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_762_bytes_total counter +# UNIT counter_double_762_bytes_total bytes +counter_double_762_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_763_bytes_total counter +# UNIT counter_double_763_bytes_total bytes +counter_double_763_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_764_bytes_total counter +# UNIT counter_double_764_bytes_total bytes +counter_double_764_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_765_bytes_total counter +# UNIT counter_double_765_bytes_total bytes +counter_double_765_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_766_bytes_total counter +# UNIT counter_double_766_bytes_total bytes +counter_double_766_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_767_bytes_total counter +# UNIT counter_double_767_bytes_total bytes +counter_double_767_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_768_bytes_total counter +# UNIT counter_double_768_bytes_total bytes +counter_double_768_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_769_bytes_total counter +# UNIT counter_double_769_bytes_total bytes +counter_double_769_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_76_bytes_total counter +# UNIT counter_double_76_bytes_total bytes +counter_double_76_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_770_bytes_total counter +# UNIT counter_double_770_bytes_total bytes +counter_double_770_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_771_bytes_total counter +# UNIT counter_double_771_bytes_total bytes +counter_double_771_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_772_bytes_total counter +# UNIT counter_double_772_bytes_total bytes +counter_double_772_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_773_bytes_total counter +# UNIT counter_double_773_bytes_total bytes +counter_double_773_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_774_bytes_total counter +# UNIT counter_double_774_bytes_total bytes +counter_double_774_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_775_bytes_total counter +# UNIT counter_double_775_bytes_total bytes +counter_double_775_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_776_bytes_total counter +# UNIT counter_double_776_bytes_total bytes +counter_double_776_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_777_bytes_total counter +# UNIT counter_double_777_bytes_total bytes +counter_double_777_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_778_bytes_total counter +# UNIT counter_double_778_bytes_total bytes +counter_double_778_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_779_bytes_total counter +# UNIT counter_double_779_bytes_total bytes +counter_double_779_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_77_bytes_total counter +# UNIT counter_double_77_bytes_total bytes +counter_double_77_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_780_bytes_total counter +# UNIT counter_double_780_bytes_total bytes +counter_double_780_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_781_bytes_total counter +# UNIT counter_double_781_bytes_total bytes +counter_double_781_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_782_bytes_total counter +# UNIT counter_double_782_bytes_total bytes +counter_double_782_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_783_bytes_total counter +# UNIT counter_double_783_bytes_total bytes +counter_double_783_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_784_bytes_total counter +# UNIT counter_double_784_bytes_total bytes +counter_double_784_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_785_bytes_total counter +# UNIT counter_double_785_bytes_total bytes +counter_double_785_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_786_bytes_total counter +# UNIT counter_double_786_bytes_total bytes +counter_double_786_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_787_bytes_total counter +# UNIT counter_double_787_bytes_total bytes +counter_double_787_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_788_bytes_total counter +# UNIT counter_double_788_bytes_total bytes +counter_double_788_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_789_bytes_total counter +# UNIT counter_double_789_bytes_total bytes +counter_double_789_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_78_bytes_total counter +# UNIT counter_double_78_bytes_total bytes +counter_double_78_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_790_bytes_total counter +# UNIT counter_double_790_bytes_total bytes +counter_double_790_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_791_bytes_total counter +# UNIT counter_double_791_bytes_total bytes +counter_double_791_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_792_bytes_total counter +# UNIT counter_double_792_bytes_total bytes +counter_double_792_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_793_bytes_total counter +# UNIT counter_double_793_bytes_total bytes +counter_double_793_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_794_bytes_total counter +# UNIT counter_double_794_bytes_total bytes +counter_double_794_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_795_bytes_total counter +# UNIT counter_double_795_bytes_total bytes +counter_double_795_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_796_bytes_total counter +# UNIT counter_double_796_bytes_total bytes +counter_double_796_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_797_bytes_total counter +# UNIT counter_double_797_bytes_total bytes +counter_double_797_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_798_bytes_total counter +# UNIT counter_double_798_bytes_total bytes +counter_double_798_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_799_bytes_total counter +# UNIT counter_double_799_bytes_total bytes +counter_double_799_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_79_bytes_total counter +# UNIT counter_double_79_bytes_total bytes +counter_double_79_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_7_bytes_total counter +# UNIT counter_double_7_bytes_total bytes +counter_double_7_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_800_bytes_total counter +# UNIT counter_double_800_bytes_total bytes +counter_double_800_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_801_bytes_total counter +# UNIT counter_double_801_bytes_total bytes +counter_double_801_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_802_bytes_total counter +# UNIT counter_double_802_bytes_total bytes +counter_double_802_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_803_bytes_total counter +# UNIT counter_double_803_bytes_total bytes +counter_double_803_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_804_bytes_total counter +# UNIT counter_double_804_bytes_total bytes +counter_double_804_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_805_bytes_total counter +# UNIT counter_double_805_bytes_total bytes +counter_double_805_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_806_bytes_total counter +# UNIT counter_double_806_bytes_total bytes +counter_double_806_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_807_bytes_total counter +# UNIT counter_double_807_bytes_total bytes +counter_double_807_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_808_bytes_total counter +# UNIT counter_double_808_bytes_total bytes +counter_double_808_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_809_bytes_total counter +# UNIT counter_double_809_bytes_total bytes +counter_double_809_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_80_bytes_total counter +# UNIT counter_double_80_bytes_total bytes +counter_double_80_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_810_bytes_total counter +# UNIT counter_double_810_bytes_total bytes +counter_double_810_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_811_bytes_total counter +# UNIT counter_double_811_bytes_total bytes +counter_double_811_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_812_bytes_total counter +# UNIT counter_double_812_bytes_total bytes +counter_double_812_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_813_bytes_total counter +# UNIT counter_double_813_bytes_total bytes +counter_double_813_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_814_bytes_total counter +# UNIT counter_double_814_bytes_total bytes +counter_double_814_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_815_bytes_total counter +# UNIT counter_double_815_bytes_total bytes +counter_double_815_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_816_bytes_total counter +# UNIT counter_double_816_bytes_total bytes +counter_double_816_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_817_bytes_total counter +# UNIT counter_double_817_bytes_total bytes +counter_double_817_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_818_bytes_total counter +# UNIT counter_double_818_bytes_total bytes +counter_double_818_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_819_bytes_total counter +# UNIT counter_double_819_bytes_total bytes +counter_double_819_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_81_bytes_total counter +# UNIT counter_double_81_bytes_total bytes +counter_double_81_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_820_bytes_total counter +# UNIT counter_double_820_bytes_total bytes +counter_double_820_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_821_bytes_total counter +# UNIT counter_double_821_bytes_total bytes +counter_double_821_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_822_bytes_total counter +# UNIT counter_double_822_bytes_total bytes +counter_double_822_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_823_bytes_total counter +# UNIT counter_double_823_bytes_total bytes +counter_double_823_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_824_bytes_total counter +# UNIT counter_double_824_bytes_total bytes +counter_double_824_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_825_bytes_total counter +# UNIT counter_double_825_bytes_total bytes +counter_double_825_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_826_bytes_total counter +# UNIT counter_double_826_bytes_total bytes +counter_double_826_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_827_bytes_total counter +# UNIT counter_double_827_bytes_total bytes +counter_double_827_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_828_bytes_total counter +# UNIT counter_double_828_bytes_total bytes +counter_double_828_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_829_bytes_total counter +# UNIT counter_double_829_bytes_total bytes +counter_double_829_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_82_bytes_total counter +# UNIT counter_double_82_bytes_total bytes +counter_double_82_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_830_bytes_total counter +# UNIT counter_double_830_bytes_total bytes +counter_double_830_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_831_bytes_total counter +# UNIT counter_double_831_bytes_total bytes +counter_double_831_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_832_bytes_total counter +# UNIT counter_double_832_bytes_total bytes +counter_double_832_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_833_bytes_total counter +# UNIT counter_double_833_bytes_total bytes +counter_double_833_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_834_bytes_total counter +# UNIT counter_double_834_bytes_total bytes +counter_double_834_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_835_bytes_total counter +# UNIT counter_double_835_bytes_total bytes +counter_double_835_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_836_bytes_total counter +# UNIT counter_double_836_bytes_total bytes +counter_double_836_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_837_bytes_total counter +# UNIT counter_double_837_bytes_total bytes +counter_double_837_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_838_bytes_total counter +# UNIT counter_double_838_bytes_total bytes +counter_double_838_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_839_bytes_total counter +# UNIT counter_double_839_bytes_total bytes +counter_double_839_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_83_bytes_total counter +# UNIT counter_double_83_bytes_total bytes +counter_double_83_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_840_bytes_total counter +# UNIT counter_double_840_bytes_total bytes +counter_double_840_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_841_bytes_total counter +# UNIT counter_double_841_bytes_total bytes +counter_double_841_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_842_bytes_total counter +# UNIT counter_double_842_bytes_total bytes +counter_double_842_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_843_bytes_total counter +# UNIT counter_double_843_bytes_total bytes +counter_double_843_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_844_bytes_total counter +# UNIT counter_double_844_bytes_total bytes +counter_double_844_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_845_bytes_total counter +# UNIT counter_double_845_bytes_total bytes +counter_double_845_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_846_bytes_total counter +# UNIT counter_double_846_bytes_total bytes +counter_double_846_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_847_bytes_total counter +# UNIT counter_double_847_bytes_total bytes +counter_double_847_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_848_bytes_total counter +# UNIT counter_double_848_bytes_total bytes +counter_double_848_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_849_bytes_total counter +# UNIT counter_double_849_bytes_total bytes +counter_double_849_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_84_bytes_total counter +# UNIT counter_double_84_bytes_total bytes +counter_double_84_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_850_bytes_total counter +# UNIT counter_double_850_bytes_total bytes +counter_double_850_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_851_bytes_total counter +# UNIT counter_double_851_bytes_total bytes +counter_double_851_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_852_bytes_total counter +# UNIT counter_double_852_bytes_total bytes +counter_double_852_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_853_bytes_total counter +# UNIT counter_double_853_bytes_total bytes +counter_double_853_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_854_bytes_total counter +# UNIT counter_double_854_bytes_total bytes +counter_double_854_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_855_bytes_total counter +# UNIT counter_double_855_bytes_total bytes +counter_double_855_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_856_bytes_total counter +# UNIT counter_double_856_bytes_total bytes +counter_double_856_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_857_bytes_total counter +# UNIT counter_double_857_bytes_total bytes +counter_double_857_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_858_bytes_total counter +# UNIT counter_double_858_bytes_total bytes +counter_double_858_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_859_bytes_total counter +# UNIT counter_double_859_bytes_total bytes +counter_double_859_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_85_bytes_total counter +# UNIT counter_double_85_bytes_total bytes +counter_double_85_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_860_bytes_total counter +# UNIT counter_double_860_bytes_total bytes +counter_double_860_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_861_bytes_total counter +# UNIT counter_double_861_bytes_total bytes +counter_double_861_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_862_bytes_total counter +# UNIT counter_double_862_bytes_total bytes +counter_double_862_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_863_bytes_total counter +# UNIT counter_double_863_bytes_total bytes +counter_double_863_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_864_bytes_total counter +# UNIT counter_double_864_bytes_total bytes +counter_double_864_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_865_bytes_total counter +# UNIT counter_double_865_bytes_total bytes +counter_double_865_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_866_bytes_total counter +# UNIT counter_double_866_bytes_total bytes +counter_double_866_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_867_bytes_total counter +# UNIT counter_double_867_bytes_total bytes +counter_double_867_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_868_bytes_total counter +# UNIT counter_double_868_bytes_total bytes +counter_double_868_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_869_bytes_total counter +# UNIT counter_double_869_bytes_total bytes +counter_double_869_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_86_bytes_total counter +# UNIT counter_double_86_bytes_total bytes +counter_double_86_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_870_bytes_total counter +# UNIT counter_double_870_bytes_total bytes +counter_double_870_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_871_bytes_total counter +# UNIT counter_double_871_bytes_total bytes +counter_double_871_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_872_bytes_total counter +# UNIT counter_double_872_bytes_total bytes +counter_double_872_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_873_bytes_total counter +# UNIT counter_double_873_bytes_total bytes +counter_double_873_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_874_bytes_total counter +# UNIT counter_double_874_bytes_total bytes +counter_double_874_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_875_bytes_total counter +# UNIT counter_double_875_bytes_total bytes +counter_double_875_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_876_bytes_total counter +# UNIT counter_double_876_bytes_total bytes +counter_double_876_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_877_bytes_total counter +# UNIT counter_double_877_bytes_total bytes +counter_double_877_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_878_bytes_total counter +# UNIT counter_double_878_bytes_total bytes +counter_double_878_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_879_bytes_total counter +# UNIT counter_double_879_bytes_total bytes +counter_double_879_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_87_bytes_total counter +# UNIT counter_double_87_bytes_total bytes +counter_double_87_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_880_bytes_total counter +# UNIT counter_double_880_bytes_total bytes +counter_double_880_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_881_bytes_total counter +# UNIT counter_double_881_bytes_total bytes +counter_double_881_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_882_bytes_total counter +# UNIT counter_double_882_bytes_total bytes +counter_double_882_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_883_bytes_total counter +# UNIT counter_double_883_bytes_total bytes +counter_double_883_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_884_bytes_total counter +# UNIT counter_double_884_bytes_total bytes +counter_double_884_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_885_bytes_total counter +# UNIT counter_double_885_bytes_total bytes +counter_double_885_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_886_bytes_total counter +# UNIT counter_double_886_bytes_total bytes +counter_double_886_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_887_bytes_total counter +# UNIT counter_double_887_bytes_total bytes +counter_double_887_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_888_bytes_total counter +# UNIT counter_double_888_bytes_total bytes +counter_double_888_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_889_bytes_total counter +# UNIT counter_double_889_bytes_total bytes +counter_double_889_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_88_bytes_total counter +# UNIT counter_double_88_bytes_total bytes +counter_double_88_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_890_bytes_total counter +# UNIT counter_double_890_bytes_total bytes +counter_double_890_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_891_bytes_total counter +# UNIT counter_double_891_bytes_total bytes +counter_double_891_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_892_bytes_total counter +# UNIT counter_double_892_bytes_total bytes +counter_double_892_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_893_bytes_total counter +# UNIT counter_double_893_bytes_total bytes +counter_double_893_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_894_bytes_total counter +# UNIT counter_double_894_bytes_total bytes +counter_double_894_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_895_bytes_total counter +# UNIT counter_double_895_bytes_total bytes +counter_double_895_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_896_bytes_total counter +# UNIT counter_double_896_bytes_total bytes +counter_double_896_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_897_bytes_total counter +# UNIT counter_double_897_bytes_total bytes +counter_double_897_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_898_bytes_total counter +# UNIT counter_double_898_bytes_total bytes +counter_double_898_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_899_bytes_total counter +# UNIT counter_double_899_bytes_total bytes +counter_double_899_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_89_bytes_total counter +# UNIT counter_double_89_bytes_total bytes +counter_double_89_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_8_bytes_total counter +# UNIT counter_double_8_bytes_total bytes +counter_double_8_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_900_bytes_total counter +# UNIT counter_double_900_bytes_total bytes +counter_double_900_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_901_bytes_total counter +# UNIT counter_double_901_bytes_total bytes +counter_double_901_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_902_bytes_total counter +# UNIT counter_double_902_bytes_total bytes +counter_double_902_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_903_bytes_total counter +# UNIT counter_double_903_bytes_total bytes +counter_double_903_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_904_bytes_total counter +# UNIT counter_double_904_bytes_total bytes +counter_double_904_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_905_bytes_total counter +# UNIT counter_double_905_bytes_total bytes +counter_double_905_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_906_bytes_total counter +# UNIT counter_double_906_bytes_total bytes +counter_double_906_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_907_bytes_total counter +# UNIT counter_double_907_bytes_total bytes +counter_double_907_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_908_bytes_total counter +# UNIT counter_double_908_bytes_total bytes +counter_double_908_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_909_bytes_total counter +# UNIT counter_double_909_bytes_total bytes +counter_double_909_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_90_bytes_total counter +# UNIT counter_double_90_bytes_total bytes +counter_double_90_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_910_bytes_total counter +# UNIT counter_double_910_bytes_total bytes +counter_double_910_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_911_bytes_total counter +# UNIT counter_double_911_bytes_total bytes +counter_double_911_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_912_bytes_total counter +# UNIT counter_double_912_bytes_total bytes +counter_double_912_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_913_bytes_total counter +# UNIT counter_double_913_bytes_total bytes +counter_double_913_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_914_bytes_total counter +# UNIT counter_double_914_bytes_total bytes +counter_double_914_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_915_bytes_total counter +# UNIT counter_double_915_bytes_total bytes +counter_double_915_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_916_bytes_total counter +# UNIT counter_double_916_bytes_total bytes +counter_double_916_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_917_bytes_total counter +# UNIT counter_double_917_bytes_total bytes +counter_double_917_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_918_bytes_total counter +# UNIT counter_double_918_bytes_total bytes +counter_double_918_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_919_bytes_total counter +# UNIT counter_double_919_bytes_total bytes +counter_double_919_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_91_bytes_total counter +# UNIT counter_double_91_bytes_total bytes +counter_double_91_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_920_bytes_total counter +# UNIT counter_double_920_bytes_total bytes +counter_double_920_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_921_bytes_total counter +# UNIT counter_double_921_bytes_total bytes +counter_double_921_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_922_bytes_total counter +# UNIT counter_double_922_bytes_total bytes +counter_double_922_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_923_bytes_total counter +# UNIT counter_double_923_bytes_total bytes +counter_double_923_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_924_bytes_total counter +# UNIT counter_double_924_bytes_total bytes +counter_double_924_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_925_bytes_total counter +# UNIT counter_double_925_bytes_total bytes +counter_double_925_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_926_bytes_total counter +# UNIT counter_double_926_bytes_total bytes +counter_double_926_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_927_bytes_total counter +# UNIT counter_double_927_bytes_total bytes +counter_double_927_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_928_bytes_total counter +# UNIT counter_double_928_bytes_total bytes +counter_double_928_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_929_bytes_total counter +# UNIT counter_double_929_bytes_total bytes +counter_double_929_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_92_bytes_total counter +# UNIT counter_double_92_bytes_total bytes +counter_double_92_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_930_bytes_total counter +# UNIT counter_double_930_bytes_total bytes +counter_double_930_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_931_bytes_total counter +# UNIT counter_double_931_bytes_total bytes +counter_double_931_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_932_bytes_total counter +# UNIT counter_double_932_bytes_total bytes +counter_double_932_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_933_bytes_total counter +# UNIT counter_double_933_bytes_total bytes +counter_double_933_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_934_bytes_total counter +# UNIT counter_double_934_bytes_total bytes +counter_double_934_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_935_bytes_total counter +# UNIT counter_double_935_bytes_total bytes +counter_double_935_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_936_bytes_total counter +# UNIT counter_double_936_bytes_total bytes +counter_double_936_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_937_bytes_total counter +# UNIT counter_double_937_bytes_total bytes +counter_double_937_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_938_bytes_total counter +# UNIT counter_double_938_bytes_total bytes +counter_double_938_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_939_bytes_total counter +# UNIT counter_double_939_bytes_total bytes +counter_double_939_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_93_bytes_total counter +# UNIT counter_double_93_bytes_total bytes +counter_double_93_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_940_bytes_total counter +# UNIT counter_double_940_bytes_total bytes +counter_double_940_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_941_bytes_total counter +# UNIT counter_double_941_bytes_total bytes +counter_double_941_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_942_bytes_total counter +# UNIT counter_double_942_bytes_total bytes +counter_double_942_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_943_bytes_total counter +# UNIT counter_double_943_bytes_total bytes +counter_double_943_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_944_bytes_total counter +# UNIT counter_double_944_bytes_total bytes +counter_double_944_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_945_bytes_total counter +# UNIT counter_double_945_bytes_total bytes +counter_double_945_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_946_bytes_total counter +# UNIT counter_double_946_bytes_total bytes +counter_double_946_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_947_bytes_total counter +# UNIT counter_double_947_bytes_total bytes +counter_double_947_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_948_bytes_total counter +# UNIT counter_double_948_bytes_total bytes +counter_double_948_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_949_bytes_total counter +# UNIT counter_double_949_bytes_total bytes +counter_double_949_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_94_bytes_total counter +# UNIT counter_double_94_bytes_total bytes +counter_double_94_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_950_bytes_total counter +# UNIT counter_double_950_bytes_total bytes +counter_double_950_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_951_bytes_total counter +# UNIT counter_double_951_bytes_total bytes +counter_double_951_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_952_bytes_total counter +# UNIT counter_double_952_bytes_total bytes +counter_double_952_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_953_bytes_total counter +# UNIT counter_double_953_bytes_total bytes +counter_double_953_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_954_bytes_total counter +# UNIT counter_double_954_bytes_total bytes +counter_double_954_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_955_bytes_total counter +# UNIT counter_double_955_bytes_total bytes +counter_double_955_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_956_bytes_total counter +# UNIT counter_double_956_bytes_total bytes +counter_double_956_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_957_bytes_total counter +# UNIT counter_double_957_bytes_total bytes +counter_double_957_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_958_bytes_total counter +# UNIT counter_double_958_bytes_total bytes +counter_double_958_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_959_bytes_total counter +# UNIT counter_double_959_bytes_total bytes +counter_double_959_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_95_bytes_total counter +# UNIT counter_double_95_bytes_total bytes +counter_double_95_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_960_bytes_total counter +# UNIT counter_double_960_bytes_total bytes +counter_double_960_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_961_bytes_total counter +# UNIT counter_double_961_bytes_total bytes +counter_double_961_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_962_bytes_total counter +# UNIT counter_double_962_bytes_total bytes +counter_double_962_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_963_bytes_total counter +# UNIT counter_double_963_bytes_total bytes +counter_double_963_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_964_bytes_total counter +# UNIT counter_double_964_bytes_total bytes +counter_double_964_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_965_bytes_total counter +# UNIT counter_double_965_bytes_total bytes +counter_double_965_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_966_bytes_total counter +# UNIT counter_double_966_bytes_total bytes +counter_double_966_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_967_bytes_total counter +# UNIT counter_double_967_bytes_total bytes +counter_double_967_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_968_bytes_total counter +# UNIT counter_double_968_bytes_total bytes +counter_double_968_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_969_bytes_total counter +# UNIT counter_double_969_bytes_total bytes +counter_double_969_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_96_bytes_total counter +# UNIT counter_double_96_bytes_total bytes +counter_double_96_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_970_bytes_total counter +# UNIT counter_double_970_bytes_total bytes +counter_double_970_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_971_bytes_total counter +# UNIT counter_double_971_bytes_total bytes +counter_double_971_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_972_bytes_total counter +# UNIT counter_double_972_bytes_total bytes +counter_double_972_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_973_bytes_total counter +# UNIT counter_double_973_bytes_total bytes +counter_double_973_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_974_bytes_total counter +# UNIT counter_double_974_bytes_total bytes +counter_double_974_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_975_bytes_total counter +# UNIT counter_double_975_bytes_total bytes +counter_double_975_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_976_bytes_total counter +# UNIT counter_double_976_bytes_total bytes +counter_double_976_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_977_bytes_total counter +# UNIT counter_double_977_bytes_total bytes +counter_double_977_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_978_bytes_total counter +# UNIT counter_double_978_bytes_total bytes +counter_double_978_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_979_bytes_total counter +# UNIT counter_double_979_bytes_total bytes +counter_double_979_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_97_bytes_total counter +# UNIT counter_double_97_bytes_total bytes +counter_double_97_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_980_bytes_total counter +# UNIT counter_double_980_bytes_total bytes +counter_double_980_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_981_bytes_total counter +# UNIT counter_double_981_bytes_total bytes +counter_double_981_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_982_bytes_total counter +# UNIT counter_double_982_bytes_total bytes +counter_double_982_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_983_bytes_total counter +# UNIT counter_double_983_bytes_total bytes +counter_double_983_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_984_bytes_total counter +# UNIT counter_double_984_bytes_total bytes +counter_double_984_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_985_bytes_total counter +# UNIT counter_double_985_bytes_total bytes +counter_double_985_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_986_bytes_total counter +# UNIT counter_double_986_bytes_total bytes +counter_double_986_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_987_bytes_total counter +# UNIT counter_double_987_bytes_total bytes +counter_double_987_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_988_bytes_total counter +# UNIT counter_double_988_bytes_total bytes +counter_double_988_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_989_bytes_total counter +# UNIT counter_double_989_bytes_total bytes +counter_double_989_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_98_bytes_total counter +# UNIT counter_double_98_bytes_total bytes +counter_double_98_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_990_bytes_total counter +# UNIT counter_double_990_bytes_total bytes +counter_double_990_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_991_bytes_total counter +# UNIT counter_double_991_bytes_total bytes +counter_double_991_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_992_bytes_total counter +# UNIT counter_double_992_bytes_total bytes +counter_double_992_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_993_bytes_total counter +# UNIT counter_double_993_bytes_total bytes +counter_double_993_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_994_bytes_total counter +# UNIT counter_double_994_bytes_total bytes +counter_double_994_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_995_bytes_total counter +# UNIT counter_double_995_bytes_total bytes +counter_double_995_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_996_bytes_total counter +# UNIT counter_double_996_bytes_total bytes +counter_double_996_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_997_bytes_total counter +# UNIT counter_double_997_bytes_total bytes +counter_double_997_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_998_bytes_total counter +# UNIT counter_double_998_bytes_total bytes +counter_double_998_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_999_bytes_total counter +# UNIT counter_double_999_bytes_total bytes +counter_double_999_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_99_bytes_total counter +# UNIT counter_double_99_bytes_total bytes +counter_double_99_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# TYPE counter_double_9_bytes_total counter +# UNIT counter_double_9_bytes_total bytes +counter_double_9_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1"} 1 +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithCustomScrapeEndpointPath.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithCustomScrapeEndpointPath.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithCustomScrapeEndpointPath.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithDefaultOptions.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithDefaultOptions.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithDefaultOptions.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithHttpContextPredicate.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithHttpContextPredicate.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithHttpContextPredicate.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpoint.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpoint.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpoint.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithMeterProvider.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithMeterProvider.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithMeterProvider.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithPathNamedOptionsOverride.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithPathNamedOptionsOverride.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithPathNamedOptionsOverride.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithPathOverride.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithPathOverride.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMapPrometheusScrapingEndpointWithPathOverride.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMeterProvider.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMeterProvider.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMeterProvider.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMixedPath.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMixedPath.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMixedPath.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMixedPredicateAndPath.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMixedPredicateAndPath.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithMixedPredicateAndPath.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithNoMetrics.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithNoMetrics.verified.text new file mode 100644 index 00000000000..e45098979b1 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithNoMetrics.verified.text @@ -0,0 +1,4 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithOpenMetricsVersionHeader.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithOpenMetricsVersionHeader.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithOpenMetricsVersionHeader.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithOpenMetricsVersionHeaderAndMeterTags.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithOpenMetricsVersionHeaderAndMeterTags.verified.text new file mode 100644 index 00000000000..086473dd36b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithOpenMetricsVersionHeaderAndMeterTags.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",otel_scope_meterKey1="value1",otel_scope_meterKey2="value2",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",otel_scope_meterKey1="value1",otel_scope_meterKey2="value2",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithPathNamedOptionsOverride.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithPathNamedOptionsOverride.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithPathNamedOptionsOverride.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathFallback.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathFallback.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathFallback.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathFallbackFromAddPrometheusExporter.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathFallbackFromAddPrometheusExporter.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathFallbackFromAddPrometheusExporter.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathOverride.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathOverride.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScrapeEndpointPathOverride.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTextPlainResponse.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTextPlainResponse.verified.text new file mode 100644 index 00000000000..6a6864e3f7b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTextPlainResponse.verified.text @@ -0,0 +1,7 @@ +# TYPE target_info gauge +# HELP target_info Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes_total counter +# UNIT counter_double_bytes_total bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTextPlainResponseAndMeterTags.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTextPlainResponseAndMeterTags.verified.text new file mode 100644 index 00000000000..c50eab67c5a --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTextPlainResponseAndMeterTags.verified.text @@ -0,0 +1,7 @@ +# TYPE target_info gauge +# HELP target_info Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes_total counter +# UNIT counter_double_bytes_total bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",otel_scope_meterKey1="value1",otel_scope_meterKey2="value2",key1="value1",key2="value2"} 101.17 +# EOF From a70aa657c07df6328687217dd05a6b6ffbc2a1ab Mon Sep 17 00:00:00 2001 From: martincostello Date: Sat, 20 Jun 2026 16:37:18 +0100 Subject: [PATCH 2/7] [Exporter.Prometheus] Add ScopeInfoEnabled option Add new `ScopeInfoEnabled` option that allows a user to opt-out of scope information being written to the scrape response. Fixes #5725. Fixes #7157. --- .../.publicApi/PublicAPI.Unshipped.txt | 2 + .../CHANGELOG.md | 4 ++ .../PrometheusAspNetCoreOptions.cs | 10 ++++ .../README.md | 6 ++ .../.publicApi/PublicAPI.Unshipped.txt | 2 + .../CHANGELOG.md | 4 ++ .../Shared/PrometheusCollectionManager.cs | 6 +- .../Internal/Shared/PrometheusExporter.cs | 3 + .../Shared/PrometheusExporterOptions.cs | 7 +++ .../Serialization/OpenMetricsSerializer.cs | 24 ++++++-- .../Serialization/PrometheusTextSerializer.cs | 4 +- .../Serialization/TextFormatSerializer.cs | 51 +++++++++++++---- .../TextFormatSerializerOptions.cs | 24 ++++++++ ...pListenerMeterProviderBuilderExtensions.cs | 1 + .../PrometheusHttpListenerOptions.cs | 6 ++ .../README.md | 7 +++ .../PrometheusExporterMiddlewareTests.cs | 53 ++++++++++++------ .../PrometheusHttpListenerTests.cs | 55 +++++++++++++------ .../PrometheusSerializerTests.cs | 48 ++++++++++++++-- ...gured_scopeInfoEnabled=False.verified.text | 8 +++ ...igured_scopeInfoEnabled=True.verified.text | 8 +++ ...gured_scopeInfoEnabled=False.verified.text | 8 +++ ...igured_scopeInfoEnabled=True.verified.text | 8 +++ ...False_suppressScopeInfo=False.verified.txt | 3 + ...=False_suppressScopeInfo=True.verified.txt | 3 + ...=True_suppressScopeInfo=False.verified.txt | 5 ++ ...s=True_suppressScopeInfo=True.verified.txt | 5 ++ 27 files changed, 308 insertions(+), 57 deletions(-) create mode 100644 src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializerOptions.cs create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=False.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScopeInfoEnabledConfigured_scopeInfoEnabled=False.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=False_suppressScopeInfo=False.verified.txt create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=False_suppressScopeInfo=True.verified.txt create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=True_suppressScopeInfo=False.verified.txt create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=True_suppressScopeInfo=True.verified.txt diff --git a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/.publicApi/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/.publicApi/PublicAPI.Unshipped.txt index 92eaa1e4111..aa2ab8c9072 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/.publicApi/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/.publicApi/PublicAPI.Unshipped.txt @@ -4,6 +4,8 @@ OpenTelemetry.Exporter.PrometheusAspNetCoreOptions OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.DisableTotalNameSuffixForCounters.get -> bool OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.DisableTotalNameSuffixForCounters.set -> void OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.PrometheusAspNetCoreOptions() -> void +OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.ScopeInfoEnabled.get -> bool +OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.ScopeInfoEnabled.set -> void OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.ScrapeEndpointPath.get -> string? OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.ScrapeEndpointPath.set -> void OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.ScrapeResponseCacheDurationMilliseconds.get -> int diff --git a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md index 41f67a4fbb3..46de1d574e1 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md @@ -10,6 +10,10 @@ Notes](../../RELEASENOTES.md). * Added a verbose-level diagnostic event for ignored metrics. ([#7429](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7429)) +* Add `PrometheusAspNetCoreOptions.ScopeInfoEnabled` property to enable or + disable scope labels in Prometheus metrics. Defaults to `true`. + ([#TODO](https://github.com/open-telemetry/opentelemetry-dotnet/pull/TODO)) + ## 1.16.0-beta.1 Released 2026-Jun-10 diff --git a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/PrometheusAspNetCoreOptions.cs b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/PrometheusAspNetCoreOptions.cs index ed8186ec88d..a37667296ad 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/PrometheusAspNetCoreOptions.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/PrometheusAspNetCoreOptions.cs @@ -26,6 +26,16 @@ public bool DisableTotalNameSuffixForCounters set => this.ExporterOptions.DisableTotalNameSuffixForCounters = value; } + /// + /// Gets or sets a value indicating whether the scope information (name, version, schema URL) is added to the scrape response. + /// Default value: . + /// + public bool ScopeInfoEnabled + { + get => this.ExporterOptions.ScopeInfoEnabled; + set => this.ExporterOptions.ScopeInfoEnabled = value; + } + /// /// Gets or sets the cache duration in milliseconds for scrape responses. Default value: 300. /// diff --git a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/README.md b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/README.md index d9c77f5244f..ee09aa1dbf0 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/README.md +++ b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/README.md @@ -124,6 +124,12 @@ to expose the scraping endpoint on a different port. The `PrometheusExporter` can be configured using the `PrometheusAspNetCoreOptions` properties. +### ScopeInfoEnabled + +Specifies whether metrics include +[scope labels](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/prometheus_and_openmetrics.md#instrumentation-scope-1). +Default value: `true`. Set to `false` to disable scope labels. + ### ScrapeEndpointPath Defines the path for the Prometheus scrape endpoint for the middleware diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/.publicApi/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/.publicApi/PublicAPI.Unshipped.txt index 73529783ff4..aa06270963f 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/.publicApi/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/.publicApi/PublicAPI.Unshipped.txt @@ -5,6 +5,8 @@ OpenTelemetry.Exporter.PrometheusHttpListenerOptions.Port.get -> int OpenTelemetry.Exporter.PrometheusHttpListenerOptions.Port.set -> void OpenTelemetry.Exporter.PrometheusHttpListenerOptions.DisableTotalNameSuffixForCounters.get -> bool OpenTelemetry.Exporter.PrometheusHttpListenerOptions.DisableTotalNameSuffixForCounters.set -> void +OpenTelemetry.Exporter.PrometheusHttpListenerOptions.ScopeInfoEnabled.get -> bool +OpenTelemetry.Exporter.PrometheusHttpListenerOptions.ScopeInfoEnabled.set -> void OpenTelemetry.Exporter.PrometheusHttpListenerOptions.UriPrefixes.get -> System.Collections.Generic.IReadOnlyCollection! OpenTelemetry.Exporter.PrometheusHttpListenerOptions.UriPrefixes.set -> void OpenTelemetry.Exporter.PrometheusHttpListenerOptions.PrometheusHttpListenerOptions() -> void diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md index 329adb63a1d..8f0a76cbcc7 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md @@ -10,6 +10,10 @@ Notes](../../RELEASENOTES.md). * Added a verbose-level diagnostic event for ignored metrics. ([#7429](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7429)) +* Add `PrometheusHttpListenerOptions.ScopeInfoEnabled` property to enable or + disable scope labels in Prometheus metrics. Defaults to `true`. + ([#TODO](https://github.com/open-telemetry/opentelemetry-dotnet/pull/TODO)) + ## 1.16.0-beta.1 Released 2026-Jun-10 diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusCollectionManager.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusCollectionManager.cs index 549d1e084ba..92da6f6eceb 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusCollectionManager.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusCollectionManager.cs @@ -16,6 +16,7 @@ internal sealed class PrometheusCollectionManager private readonly ConcurrentDictionary protocolStates = new(); private readonly PrometheusExporter exporter; + private readonly bool scopeInfoEnabled; private readonly TimeSpan scrapeResponseCacheDuration; private readonly long baseTimestamp = Stopwatch.GetTimestamp(); private readonly PrometheusExporter.ExportFunc onCollectRef; @@ -29,6 +30,7 @@ internal sealed class PrometheusCollectionManager public PrometheusCollectionManager(PrometheusExporter exporter) { this.exporter = exporter; + this.scopeInfoEnabled = this.exporter.ScopeInfoEnabled; this.scrapeResponseCacheDuration = TimeSpan.FromMilliseconds(this.exporter.ScrapeResponseCacheDurationMilliseconds); this.onCollectRef = this.OnCollect; this.metricsCache = []; @@ -353,6 +355,7 @@ private bool TryWriteResponse(PrometheusProtocol protocol, PrometheusProtocolSta var cursor = this.WriteTargetInfo(serializer, state); var metricStates = this.GetMetricStates(serializer, metrics); + var options = new TextFormatSerializerOptions(suppressScopeInfo: !this.scopeInfoEnabled); foreach (var metricState in metricStates) { @@ -369,7 +372,8 @@ private bool TryWriteResponse(PrometheusProtocol protocol, PrometheusProtocolSta metricState.WriteUnit, metricState.WriteHelp, metricState.Unit, - metricState.Help); + metricState.Help, + options); break; } diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporter.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporter.cs index 1b274f761ab..79a584dbfad 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporter.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporter.cs @@ -23,6 +23,7 @@ public PrometheusExporter(PrometheusExporterOptions options) { Guard.ThrowIfNull(options); + this.ScopeInfoEnabled = options.ScopeInfoEnabled; this.ScrapeResponseCacheDurationMilliseconds = options.ScrapeResponseCacheDurationMilliseconds; this.DisableTotalNameSuffixForCounters = options.DisableTotalNameSuffixForCounters; @@ -42,6 +43,8 @@ public PrometheusExporter(PrometheusExporterOptions options) internal PrometheusCollectionManager CollectionManager { get; } + internal bool ScopeInfoEnabled { get; } + internal int ScrapeResponseCacheDurationMilliseconds { get; } internal bool DisableTotalNameSuffixForCounters { get; } diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporterOptions.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporterOptions.cs index 7b0a24d8ecd..e6eb884ac83 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporterOptions.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporterOptions.cs @@ -12,9 +12,16 @@ internal sealed class PrometheusExporterOptions { public PrometheusExporterOptions() { + this.ScopeInfoEnabled = true; this.ScrapeResponseCacheDurationMilliseconds = 300; } + /// + /// Gets or sets a value indicating whether the scope information (name, version, schema URL) is added to the scrape response. + /// Default value: . + /// + public bool ScopeInfoEnabled { get; set; } + /// /// Gets or sets the cache duration in milliseconds for scrape responses. Default value: 300. /// diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/OpenMetricsSerializer.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/OpenMetricsSerializer.cs index 5a4df88b91c..ed9adb03cca 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/OpenMetricsSerializer.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/OpenMetricsSerializer.cs @@ -52,7 +52,12 @@ protected override int WriteExplicitBound(byte[] buffer, int cursor, double expl protected override bool ShouldWriteSumAndCount(bool hasNegativeBucketBounds) => !hasNegativeBucketBounds; - protected override int WriteCounterExemplar(byte[] buffer, int cursor, in MetricPoint metricPoint, PrometheusMetric prometheusMetric, bool isLongValue) + protected override int WriteCounterExemplar( + byte[] buffer, + int cursor, + in MetricPoint metricPoint, + PrometheusMetric prometheusMetric, + bool isLongValue) { if (prometheusMetric.Type == PrometheusType.Counter && TryGetLatestExemplar(metricPoint, out var exemplar)) @@ -63,11 +68,17 @@ protected override int WriteCounterExemplar(byte[] buffer, int cursor, in Metric return cursor; } - protected override int WriteCounterCreated(byte[] buffer, int cursor, Metric metric, PrometheusMetric prometheusMetric, in MetricPoint metricPoint) + protected override int WriteCounterCreated( + byte[] buffer, + int cursor, + Metric metric, + PrometheusMetric prometheusMetric, + in MetricPoint metricPoint, + in TextFormatSerializerOptions options) { if (prometheusMetric.Type == PrometheusType.Counter) { - cursor = this.WriteCreatedMetric(buffer, cursor, metric, prometheusMetric, metricPoint); + cursor = this.WriteCreatedMetric(buffer, cursor, metric, prometheusMetric, metricPoint, options); } return cursor; @@ -83,8 +94,8 @@ protected override int WriteHistogramBucketExemplar(byte[] buffer, int cursor, i return cursor; } - protected override int WriteHistogramCreated(byte[] buffer, int cursor, Metric metric, PrometheusMetric prometheusMetric, in MetricPoint metricPoint) - => this.WriteCreatedMetric(buffer, cursor, metric, prometheusMetric, metricPoint, ReservedHistogramLabelNames); + protected override int WriteHistogramCreated(byte[] buffer, int cursor, Metric metric, PrometheusMetric prometheusMetric, in MetricPoint metricPoint, in TextFormatSerializerOptions options) + => this.WriteCreatedMetric(buffer, cursor, metric, prometheusMetric, metricPoint, options, ReservedHistogramLabelNames); private static bool TryGetLatestExemplar(in MetricPoint metricPoint, out Exemplar exemplar) { @@ -150,12 +161,13 @@ private int WriteCreatedMetric( Metric metric, PrometheusMetric prometheusMetric, in MetricPoint metricPoint, + in TextFormatSerializerOptions options, IReadOnlyCollection? reservedOutputKeys = null) { cursor = this.WriteMetricMetadataName(buffer, cursor, prometheusMetric); cursor = WriteAsciiStringNoEscape(buffer, cursor, "_created"); - cursor = WriteTags(buffer, cursor, metric, metricPoint.Tags, reservedOutputKeys: reservedOutputKeys); + cursor = WriteTags(buffer, cursor, metric, metricPoint.Tags, options, reservedOutputKeys: reservedOutputKeys); buffer[cursor++] = unchecked((byte)' '); diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/PrometheusTextSerializer.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/PrometheusTextSerializer.cs index 809eb7f4fa4..0c6dba78ae3 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/PrometheusTextSerializer.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/PrometheusTextSerializer.cs @@ -38,12 +38,12 @@ protected override bool ShouldWriteSumAndCount(bool hasNegativeBucketBounds) protected override int WriteCounterExemplar(byte[] buffer, int cursor, in MetricPoint metricPoint, PrometheusMetric prometheusMetric, bool isLongValue) => cursor; - protected override int WriteCounterCreated(byte[] buffer, int cursor, Metric metric, PrometheusMetric prometheusMetric, in MetricPoint metricPoint) + protected override int WriteCounterCreated(byte[] buffer, int cursor, Metric metric, PrometheusMetric prometheusMetric, in MetricPoint metricPoint, in TextFormatSerializerOptions options) => cursor; protected override int WriteHistogramBucketExemplar(byte[] buffer, int cursor, in MetricPoint metricPoint, double lowerBoundExclusive, double upperBoundInclusive) => cursor; - protected override int WriteHistogramCreated(byte[] buffer, int cursor, Metric metric, PrometheusMetric prometheusMetric, in MetricPoint metricPoint) + protected override int WriteHistogramCreated(byte[] buffer, int cursor, Metric metric, PrometheusMetric prometheusMetric, in MetricPoint metricPoint, in TextFormatSerializerOptions options) => cursor; } diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializer.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializer.cs index e53e59b62c1..7f665b82557 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializer.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializer.cs @@ -143,7 +143,8 @@ public int WriteMetric( bool writeUnit, bool writeHelp, string? unitOverride, - string? helpOverride) + string? helpOverride, + in TextFormatSerializerOptions options = default) { if (writeType) { @@ -168,7 +169,7 @@ public int WriteMetric( { // Counter and Gauge cursor = this.WriteMetricName(buffer, cursor, prometheusMetric); - cursor = WriteTags(buffer, cursor, metric, metricPoint.Tags); + cursor = WriteTags(buffer, cursor, metric, metricPoint.Tags, options); buffer[cursor++] = unchecked((byte)' '); @@ -189,7 +190,7 @@ public int WriteMetric( buffer[cursor++] = AsciiLineFeed; - cursor = this.WriteCounterCreated(buffer, cursor, metric, prometheusMetric, in metricPoint); + cursor = this.WriteCounterCreated(buffer, cursor, metric, prometheusMetric, in metricPoint, in options); } } else @@ -197,7 +198,7 @@ public int WriteMetric( foreach (ref readonly var metricPoint in metric.GetMetricPoints()) { var tags = metricPoint.Tags; - var serializedTags = SerializeTags(metric, tags, ReservedHistogramLabelNames); + var serializedTags = SerializeTags(metric, tags, options, ReservedHistogramLabelNames); var hasNegativeBucketBounds = false; var previousBound = double.NegativeInfinity; @@ -259,7 +260,7 @@ public int WriteMetric( buffer[cursor++] = AsciiLineFeed; } - cursor = this.WriteHistogramCreated(buffer, cursor, metric, prometheusMetric, in metricPoint); + cursor = this.WriteHistogramCreated(buffer, cursor, metric, prometheusMetric, in metricPoint, in options); } } @@ -575,6 +576,7 @@ internal static int WriteTags( int cursor, Metric metric, ReadOnlyTagCollection tags, + in TextFormatSerializerOptions options, bool writeEnclosingBraces = true, IReadOnlyCollection? reservedOutputKeys = null) { @@ -587,7 +589,10 @@ internal static int WriteTags( buffer[cursor++] = unchecked((byte)'{'); } - WriteScopeLabels(); + if (!options.SuppressScopeInfo) + { + WriteScopeLabels(); + } if (TryWritePointTags()) { @@ -683,6 +688,7 @@ internal static int WriteUnixTimeSeconds(byte[] buffer, int cursor, DateTimeOffs internal static byte[] SerializeTags( Metric metric, ReadOnlyTagCollection tags, + in TextFormatSerializerOptions options, IReadOnlyCollection? reservedOutputKeys = null) { var buffer = new byte[128]; @@ -696,6 +702,7 @@ internal static byte[] SerializeTags( 0, metric, tags, + options, writeEnclosingBraces: false, reservedOutputKeys: reservedOutputKeys); @@ -873,7 +880,12 @@ internal int WriteUnitMetadata(byte[] buffer, int cursor, PrometheusMetric metri /// The Prometheus metric. /// Indicates whether the value is a long. /// The new cursor position after writing. - protected abstract int WriteCounterExemplar(byte[] buffer, int cursor, in MetricPoint metricPoint, PrometheusMetric prometheusMetric, bool isLongValue); + protected abstract int WriteCounterExemplar( + byte[] buffer, + int cursor, + in MetricPoint metricPoint, + PrometheusMetric prometheusMetric, + bool isLongValue); /// /// Writes the _created series (if any) that follows a counter sample. @@ -883,8 +895,15 @@ internal int WriteUnitMetadata(byte[] buffer, int cursor, PrometheusMetric metri /// The metric. /// The Prometheus metric. /// The metric point. + /// The serializer options. /// The new cursor position after writing. - protected abstract int WriteCounterCreated(byte[] buffer, int cursor, Metric metric, PrometheusMetric prometheusMetric, in MetricPoint metricPoint); + protected abstract int WriteCounterCreated( + byte[] buffer, + int cursor, + Metric metric, + PrometheusMetric prometheusMetric, + in MetricPoint metricPoint, + in TextFormatSerializerOptions options); /// /// Writes the exemplar (if any) that follows a histogram bucket sample value. @@ -895,7 +914,12 @@ internal int WriteUnitMetadata(byte[] buffer, int cursor, PrometheusMetric metri /// The exclusive lower bound of the histogram bucket. /// The inclusive upper bound of the histogram bucket. /// The new cursor position after writing. - protected abstract int WriteHistogramBucketExemplar(byte[] buffer, int cursor, in MetricPoint metricPoint, double lowerBoundExclusive, double upperBoundInclusive); + protected abstract int WriteHistogramBucketExemplar( + byte[] buffer, + int cursor, + in MetricPoint metricPoint, + double lowerBoundExclusive, + double upperBoundInclusive); /// /// Determines whether the histogram _sum and _count series should be written. @@ -914,8 +938,15 @@ internal int WriteUnitMetadata(byte[] buffer, int cursor, PrometheusMetric metri /// The metric. /// The Prometheus metric. /// The metric point. + /// The serializer options. /// The new cursor position after writing. - protected abstract int WriteHistogramCreated(byte[] buffer, int cursor, Metric metric, PrometheusMetric prometheusMetric, in MetricPoint metricPoint); + protected abstract int WriteHistogramCreated( + byte[] buffer, + int cursor, + Metric metric, + PrometheusMetric prometheusMetric, + in MetricPoint metricPoint, + in TextFormatSerializerOptions options); private static string GetLabelValueString(object? labelValue) => labelValue switch { diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializerOptions.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializerOptions.cs new file mode 100644 index 00000000000..fe9aaf06372 --- /dev/null +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializerOptions.cs @@ -0,0 +1,24 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +namespace OpenTelemetry.Exporter.Prometheus.Serialization; + +/// +/// Options for . +/// +internal readonly struct TextFormatSerializerOptions +{ + /// + /// A value indicating whether the scope information (name, version, schema URL) is suppressed from the scrape response. + /// + public readonly bool SuppressScopeInfo; // Inverted so the default struct is the default value (false = included). + + /// + /// Initializes a new instance of the struct. + /// + /// Whether the scope information is suppressed from the scrape response. + public TextFormatSerializerOptions(bool suppressScopeInfo) + { + this.SuppressScopeInfo = suppressScopeInfo; + } +} diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerMeterProviderBuilderExtensions.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerMeterProviderBuilderExtensions.cs index ceb632a275b..a480a6697e2 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerMeterProviderBuilderExtensions.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerMeterProviderBuilderExtensions.cs @@ -67,6 +67,7 @@ private static BaseExportingMetricReader BuildPrometheusHttpListenerMetricReader { var exporter = new PrometheusExporter(new PrometheusExporterOptions { + ScopeInfoEnabled = options.ScopeInfoEnabled, ScrapeResponseCacheDurationMilliseconds = options.ScrapeResponseCacheDurationMilliseconds, DisableTotalNameSuffixForCounters = options.DisableTotalNameSuffixForCounters, }); diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerOptions.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerOptions.cs index 5eac8ecdc65..496368e59d7 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerOptions.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerOptions.cs @@ -71,6 +71,12 @@ internal PrometheusHttpListenerOptions(IConfiguration configuration) /// public bool DisableTotalNameSuffixForCounters { get; set; } + /// + /// Gets or sets a value indicating whether the scope information (name, version, schema URL) is added to the scrape response. + /// Default value: . + /// + public bool ScopeInfoEnabled { get; set; } = true; + /// /// Gets or sets the cache duration in milliseconds for scrape responses. Default value: 300. /// diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/README.md b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/README.md index acd818def7c..b3f546ccc83 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/README.md +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/README.md @@ -60,6 +60,7 @@ variables. * `Host`: The host used by the Prometheus exporter (default `localhost`). * `Port`: The port used by the Prometheus exporter (default `9464`). +* `ScopeInfoEnabled`: Whether to include scope labels in metrics (default `true`). * `ScrapeEndpointPath`: Defines the Prometheus scrape endpoint path. (default `"/metrics"`). * `DisableTotalNameSuffixForCounters`: Whether to disable the `_total` suffix for @@ -95,6 +96,12 @@ values of the `PrometheusHttpListenerOptions`. | `OTEL_EXPORTER_PROMETHEUS_HOST` | `Host` | | `OTEL_EXPORTER_PROMETHEUS_PORT` | `Port` | +### ScopeInfoEnabled + +Specifies whether metrics include +[scope labels](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/prometheus_and_openmetrics.md#instrumentation-scope-1). +Default value: `true`. Set to `false` to disable scope labels. + ### ScrapeResponseCacheDurationMilliseconds Configures scrape endpoint response caching. Multiple scrape requests within the diff --git a/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs b/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs index 42b33bf7949..5401d0cca69 100644 --- a/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs +++ b/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs @@ -34,6 +34,20 @@ public async Task RunWithDefaultOptions() await Verify(output, "text", PrometheusSerializerTests.VerifySettings); } + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task RunWithScopeInfoEnabledConfigured(bool scopeInfoEnabled) + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( + "/metrics", + app => app.UseOpenTelemetryPrometheusScrapingEndpoint(), + services => services.Configure(o => o.ScopeInfoEnabled = scopeInfoEnabled), + assertResponseContent: false); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings).UseParameters(scopeInfoEnabled); + } + [Fact] public async Task RunWithCustomScrapeEndpointPath() { @@ -562,7 +576,8 @@ private static async Task RunPrometheusExporterMiddlewareIntegrationTest bool skipMetrics = false, string acceptHeader = "application/openmetrics-text", string? contentType = null, - KeyValuePair[]? meterTags = null) + KeyValuePair[]? meterTags = null, + bool assertResponseContent = true) { var requestOpenMetrics = acceptHeader.StartsWith("application/openmetrics-text", StringComparison.Ordinal); @@ -607,7 +622,8 @@ private static async Task RunPrometheusExporterMiddlewareIntegrationTest response, requestOpenMetrics, meterTags, - contentType); + contentType, + assertResponseContent); } else { @@ -625,7 +641,8 @@ private static async Task VerifyResponseAsync( HttpResponseMessage response, bool requestOpenMetrics, KeyValuePair[]? meterTags, - string? contentType) + string? contentType, + bool assertResponseContent = true) { Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.True(response.Content.Headers.Contains("Last-Modified")); @@ -638,18 +655,21 @@ private static async Task VerifyResponseAsync( Assert.Equal(contentType, response.Content.Headers.ContentType!.ToString()); Assert.Equal(["Accept-Encoding"], response.Headers.Vary); - var additionalTags = meterTags is { Length: > 0 } - ? $"{string.Join(",", meterTags.Select(x => $"otel_scope_{x.Key}=\"{x.Value}\""))}," - : string.Empty; - var createdMetricSample = requestOpenMetrics - ? $"counter_double_bytes_created{{otel_scope_name=\"{MeterName}\",otel_scope_version=\"{MeterVersion}\",{additionalTags}key1=\"value1\",key2=\"value2\"}} [0-9]+(?:\\.[0-9]+)?" - : string.Empty; - var content = (await response.Content.ReadAsStringAsync()).ReplaceLineEndings(); - var normalizedContent = content.ReplaceLineEndings(); - var expected = requestOpenMetrics - ? $$""" + if (assertResponseContent) + { + var additionalTags = meterTags is { Length: > 0 } + ? $"{string.Join(",", meterTags.Select(x => $"otel_scope_{x.Key}=\"{x.Value}\""))}," + : string.Empty; + var createdMetricSample = requestOpenMetrics + ? $"counter_double_bytes_created{{otel_scope_name=\"{MeterName}\",otel_scope_version=\"{MeterVersion}\",{additionalTags}key1=\"value1\",key2=\"value2\"}} [0-9]+(?:\\.[0-9]+)?" + : string.Empty; + + var normalizedContent = content.ReplaceLineEndings(); + + var expected = requestOpenMetrics + ? $$""" # TYPE target info # HELP target Target metadata target_info{service_name="my_service",service_instance_id="id1"} 1 @@ -660,7 +680,7 @@ private static async Task VerifyResponseAsync( # EOF """.ReplaceLineEndings() - : $$""" + : $$""" # TYPE target_info gauge # HELP target_info Target metadata target_info{service_name="my_service",service_instance_id="id1"} 1 @@ -671,9 +691,10 @@ private static async Task VerifyResponseAsync( """.ReplaceLineEndings(); - var matches = Regex.Matches(normalizedContent, "^" + expected + "$"); + var matches = Regex.Matches(normalizedContent, "^" + expected + "$"); - Assert.True(matches.Count == 1, normalizedContent); + Assert.True(matches.Count == 1, normalizedContent); + } return content; } diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs index 4aacc93bc3d..90e7eb0d818 100644 --- a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs @@ -56,25 +56,41 @@ public void UriPrefixesInvalid() => Assert.Throws(() => TestPrometheusHttpListenerUriPrefixOptions(["ftp://example.com"])); [Fact] - public async Task PrometheusExporterHttpServerIntegration() + public async Task RunHttpServerWithDefaultOptions() => await RunPrometheusExporterHttpServerIntegrationTest(); + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task RunHttpServerWithScopeInfoEnabledConfigured(bool scopeInfoEnabled) + { + var output = await RunPrometheusExporterHttpServerIntegrationTest( + configureListener: (options) => + { + options.ScopeInfoEnabled = scopeInfoEnabled; + return options.Port; + }, + assertResponseContent: false); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings).UseParameters(scopeInfoEnabled); + } + [Fact] - public async Task PrometheusExporterHttpServerIntegration_NoMetrics() + public async Task RunHttpServerWithNoMetrics() => await RunPrometheusExporterHttpServerIntegrationTest(skipMetrics: true); [Fact] - public async Task PrometheusExporterHttpServerIntegration_NoOpenMetrics() + public async Task RunHttpServerWithNoAcceptHeader() => await RunPrometheusExporterHttpServerIntegrationTest(acceptHeader: string.Empty); [Fact] - public async Task PrometheusExporterHttpServerIntegration_UseOpenMetricsVersionHeader() + public async Task RunHttpServerWithOpenMetricsVersionHeader() => await RunPrometheusExporterHttpServerIntegrationTest( acceptHeader: "application/openmetrics-text; version=1.0.0", contentType: "application/openmetrics-text; version=1.0.0; charset=utf-8; escaping=underscores"); [Fact] - public async Task PrometheusExporterHttpServerIntegration_NoOpenMetrics_WithMeterTags() + public async Task RunHttpServerWithNoAcceptHeaderAndMeterTags() { var tags = new KeyValuePair[] { @@ -88,7 +104,7 @@ await RunPrometheusExporterHttpServerIntegrationTest( } [Fact] - public async Task PrometheusExporterHttpServerIntegration_OpenMetrics_WithMeterTags() + public async Task RunHttpServerWithOpenMetricsVersionHeaderAndMeterTags() { var tags = new KeyValuePair[] { @@ -103,7 +119,7 @@ await RunPrometheusExporterHttpServerIntegrationTest( } [Fact] - public void PrometheusHttpListenerThrowsOnStart() + public void PrometheusHttpListenerThrowsOnStartifPortAlreadyInUse() { // Step 1: Start a listener on a random port. using var context = CreateListener(); @@ -124,7 +140,7 @@ public void PrometheusHttpListenerThrowsOnStart() [Theory] [InlineData("application/openmetrics-text")] [InlineData("")] - public async Task PrometheusExporterHttpServerIntegration_TestBufferSizeIncrease_With_LargePayload(string acceptHeader) + public async Task RunHttpServerBufferSizeIncreasesWithLargePayload(string acceptHeader) { using var meter = new Meter(MeterName, MeterVersion); @@ -144,6 +160,8 @@ public async Task PrometheusExporterHttpServerIntegration_TestBufferSizeIncrease counter.Add(1); } + context.Provider.ForceFlush(); + using var client = new HttpClient { BaseAddress = context.BaseAddress, @@ -369,14 +387,14 @@ public void Port_DefaultValue_Is_9464() => Assert.Equal(9464, new PrometheusHttpListenerOptions().Port); [Fact] - public void PrometheusHttpListenerDisposeImmediatelyAfterStartDoesNotThrow() + public void DisposeImmediatelyAfterStartDoesNotThrow() { using var context = CreateListener(); context.Listener.Dispose(); } [Fact] - public void PrometheusHttpListenerDisposeAfterStartWithCanceledTokenDoesNotThrow() + public void DisposeAfterStartWithCanceledTokenDoesNotThrow() { using var cancellationTokenSource = new CancellationTokenSource(); cancellationTokenSource.Cancel(); @@ -386,7 +404,7 @@ public void PrometheusHttpListenerDisposeAfterStartWithCanceledTokenDoesNotThrow } [Fact] - public async Task PrometheusHttpListenerHandlesConcurrentScrapes() + public async Task HttpListenerHandlesConcurrentScrapes() { var timeout = TimeSpan.FromSeconds(5); @@ -559,17 +577,19 @@ internal static MeterProviderTestContext CreateMeterProvider( throw new InvalidOperationException($"{nameof(MeterProvider)} could not be created within {maximumAttempts} attempts."); } - private static async Task RunPrometheusExporterHttpServerIntegrationTest( + private static async Task RunPrometheusExporterHttpServerIntegrationTest( bool skipMetrics = false, string acceptHeader = "application/openmetrics-text", string? contentType = null, - KeyValuePair[]? meterTags = null) + KeyValuePair[]? meterTags = null, + bool assertResponseContent = true, + Func? configureListener = null) { var requestOpenMetrics = acceptHeader.StartsWith("application/openmetrics-text", StringComparison.Ordinal); using var meter = new Meter(MeterName, MeterVersion, meterTags); - using var context = CreateMeterProvider(meter); + using var context = CreateMeterProvider(meter, configureListener); var counterTags = new KeyValuePair[] { @@ -595,8 +615,9 @@ private static async Task RunPrometheusExporterHttpServerIntegrationTest( } using var response = await client.GetAsync(new Uri("metrics", UriKind.Relative)); + var content = await response.Content.ReadAsStringAsync(); - if (!skipMetrics) + if (!skipMetrics && assertResponseContent) { Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.True(response.Content.Headers.Contains("Last-Modified")); @@ -617,8 +638,6 @@ private static async Task RunPrometheusExporterHttpServerIntegrationTest( ? $"counter_double_bytes_created{{otel_scope_name='{MeterName}',otel_scope_version='{MeterVersion}',{additionalTags}key1='value1',key2='value2'}} [0-9]+(?:\\.[0-9]+)?\n" : string.Empty; - var content = await response.Content.ReadAsStringAsync(); - var expected = requestOpenMetrics ? "# TYPE target info\n" + "# HELP target Target metadata\n" @@ -642,6 +661,8 @@ private static async Task RunPrometheusExporterHttpServerIntegrationTest( { Assert.Equal(HttpStatusCode.OK, response.StatusCode); } + + return content; } private static int GetRandomPort() diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusSerializerTests.cs b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusSerializerTests.cs index 0331f810a89..668fa8f30db 100644 --- a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusSerializerTests.cs +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusSerializerTests.cs @@ -1295,6 +1295,38 @@ public void WriteMetricSerializesCollidingStaticMeterTagValuesUsingInvariantForm } } + [Theory] + [InlineData(false, false)] + [InlineData(false, true)] + [InlineData(true, false)] + [InlineData(true, true)] + public async Task WriteMetricSupportsScopeInfoEnabledOptionForCounters(bool useOpenMetrics, bool suppressScopeInfo) + { + var buffer = new byte[85000]; + var metrics = new List(); + + using var meter = new Meter("test_meter"); + using var provider = Sdk.CreateMeterProviderBuilder() + .AddMeter(meter.Name) + .AddInMemoryExporter(metrics) + .Build(); + + var counter = meter.CreateCounter("test_counter"); + counter.Add(1, [new("key", "value1")]); + counter.Add(2, [new("key", "value2")]); + + var histogram = meter.CreateHistogram("test_histogram"); + histogram.Record(1, [new("key", "value1")]); + histogram.Record(2, [new("key", "value2")]); + + provider.ForceFlush(); + + var cursor = WriteMetric(buffer, 0, metrics[0], useOpenMetrics, suppressScopeInfo); + var output = Encoding.UTF8.GetString(buffer, 0, cursor); + + await Verify(output, "txt", VerifySettings).UseParameters(useOpenMetrics, suppressScopeInfo); + } + [Fact] public void WriteLabelFormatsTypedValues() { @@ -1755,18 +1787,24 @@ static char GetHexValue(int value) } } - private static int WriteMetric(byte[] buffer, int cursor, Metric metric, bool useOpenMetrics) => - (useOpenMetrics ? (TextFormatSerializer)TextFormatSerializer.OpenMetricsV1 : TextFormatSerializer.PrometheusV1) - .WriteMetric( + private static int WriteMetric(byte[] buffer, int cursor, Metric metric, bool useOpenMetrics, bool suppressScopeInfo = false) + { + TextFormatSerializer serializer = useOpenMetrics ? TextFormatSerializer.OpenMetricsV1 : TextFormatSerializer.PrometheusV1; + var prometheusMetric = PrometheusMetric.Create(metric, disableTotalNameSuffixForCounters: false); + var options = new TextFormatSerializerOptions(suppressScopeInfo); + + return serializer.WriteMetric( buffer, cursor, metric, - PrometheusMetric.Create(metric, false), + prometheusMetric, writeType: true, writeUnit: true, writeHelp: true, unitOverride: null, - helpOverride: null); + helpOverride: null, + options); + } private static void WaitForNextExemplarTimestamp() { diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=False.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=False.verified.text new file mode 100644 index 00000000000..dfc715079d0 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=False.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text new file mode 100644 index 00000000000..cf358b8a2e0 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="OpenTelemetry.Exporter.Prometheus.Tests.PrometheusHttpListenerTests..cctor",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="OpenTelemetry.Exporter.Prometheus.Tests.PrometheusHttpListenerTests..cctor",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScopeInfoEnabledConfigured_scopeInfoEnabled=False.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScopeInfoEnabledConfigured_scopeInfoEnabled=False.verified.text new file mode 100644 index 00000000000..dfc715079d0 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScopeInfoEnabledConfigured_scopeInfoEnabled=False.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=False_suppressScopeInfo=False.verified.txt b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=False_suppressScopeInfo=False.verified.txt new file mode 100644 index 00000000000..02bb078c6cb --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=False_suppressScopeInfo=False.verified.txt @@ -0,0 +1,3 @@ +# TYPE test_counter_total counter +test_counter_total{otel_scope_name="test_meter",key="value1"} 1 +test_counter_total{otel_scope_name="test_meter",key="value2"} 2 diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=False_suppressScopeInfo=True.verified.txt b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=False_suppressScopeInfo=True.verified.txt new file mode 100644 index 00000000000..6d389cac2cb --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=False_suppressScopeInfo=True.verified.txt @@ -0,0 +1,3 @@ +# TYPE test_counter_total counter +test_counter_total{key="value1"} 1 +test_counter_total{key="value2"} 2 diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=True_suppressScopeInfo=False.verified.txt b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=True_suppressScopeInfo=False.verified.txt new file mode 100644 index 00000000000..85a01169334 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=True_suppressScopeInfo=False.verified.txt @@ -0,0 +1,5 @@ +# TYPE test_counter counter +test_counter_total{otel_scope_name="test_meter",key="value1"} 1 +test_counter_created{otel_scope_name="test_meter",key="value1"} +test_counter_total{otel_scope_name="test_meter",key="value2"} 2 +test_counter_created{otel_scope_name="test_meter",key="value2"} diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=True_suppressScopeInfo=True.verified.txt b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=True_suppressScopeInfo=True.verified.txt new file mode 100644 index 00000000000..c3b2a7e7d43 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSupportsScopeInfoEnabledOptionForCounters_useOpenMetrics=True_suppressScopeInfo=True.verified.txt @@ -0,0 +1,5 @@ +# TYPE test_counter counter +test_counter_total{key="value1"} 1 +test_counter_created{key="value1"} +test_counter_total{key="value2"} 2 +test_counter_created{key="value2"} From 8b404874c7a644be13a0796615f0dc8806035807 Mon Sep 17 00:00:00 2001 From: martincostello Date: Sat, 20 Jun 2026 16:43:41 +0100 Subject: [PATCH 3/7] [Prometheus.HttpListener] Improve tests Use snapshots and simplify metric name. --- .../PrometheusHttpListenerTests.cs | 40 ++++++++++++++----- ...HttpServerWithDefaultOptions.verified.text | 8 ++++ ...HttpServerWithNoAcceptHeader.verified.text | 7 ++++ ...thNoAcceptHeaderAndMeterTags.verified.text | 7 ++++ ...r.RunHttpServerWithNoMetrics.verified.text | 4 ++ ...WithOpenMetricsVersionHeader.verified.text | 8 ++++ ...icsVersionHeaderAndMeterTags.verified.text | 8 ++++ ...igured_scopeInfoEnabled=True.verified.text | 4 +- 8 files changed, 74 insertions(+), 12 deletions(-) create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithDefaultOptions.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoAcceptHeader.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoAcceptHeaderAndMeterTags.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoMetrics.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithOpenMetricsVersionHeader.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithOpenMetricsVersionHeaderAndMeterTags.verified.text diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs index 90e7eb0d818..11ba2e8015a 100644 --- a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs @@ -20,7 +20,7 @@ public class PrometheusHttpListenerTests private const string UriPrefixesObsoleteMessage = "Tests the obsolete UriPrefixes property."; - private static readonly string MeterName = Utils.GetCurrentMethodName(); + private const string MeterName = nameof(PrometheusHttpListenerTests); private static readonly ConcurrentDictionary ConsumedPorts = []; @@ -57,7 +57,11 @@ public void UriPrefixesInvalid() => [Fact] public async Task RunHttpServerWithDefaultOptions() - => await RunPrometheusExporterHttpServerIntegrationTest(); + { + var output = await RunPrometheusExporterHttpServerIntegrationTest(); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } [Theory] [InlineData(true)] @@ -77,18 +81,30 @@ public async Task RunHttpServerWithScopeInfoEnabledConfigured(bool scopeInfoEnab [Fact] public async Task RunHttpServerWithNoMetrics() - => await RunPrometheusExporterHttpServerIntegrationTest(skipMetrics: true); + { + var output = await RunPrometheusExporterHttpServerIntegrationTest(skipMetrics: true); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } [Fact] public async Task RunHttpServerWithNoAcceptHeader() - => await RunPrometheusExporterHttpServerIntegrationTest(acceptHeader: string.Empty); + { + var output = await RunPrometheusExporterHttpServerIntegrationTest(acceptHeader: string.Empty); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } [Fact] public async Task RunHttpServerWithOpenMetricsVersionHeader() - => await RunPrometheusExporterHttpServerIntegrationTest( + { + var output = await RunPrometheusExporterHttpServerIntegrationTest( acceptHeader: "application/openmetrics-text; version=1.0.0", contentType: "application/openmetrics-text; version=1.0.0; charset=utf-8; escaping=underscores"); + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); + } + [Fact] public async Task RunHttpServerWithNoAcceptHeaderAndMeterTags() { @@ -98,9 +114,11 @@ public async Task RunHttpServerWithNoAcceptHeaderAndMeterTags() new("meter2", "value2"), }; - await RunPrometheusExporterHttpServerIntegrationTest( + var output = await RunPrometheusExporterHttpServerIntegrationTest( acceptHeader: string.Empty, meterTags: tags); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); } [Fact] @@ -112,10 +130,12 @@ public async Task RunHttpServerWithOpenMetricsVersionHeaderAndMeterTags() new("meter2", "value2"), }; - await RunPrometheusExporterHttpServerIntegrationTest( + var output = await RunPrometheusExporterHttpServerIntegrationTest( acceptHeader: "application/openmetrics-text; version=1.0.0", contentType: "application/openmetrics-text; version=1.0.0; charset=utf-8; escaping=underscores", meterTags: tags); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings); } [Fact] @@ -176,10 +196,10 @@ public async Task RunHttpServerBufferSizeIncreasesWithLargePayload(string accept Assert.Equal(HttpStatusCode.OK, response.StatusCode); - var content = await response.Content.ReadAsStringAsync(); + var output = await response.Content.ReadAsStringAsync(); - Assert.Contains("counter_double_999", content, StringComparison.Ordinal); - Assert.DoesNotContain('\0', content); + Assert.Contains("counter_double_999", output, StringComparison.Ordinal); + Assert.DoesNotContain('\0', output); } [Fact] diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithDefaultOptions.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithDefaultOptions.verified.text new file mode 100644 index 00000000000..6dbc7342bc6 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithDefaultOptions.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoAcceptHeader.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoAcceptHeader.verified.text new file mode 100644 index 00000000000..b1c37ba9072 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoAcceptHeader.verified.text @@ -0,0 +1,7 @@ +# TYPE target_info gauge +# HELP target_info Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes_total counter +# UNIT counter_double_bytes_total bytes +counter_double_bytes_total{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoAcceptHeaderAndMeterTags.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoAcceptHeaderAndMeterTags.verified.text new file mode 100644 index 00000000000..0654b12c4cb --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoAcceptHeaderAndMeterTags.verified.text @@ -0,0 +1,7 @@ +# TYPE target_info gauge +# HELP target_info Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes_total counter +# UNIT counter_double_bytes_total bytes +counter_double_bytes_total{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",otel_scope_meter1="value1",otel_scope_meter2="value2",key1="value1",key2="value2"} 101.17 +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoMetrics.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoMetrics.verified.text new file mode 100644 index 00000000000..e45098979b1 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithNoMetrics.verified.text @@ -0,0 +1,4 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithOpenMetricsVersionHeader.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithOpenMetricsVersionHeader.verified.text new file mode 100644 index 00000000000..6dbc7342bc6 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithOpenMetricsVersionHeader.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithOpenMetricsVersionHeaderAndMeterTags.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithOpenMetricsVersionHeaderAndMeterTags.verified.text new file mode 100644 index 00000000000..807ff949a68 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithOpenMetricsVersionHeaderAndMeterTags.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",otel_scope_meter1="value1",otel_scope_meter2="value2",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",otel_scope_meter1="value1",otel_scope_meter2="value2",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text index cf358b8a2e0..6dbc7342bc6 100644 --- a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithScopeInfoEnabledConfigured_scopeInfoEnabled=True.verified.text @@ -3,6 +3,6 @@ target_info{service_name="my_service",service_instance_id="id1"} 1 # TYPE counter_double_bytes counter # UNIT counter_double_bytes bytes -counter_double_bytes_total{otel_scope_name="OpenTelemetry.Exporter.Prometheus.Tests.PrometheusHttpListenerTests..cctor",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 -counter_double_bytes_created{otel_scope_name="OpenTelemetry.Exporter.Prometheus.Tests.PrometheusHttpListenerTests..cctor",otel_scope_version="1.0.1",key1="value1",key2="value2"} +counter_double_bytes_total{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} # EOF From c30747102bc02a28650fd54477ccd1bcc6b42d12 Mon Sep 17 00:00:00 2001 From: Martin Costello Date: Sat, 20 Jun 2026 16:53:35 +0100 Subject: [PATCH 4/7] [Exporter.Prometheus] Update CHANGELOGs Add PR number. --- src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md | 2 +- src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md index 46de1d574e1..5c01f050591 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md @@ -12,7 +12,7 @@ Notes](../../RELEASENOTES.md). * Add `PrometheusAspNetCoreOptions.ScopeInfoEnabled` property to enable or disable scope labels in Prometheus metrics. Defaults to `true`. - ([#TODO](https://github.com/open-telemetry/opentelemetry-dotnet/pull/TODO)) + ([#7436](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7436)) ## 1.16.0-beta.1 diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md index 8f0a76cbcc7..50dd3ff4d01 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md @@ -12,7 +12,7 @@ Notes](../../RELEASENOTES.md). * Add `PrometheusHttpListenerOptions.ScopeInfoEnabled` property to enable or disable scope labels in Prometheus metrics. Defaults to `true`. - ([#TODO](https://github.com/open-telemetry/opentelemetry-dotnet/pull/TODO)) + ([#7436](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7436)) ## 1.16.0-beta.1 From f21ce45ab9e20fe0acdbb1bf835e9bcc9a19eb6c Mon Sep 17 00:00:00 2001 From: martincostello Date: Sun, 21 Jun 2026 08:02:30 +0100 Subject: [PATCH 5/7] [Exporter.Prometheus] Add TargetInfoEnabled option Add new `TargetInfoEnabled` option that allows a user to opt-out of `target_info` metrics being written to the scrape response. Fixes #7158. --- .../.publicApi/PublicAPI.Unshipped.txt | 2 ++ .../CHANGELOG.md | 4 ++++ .../PrometheusAspNetCoreOptions.cs | 10 ++++++++++ .../README.md | 6 ++++++ .../.publicApi/PublicAPI.Unshipped.txt | 2 ++ .../CHANGELOG.md | 4 ++++ .../Shared/PrometheusCollectionManager.cs | 4 +++- .../Internal/Shared/PrometheusExporter.cs | 3 +++ .../Internal/Shared/PrometheusExporterOptions.cs | 7 +++++++ ...HttpListenerMeterProviderBuilderExtensions.cs | 1 + .../PrometheusHttpListenerOptions.cs | 6 ++++++ .../README.md | 7 +++++++ .../PrometheusExporterMiddlewareTests.cs | 14 ++++++++++++++ .../PrometheusHttpListenerTests.cs | 16 ++++++++++++++++ ...figured_targetInfoEnabled=False.verified.text | 5 +++++ ...nfigured_targetInfoEnabled=True.verified.text | 8 ++++++++ ...figured_targetInfoEnabled=False.verified.text | 5 +++++ ...nfigured_targetInfoEnabled=True.verified.text | 8 ++++++++ 18 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithTargetInfoEnabledConfigured_targetInfoEnabled=False.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithTargetInfoEnabledConfigured_targetInfoEnabled=True.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTargetInfoEnabledConfigured_targetInfoEnabled=False.verified.text create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTargetInfoEnabledConfigured_targetInfoEnabled=True.verified.text diff --git a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/.publicApi/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/.publicApi/PublicAPI.Unshipped.txt index aa2ab8c9072..cba2e2aea0a 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/.publicApi/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/.publicApi/PublicAPI.Unshipped.txt @@ -10,6 +10,8 @@ OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.ScrapeEndpointPath.get -> str OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.ScrapeEndpointPath.set -> void OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.ScrapeResponseCacheDurationMilliseconds.get -> int OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.ScrapeResponseCacheDurationMilliseconds.set -> void +OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.TargetInfoEnabled.get -> bool +OpenTelemetry.Exporter.PrometheusAspNetCoreOptions.TargetInfoEnabled.set -> void OpenTelemetry.Metrics.PrometheusExporterMeterProviderBuilderExtensions static Microsoft.AspNetCore.Builder.PrometheusExporterApplicationBuilderExtensions.UseOpenTelemetryPrometheusScrapingEndpoint(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! static Microsoft.AspNetCore.Builder.PrometheusExporterApplicationBuilderExtensions.UseOpenTelemetryPrometheusScrapingEndpoint(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, OpenTelemetry.Metrics.MeterProvider? meterProvider, System.Func? predicate, string? path, System.Action? configureBranchedPipeline, string? optionsName) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! diff --git a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md index 5c01f050591..cffab77e607 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md @@ -14,6 +14,10 @@ Notes](../../RELEASENOTES.md). disable scope labels in Prometheus metrics. Defaults to `true`. ([#7436](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7436)) +* Add `PrometheusAspNetCoreOptions.TargetInfoEnabled` property to enable or + disable the `target_info` metric in Prometheus metrics. Defaults to `true`. + ([#TODO](https://github.com/open-telemetry/opentelemetry-dotnet/pull/TODO)) + ## 1.16.0-beta.1 Released 2026-Jun-10 diff --git a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/PrometheusAspNetCoreOptions.cs b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/PrometheusAspNetCoreOptions.cs index a37667296ad..5a5c75401b2 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/PrometheusAspNetCoreOptions.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/PrometheusAspNetCoreOptions.cs @@ -48,5 +48,15 @@ public int ScrapeResponseCacheDurationMilliseconds set => this.ExporterOptions.ScrapeResponseCacheDurationMilliseconds = value; } + /// + /// Gets or sets a value indicating whether to include a target_info metric in the scrape response. + /// Default value: . + /// + public bool TargetInfoEnabled + { + get => this.ExporterOptions.TargetInfoEnabled; + set => this.ExporterOptions.TargetInfoEnabled = value; + } + internal PrometheusExporterOptions ExporterOptions { get; } = new(); } diff --git a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/README.md b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/README.md index ee09aa1dbf0..30493347d06 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/README.md +++ b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/README.md @@ -142,6 +142,12 @@ Configures scrape endpoint response caching. Multiple scrape requests within the cache duration time period will receive the same previously generated response. The default value is `300`. Set to `0` to disable response caching. +### TargetInfoEnabled + +Specifies whether to produce a +[`target_info`](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/prometheus_and_openmetrics.md#resource-attributes-1) +metric. Default value: `true`. Set to `false` to disable the `target_info` metric. + ## Troubleshooting This component uses an diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/.publicApi/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/.publicApi/PublicAPI.Unshipped.txt index aa06270963f..56634c9db64 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/.publicApi/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/.publicApi/PublicAPI.Unshipped.txt @@ -7,6 +7,8 @@ OpenTelemetry.Exporter.PrometheusHttpListenerOptions.DisableTotalNameSuffixForCo OpenTelemetry.Exporter.PrometheusHttpListenerOptions.DisableTotalNameSuffixForCounters.set -> void OpenTelemetry.Exporter.PrometheusHttpListenerOptions.ScopeInfoEnabled.get -> bool OpenTelemetry.Exporter.PrometheusHttpListenerOptions.ScopeInfoEnabled.set -> void +OpenTelemetry.Exporter.PrometheusHttpListenerOptions.TargetInfoEnabled.get -> bool +OpenTelemetry.Exporter.PrometheusHttpListenerOptions.TargetInfoEnabled.set -> void OpenTelemetry.Exporter.PrometheusHttpListenerOptions.UriPrefixes.get -> System.Collections.Generic.IReadOnlyCollection! OpenTelemetry.Exporter.PrometheusHttpListenerOptions.UriPrefixes.set -> void OpenTelemetry.Exporter.PrometheusHttpListenerOptions.PrometheusHttpListenerOptions() -> void diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md index 50dd3ff4d01..18feaeba502 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md @@ -14,6 +14,10 @@ Notes](../../RELEASENOTES.md). disable scope labels in Prometheus metrics. Defaults to `true`. ([#7436](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7436)) +* Add `PrometheusHttpListenerOptions.TargetInfoEnabled` property to enable or + disable the `target_info` metric in Prometheus metrics. Defaults to `true`. + ([#TODO](https://github.com/open-telemetry/opentelemetry-dotnet/pull/TODO)) + ## 1.16.0-beta.1 Released 2026-Jun-10 diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusCollectionManager.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusCollectionManager.cs index 92da6f6eceb..6bdcf08d25a 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusCollectionManager.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusCollectionManager.cs @@ -17,6 +17,7 @@ internal sealed class PrometheusCollectionManager private readonly PrometheusExporter exporter; private readonly bool scopeInfoEnabled; + private readonly bool targetInfoEnabled; private readonly TimeSpan scrapeResponseCacheDuration; private readonly long baseTimestamp = Stopwatch.GetTimestamp(); private readonly PrometheusExporter.ExportFunc onCollectRef; @@ -31,6 +32,7 @@ public PrometheusCollectionManager(PrometheusExporter exporter) { this.exporter = exporter; this.scopeInfoEnabled = this.exporter.ScopeInfoEnabled; + this.targetInfoEnabled = this.exporter.TargetInfoEnabled; this.scrapeResponseCacheDuration = TimeSpan.FromMilliseconds(this.exporter.ScrapeResponseCacheDurationMilliseconds); this.onCollectRef = this.OnCollect; this.metricsCache = []; @@ -353,7 +355,7 @@ private bool TryWriteResponse(PrometheusProtocol protocol, PrometheusProtocolSta { var serializer = TextFormatSerializer.GetSerializer(protocol); - var cursor = this.WriteTargetInfo(serializer, state); + var cursor = this.targetInfoEnabled ? this.WriteTargetInfo(serializer, state) : 0; var metricStates = this.GetMetricStates(serializer, metrics); var options = new TextFormatSerializerOptions(suppressScopeInfo: !this.scopeInfoEnabled); diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporter.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporter.cs index 79a584dbfad..cb21b87046b 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporter.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporter.cs @@ -25,6 +25,7 @@ public PrometheusExporter(PrometheusExporterOptions options) this.ScopeInfoEnabled = options.ScopeInfoEnabled; this.ScrapeResponseCacheDurationMilliseconds = options.ScrapeResponseCacheDurationMilliseconds; + this.TargetInfoEnabled = options.TargetInfoEnabled; this.DisableTotalNameSuffixForCounters = options.DisableTotalNameSuffixForCounters; this.CollectionManager = new PrometheusCollectionManager(this); @@ -45,6 +46,8 @@ public PrometheusExporter(PrometheusExporterOptions options) internal bool ScopeInfoEnabled { get; } + internal bool TargetInfoEnabled { get; } + internal int ScrapeResponseCacheDurationMilliseconds { get; } internal bool DisableTotalNameSuffixForCounters { get; } diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporterOptions.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporterOptions.cs index e6eb884ac83..f58c742db20 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporterOptions.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/PrometheusExporterOptions.cs @@ -14,6 +14,7 @@ public PrometheusExporterOptions() { this.ScopeInfoEnabled = true; this.ScrapeResponseCacheDurationMilliseconds = 300; + this.TargetInfoEnabled = true; } /// @@ -38,6 +39,12 @@ public int ScrapeResponseCacheDurationMilliseconds } } + /// + /// Gets or sets a value indicating whether to include a target_info metric in the scrape response. + /// Default value: . + /// + public bool TargetInfoEnabled { get; set; } + /// /// Gets or sets a value indicating whether addition of _total suffix for counter metric names is disabled. Default value: . /// diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerMeterProviderBuilderExtensions.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerMeterProviderBuilderExtensions.cs index a480a6697e2..091a910d034 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerMeterProviderBuilderExtensions.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerMeterProviderBuilderExtensions.cs @@ -69,6 +69,7 @@ private static BaseExportingMetricReader BuildPrometheusHttpListenerMetricReader { ScopeInfoEnabled = options.ScopeInfoEnabled, ScrapeResponseCacheDurationMilliseconds = options.ScrapeResponseCacheDurationMilliseconds, + TargetInfoEnabled = options.TargetInfoEnabled, DisableTotalNameSuffixForCounters = options.DisableTotalNameSuffixForCounters, }); diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerOptions.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerOptions.cs index 496368e59d7..16afc8e5f93 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerOptions.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/PrometheusHttpListenerOptions.cs @@ -93,6 +93,12 @@ public int ScrapeResponseCacheDurationMilliseconds } } + /// + /// Gets or sets a value indicating whether to include a target_info metric in the scrape response. + /// Default value: . + /// + public bool TargetInfoEnabled { get; set; } = true; + /// /// Gets or sets the URI (Uniform Resource Identifier) prefixes to use for the http listener. /// Default value: ["http://localhost:9464/"]. diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/README.md b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/README.md index b3f546ccc83..32a4fb6a31c 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/README.md +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/README.md @@ -63,6 +63,7 @@ variables. * `ScopeInfoEnabled`: Whether to include scope labels in metrics (default `true`). * `ScrapeEndpointPath`: Defines the Prometheus scrape endpoint path. (default `"/metrics"`). +* `TargetInfoEnabled`: Whether to produce a `target_info` metric (default `true`). * `DisableTotalNameSuffixForCounters`: Whether to disable the `_total` suffix for counter metrics (default `false`). * `DisableTimestamp`: Whether to disable the timestamp for metrics (default `false`). @@ -108,6 +109,12 @@ Configures scrape endpoint response caching. Multiple scrape requests within the cache duration time period will receive the same previously generated response. The default value is `300`. Set to `0` to disable response caching. +### TargetInfoEnabled + +Specifies whether to produce a +[`target_info`](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/prometheus_and_openmetrics.md#resource-attributes-1) +metric. Default value: `true`. Set to `false` to disable the `target_info` metric. + ## Troubleshooting This component uses an diff --git a/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs b/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs index 5401d0cca69..d9361ea2618 100644 --- a/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs +++ b/test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs @@ -48,6 +48,20 @@ public async Task RunWithScopeInfoEnabledConfigured(bool scopeInfoEnabled) await Verify(output, "text", PrometheusSerializerTests.VerifySettings).UseParameters(scopeInfoEnabled); } + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task RunWithTargetInfoEnabledConfigured(bool targetInfoEnabled) + { + var output = await RunPrometheusExporterMiddlewareIntegrationTest( + "/metrics", + app => app.UseOpenTelemetryPrometheusScrapingEndpoint(), + services => services.Configure(o => o.TargetInfoEnabled = targetInfoEnabled), + assertResponseContent: false); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings).UseParameters(targetInfoEnabled); + } + [Fact] public async Task RunWithCustomScrapeEndpointPath() { diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs index 11ba2e8015a..5c2195a0475 100644 --- a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs @@ -79,6 +79,22 @@ public async Task RunHttpServerWithScopeInfoEnabledConfigured(bool scopeInfoEnab await Verify(output, "text", PrometheusSerializerTests.VerifySettings).UseParameters(scopeInfoEnabled); } + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task RunHttpServerWithTargetInfoEnabledConfigured(bool targetInfoEnabled) + { + var output = await RunPrometheusExporterHttpServerIntegrationTest( + configureListener: (options) => + { + options.TargetInfoEnabled = targetInfoEnabled; + return options.Port; + }, + assertResponseContent: false); + + await Verify(output, "text", PrometheusSerializerTests.VerifySettings).UseParameters(targetInfoEnabled); + } + [Fact] public async Task RunHttpServerWithNoMetrics() { diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithTargetInfoEnabledConfigured_targetInfoEnabled=False.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithTargetInfoEnabledConfigured_targetInfoEnabled=False.verified.text new file mode 100644 index 00000000000..cdb10f88e83 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithTargetInfoEnabledConfigured_targetInfoEnabled=False.verified.text @@ -0,0 +1,5 @@ +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithTargetInfoEnabledConfigured_targetInfoEnabled=True.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithTargetInfoEnabledConfigured_targetInfoEnabled=True.verified.text new file mode 100644 index 00000000000..6dbc7342bc6 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunHttpServerWithTargetInfoEnabledConfigured_targetInfoEnabled=True.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusHttpListenerTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTargetInfoEnabledConfigured_targetInfoEnabled=False.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTargetInfoEnabledConfigured_targetInfoEnabled=False.verified.text new file mode 100644 index 00000000000..ac8180e55ab --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTargetInfoEnabledConfigured_targetInfoEnabled=False.verified.text @@ -0,0 +1,5 @@ +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTargetInfoEnabledConfigured_targetInfoEnabled=True.verified.text b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTargetInfoEnabledConfigured_targetInfoEnabled=True.verified.text new file mode 100644 index 00000000000..dd9b959a12b --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.RunWithTargetInfoEnabledConfigured_targetInfoEnabled=True.verified.text @@ -0,0 +1,8 @@ +# TYPE target info +# HELP target Target metadata +target_info{service_name="my_service",service_instance_id="id1"} 1 +# TYPE counter_double_bytes counter +# UNIT counter_double_bytes bytes +counter_double_bytes_total{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} 101.17 +counter_double_bytes_created{otel_scope_name="PrometheusExporterMiddlewareTests",otel_scope_version="1.0.1",key1="value1",key2="value2"} +# EOF From 4cde3f420f36b8f7cf1b0617c86548994836237e Mon Sep 17 00:00:00 2001 From: Martin Costello Date: Sun, 21 Jun 2026 08:26:10 +0100 Subject: [PATCH 6/7] [Exporter.Prometheus] Update CHANGELOGs Add PR number. --- src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md | 2 +- src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md index cffab77e607..65307feb787 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md @@ -16,7 +16,7 @@ Notes](../../RELEASENOTES.md). * Add `PrometheusAspNetCoreOptions.TargetInfoEnabled` property to enable or disable the `target_info` metric in Prometheus metrics. Defaults to `true`. - ([#TODO](https://github.com/open-telemetry/opentelemetry-dotnet/pull/TODO)) + ([#7438](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7438)) ## 1.16.0-beta.1 diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md index 18feaeba502..79b466d49f9 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md @@ -16,7 +16,7 @@ Notes](../../RELEASENOTES.md). * Add `PrometheusHttpListenerOptions.TargetInfoEnabled` property to enable or disable the `target_info` metric in Prometheus metrics. Defaults to `true`. - ([#TODO](https://github.com/open-telemetry/opentelemetry-dotnet/pull/TODO)) + ([#7438](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7438)) ## 1.16.0-beta.1 From 95f07c68e51cfd2309771da03c99dd0f1553af5f Mon Sep 17 00:00:00 2001 From: martincostello Date: Wed, 24 Jun 2026 09:22:26 +0100 Subject: [PATCH 7/7] [Exporter.Prometheus] Address feedback - Add missing condition. - Use deterministic sort for test. - Fix test name. --- .../Serialization/TextFormatSerializer.cs | 7 ++-- .../PrometheusHttpListenerTests.cs | 2 +- .../PrometheusSerializerTests.cs | 36 ++++++++++++++++++- ...sCollide_useOpenMetrics=False.verified.txt | 2 ++ ...gsCollide_useOpenMetrics=True.verified.txt | 3 ++ 5 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSuppressesScopeLabelsWhenPointTagsCollide_useOpenMetrics=False.verified.txt create mode 100644 test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSuppressesScopeLabelsWhenPointTagsCollide_useOpenMetrics=True.verified.txt diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializer.cs b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializer.cs index 7f665b82557..9808974f5a4 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializer.cs +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/Internal/Shared/Serialization/TextFormatSerializer.cs @@ -611,9 +611,12 @@ internal static int WriteTags( cursor = startCursor; List? labels = null; - foreach (var scopeLabel in CreateScopeLabelData(metric)) + if (!options.SuppressScopeInfo) { - AddLabel(scopeLabel.OriginalKey, scopeLabel.OutputKey, scopeLabel.Value, ref labels, reservedOutputKeys); + foreach (var scopeLabel in CreateScopeLabelData(metric)) + { + AddLabel(scopeLabel.OriginalKey, scopeLabel.OutputKey, scopeLabel.Value, ref labels, reservedOutputKeys); + } } foreach (var tag in tags) diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs index bf834f40d2b..7b1eedd129d 100644 --- a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusHttpListenerTests.cs @@ -106,7 +106,7 @@ public async Task RunHttpServerWithOpenMetricsVersionHeaderAndMeterTags() } [Fact] - public void PrometheusHttpListenerThrowsOnStartifPortAlreadyInUse() + public void PrometheusHttpListenerThrowsOnStartIfPortAlreadyInUse() { // Step 1: Start a listener on a random port. using var context = CreateListener(); diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusSerializerTests.cs b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusSerializerTests.cs index 668fa8f30db..01ea0f55072 100644 --- a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusSerializerTests.cs +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusSerializerTests.cs @@ -338,6 +338,38 @@ public async Task WriteMetricConcatenatesPointTagsThatCollideWithScopeLabels( await Verify(output, "txt", VerifySettings).UseParameters(snapshotName, useOpenMetrics); } + [Theory] + [InlineData(false)] + [InlineData(true)] + public async Task WriteMetricSuppressesScopeLabelsWhenPointTagsCollide(bool useOpenMetrics) + { + var buffer = new byte[85000]; + var metrics = new List(); + + using var meter = new Meter( + nameof(this.WriteMetricSuppressesScopeLabelsWhenPointTagsCollide), + "1.0.0", + [new("meter_tag", "scope")], + scope: null); + + using var provider = Sdk.CreateMeterProviderBuilder() + .AddMeter(meter.Name) + .AddInMemoryExporter(metrics) + .Build(); + + meter.CreateCounter("test_counter").Add( + 1, + new KeyValuePair("a.b", "value1"), + new KeyValuePair("a/b", "value2")); + + provider.ForceFlush(); + + var cursor = WriteMetric(buffer, 0, metrics.Single(), useOpenMetrics, suppressScopeInfo: true); + var output = Encoding.UTF8.GetString(buffer, 0, cursor); + + await Verify(output, "txt", VerifySettings).UseParameters(useOpenMetrics); + } + [Fact] public void WriteMetricNameSanitizesNonAsciiCharacters() { @@ -1321,7 +1353,9 @@ public async Task WriteMetricSupportsScopeInfoEnabledOptionForCounters(bool useO provider.ForceFlush(); - var cursor = WriteMetric(buffer, 0, metrics[0], useOpenMetrics, suppressScopeInfo); + var counterMetric = metrics.Single(m => m.Name == "test_counter"); + + var cursor = WriteMetric(buffer, 0, counterMetric, useOpenMetrics, suppressScopeInfo); var output = Encoding.UTF8.GetString(buffer, 0, cursor); await Verify(output, "txt", VerifySettings).UseParameters(useOpenMetrics, suppressScopeInfo); diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSuppressesScopeLabelsWhenPointTagsCollide_useOpenMetrics=False.verified.txt b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSuppressesScopeLabelsWhenPointTagsCollide_useOpenMetrics=False.verified.txt new file mode 100644 index 00000000000..51a7a912105 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSuppressesScopeLabelsWhenPointTagsCollide_useOpenMetrics=False.verified.txt @@ -0,0 +1,2 @@ +# TYPE test_counter_total counter +test_counter_total{a_b="value1;value2"} 1 diff --git a/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSuppressesScopeLabelsWhenPointTagsCollide_useOpenMetrics=True.verified.txt b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSuppressesScopeLabelsWhenPointTagsCollide_useOpenMetrics=True.verified.txt new file mode 100644 index 00000000000..53babfc5015 --- /dev/null +++ b/test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/snapshots/PrometheusSerializer.WriteMetricSuppressesScopeLabelsWhenPointTagsCollide_useOpenMetrics=True.verified.txt @@ -0,0 +1,3 @@ +# TYPE test_counter counter +test_counter_total{a_b="value1;value2"} 1 +test_counter_created{a_b="value1;value2"}