Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ Notes](../../RELEASENOTES.md).
* The library is now marked as trim and AOT compatible.
([#7441](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7441))

* Fix double unit suffixes in metric names when using OpenMetrics.
([#7454](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7454))

* Fix incorrect handling of leading digits in metric names for OpenMetrics.
([#7454](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7454))

## 1.16.0-beta.1

Released 2026-Jun-10
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ Notes](../../RELEASENOTES.md).
* Removed the `PrometheusHttpListenerOptions.UriPrefixes` option.
([#7435](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7435))

* Fix double unit suffixes in metric names when using OpenMetrics.
([#7454](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7454))

* Fix incorrect handling of leading digits in metric names for OpenMetrics.
([#7454](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7454))

## 1.16.0-beta.1

Released 2026-Jun-10
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,18 @@ public PrometheusMetric(string name, string unit, PrometheusType type, bool disa
// [OpenMetrics UNIT metadata](https://github.com/prometheus/OpenMetrics/blob/v1.0.0/specification/OpenMetrics.md#metricfamily)
// and as a suffix to the metric name. The unit suffix comes before any type-specific suffixes.
// https://github.com/open-telemetry/opentelemetry-specification/blob/3dfb383fe583e3b74a2365c5a1d90256b273ee76/specification/compatibility/prometheus_and_openmetrics.md#metric-metadata-1
if (!sanitizedName.EndsWith(sanitizedUnit, StringComparison.Ordinal))
// Each name is checked independently: openMetricsName has the _total counter suffix stripped
// (by RemoveOpenMetricsCounterNameSuffix above), so it may already end with the unit even
// when sanitizedName (which still carries _total) does not. For sanitizedName, also check
// for the unit immediately before _total (e.g. "db_bytes_total" with unit "bytes").
if (!sanitizedName.EndsWith(sanitizedUnit, StringComparison.Ordinal) &&
!sanitizedName.EndsWith($"{sanitizedUnit}_total", StringComparison.Ordinal))
{
sanitizedName += $"_{sanitizedUnit}";
}

if (!openMetricsName.EndsWith(sanitizedUnit, StringComparison.Ordinal))
{
openMetricsName += $"_{sanitizedUnit}";
}
}
Expand Down Expand Up @@ -189,6 +198,7 @@ internal static string EscapeOpenMetricsName(string metricName)
sb ??= CreateStringBuilder(metricName);
sb.Append('_');
lastCharUnderscore = true;
continue;
}

if (!char.IsAsciiLetterOrDigit(c) && c != ':')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@

[Fact]
public async Task PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags()
=> await RunPrometheusExporterMiddlewareIntegrationTestWithBothFormats();

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-2025, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-2025, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-11-arm, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-11-arm, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-11-arm, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-2025, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-11-arm, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-2025, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-2025, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-11-arm, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-11-arm, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-11-arm, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-11-arm, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-2025, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-2025, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-2025, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-11-arm, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 293 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-2025, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_NoMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

[Fact]
public async Task PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags()
Expand All @@ -301,7 +301,7 @@
new("meterKey2", "value2"),
};

await RunPrometheusExporterMiddlewareIntegrationTestWithBothFormats(meterTags);

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-2025, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-2025, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-11-arm, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-11-arm, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-11-arm, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-2025, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-11-arm, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-2025, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-2025, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-11-arm, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-11-arm, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-11-arm, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-11-arm, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-2025, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-2025, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-2025, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-11-arm, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 304 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusExporterMiddlewareTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-2025, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusExporterMiddlewareTests.PrometheusExporterMiddlewareIntegration_CanServeOpenMetricsAndPlainFormats_WithMeterTags

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)
}

[Fact]
Expand Down Expand Up @@ -547,7 +547,7 @@
contentType ??=
requestOpenMetrics ?
"application/openmetrics-text; version=0.0.1; charset=utf-8" :
"text/plain; version=0.0.4; charset=utf-8";
"text/plain; version=0.0.4";
Comment thread
martincostello marked this conversation as resolved.
Outdated
Comment thread
martincostello marked this conversation as resolved.
Outdated

Assert.Equal(contentType, response.Content.Headers.ContentType!.ToString());
Assert.Equal(["Accept-Encoding"], response.Headers.Vary);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
Assert.Equal<string>(["gzip"], response.Content.Headers.ContentEncoding);
Assert.Equal(["Accept-Encoding"], response.Headers.Vary);
Assert.NotNull(response.Content.Headers.ContentType);
Assert.Equal("text/plain; version=0.0.4; charset=utf-8", response.Content.Headers.ContentType.ToString());
Assert.Equal("text/plain; version=0.0.4", response.Content.Headers.ContentType.ToString());

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-2025, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-2025, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-11-arm, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-11-arm, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-11-arm, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-unstable-core / build-test (windows-2025, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-11-arm, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-2025, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-2025, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-11-arm, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-11-arm, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-11-arm, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-11-arm, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-2025, net9.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-2025, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-stable / build-test (windows-2025, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-11-arm, net10.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)

Check failure on line 112 in test/OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests/PrometheusIntegrationTests.cs

View workflow job for this annotation

GitHub Actions / build-test-project-experimental / build-test (windows-2025, net8.0)

OpenTelemetry.Exporter.Prometheus.AspNetCore.Tests.PrometheusIntegrationTests.Scrape_Endpoint_Uses_GZip_When_Requested

Assert.Equal() Failure: Strings differ Expected: "text/plain; version=0.0.4" Actual: "text/plain; version=0.0.4; charset=utf-8" ↑ (pos 25)
Comment thread
martincostello marked this conversation as resolved.
Outdated
Comment thread
martincostello marked this conversation as resolved.
Outdated

using var compressed = await response.Content.ReadAsStreamAsync();
using var decompressed = new GZipStream(compressed, CompressionMode.Decompress);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,10 @@ public void Name_UnitAlreadyPresentInName_CustomGauge_NotAppended()
public void Name_UnitAlreadyPresentInName_CustomCounter_NotAppended()
=> AssertName("metric_hertz_total", "hertz_total", PrometheusType.Counter, false, "metric_hertz_total");

[Fact]
public void Name_CounterWithUnitPrecedingTotal_UnitNotDuplicated()
=> AssertName("db_bytes_total", "By", PrometheusType.Counter, false, "db_bytes_total");

[Fact]
public void Name_UnitAlreadyPresentInName_OrderMatters_Appended()
=> AssertName("metric_total_hertz", "hertz_total", PrometheusType.Counter, false, "metric_total_hertz_hertz_total");
Expand All @@ -164,8 +168,16 @@ public void OpenMetricsName_CollapsesConsecutiveUnderscores()
=> AssertOpenMetricsName("cpu_sp__d_hertz", string.Empty, PrometheusType.Gauge, false, "cpu_sp_d_hertz");

[Fact]
public void OpenMetricsName_PreserveLeadingNumber()
=> AssertOpenMetricsName("2_metric_name", "By", PrometheusType.Gauge, false, "_2_metric_name_bytes");
public void OpenMetricsName_ReplacesLeadingNumber()
=> AssertOpenMetricsName("2_metric_name", "By", PrometheusType.Gauge, false, "_metric_name_bytes");

[Fact]
public void OpenMetricsName_CounterWithUnitPrecedingTotal_UnitNotDuplicated()
=> AssertOpenMetricsName("db_bytes_total", "By", PrometheusType.Counter, false, "db_bytes_total");

[Fact]
public void OpenMetricsMetadataName_CounterWithUnitPrecedingTotal_UnitNotDuplicated()
=> AssertOpenMetricsMetadataName("db_bytes_total", "By", PrometheusType.Counter, false, "db_bytes");

[Fact]
public void OpenMetricsName_UnitStartingWithNumber_DoesNotAddExtraSeparator()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -711,4 +711,68 @@ public void Equals_Object_BoxingScenario()
Assert.True(boxed1.Equals(boxed2));
Assert.True(boxed2.Equals(boxed1));
}

[Fact]
public void GetContentType_PrometheusTextV0_IsCorrect()
{
var protocol = new PrometheusProtocol(
PrometheusProtocol.PrometheusTextMediaType,
null,
PrometheusProtocol.PrometheusV0,
false);

Assert.Equal("text/plain; version=0.0.4; charset=utf-8", PrometheusProtocol.GetContentType(protocol));
}
Comment thread
martincostello marked this conversation as resolved.

[Fact]
public void GetContentType_PrometheusTextV1_IsCorrect()
{
var protocol = new PrometheusProtocol(
PrometheusProtocol.PrometheusTextMediaType,
PrometheusProtocol.UnderscoresEscaping,
PrometheusProtocol.PrometheusV1,
false);

Assert.Equal("text/plain; version=1.0.0; charset=utf-8; escaping=underscores", PrometheusProtocol.GetContentType(protocol));
}
Comment thread
martincostello marked this conversation as resolved.

[Fact]
public void GetContentType_OpenMetricsV0_IsCorrect()
{
var protocol = new PrometheusProtocol(
PrometheusProtocol.OpenMetricsMediaType,
null,
PrometheusProtocol.OpenMetricsV0,
true);

Assert.Equal("application/openmetrics-text; version=0.0.1; charset=utf-8", PrometheusProtocol.GetContentType(protocol));
}

[Fact]
public void GetContentType_OpenMetricsV1_IsCorrect()
{
var protocol = new PrometheusProtocol(
PrometheusProtocol.OpenMetricsMediaType,
PrometheusProtocol.UnderscoresEscaping,
PrometheusProtocol.OpenMetricsV1,
true);

Assert.Equal("application/openmetrics-text; version=1.0.0; charset=utf-8; escaping=underscores", PrometheusProtocol.GetContentType(protocol));
}

[Fact]
public void GetContentType_FallbackProtocol_IsCorrect() =>
Assert.Equal("text/plain; version=0.0.4; charset=utf-8", PrometheusProtocol.GetContentType(PrometheusProtocol.Fallback));

[Fact]
public void GetContentType_ToStringDelegatesToGetContentType()
{
var protocol = new PrometheusProtocol(
PrometheusProtocol.OpenMetricsMediaType,
null,
PrometheusProtocol.OpenMetricsV1,
true);

Assert.Equal(PrometheusProtocol.GetContentType(protocol), protocol.ToString());
}
}
Loading