diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 78891b4e3a2..467b06e5666 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -11,6 +11,8 @@ `AddInstrumentation` method. ([#4873](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4873)) +* Allowed metric instrument names to contain `/` characters. ([#4882](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4882)) + ## 1.6.0 Released 2023-Sep-05 diff --git a/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs b/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs index bcca0a16456..baaa3521551 100644 --- a/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs +++ b/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs @@ -46,7 +46,7 @@ public MeterProviderBuilderSdk(IServiceProvider serviceProvider) // Customers: This is not guaranteed to work forever. We may change this // mechanism in the future do this at your own risk. public static Regex InstrumentNameRegex { get; set; } = new( - @"^[a-z][a-z0-9-._]{0,254}$", RegexOptions.IgnoreCase | RegexOptions.Compiled); + @"^[a-z][a-z0-9-._/]{0,254}$", RegexOptions.IgnoreCase | RegexOptions.Compiled); public List Instrumentation { get; } = new(); diff --git a/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs b/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs index a4614778597..8c5721f96ba 100644 --- a/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs +++ b/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs @@ -39,6 +39,7 @@ public static IEnumerable ValidInstrumentNames new object[] { "my_metric2" }, new object[] { new string('m', 255) }, new object[] { "CaSe-InSeNsItIvE" }, + new object[] { "my_metric/environment/database" }, }; public static IEnumerable InvalidHistogramBoundaries