From 5e626fdd5082e279dbf1c84dd7b3a4f65e5b139f Mon Sep 17 00:00:00 2001 From: Michael Maxwell Date: Tue, 25 Oct 2022 16:06:33 -0700 Subject: [PATCH 1/3] Limit character set according to spec --- src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs | 2 +- test/OpenTelemetry.Tests/Metrics/MetricTestData.cs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs b/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs index 641b4957242..b8db1029f74 100644 --- a/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs +++ b/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs @@ -24,7 +24,7 @@ namespace OpenTelemetry.Metrics internal sealed class MeterProviderBuilderSdk : MeterProviderBuilderBase { private static readonly Regex InstrumentNameRegex = new( - @"^[a-zA-Z][-.\w]{0,62}$", RegexOptions.IgnoreCase | RegexOptions.Compiled); + @"^[a-z][a-z0-9-._]{0,62}$", RegexOptions.IgnoreCase | RegexOptions.Compiled); public MeterProviderBuilderSdk() { diff --git a/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs b/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs index c4b8fdf944a..d01d189cb9f 100644 --- a/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs +++ b/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs @@ -28,6 +28,7 @@ public static IEnumerable InvalidInstrumentNames new object[] { "1first-char-not-alphabetic" }, new object[] { "invalid+separator" }, new object[] { new string('m', 64) }, + new object[] { "aµ" }, }; public static IEnumerable ValidInstrumentNames @@ -39,6 +40,7 @@ public static IEnumerable ValidInstrumentNames new object[] { "my.metric" }, new object[] { "my_metric2" }, new object[] { new string('m', 63) }, + new object[] { "CaSe-InSeNsItIvE" }, }; public static IEnumerable InvalidHistogramBoundaries From 8cf62d02a0af5211ef06b433d7830ee037d5f559 Mon Sep 17 00:00:00 2001 From: Michael Maxwell Date: Tue, 25 Oct 2022 16:11:11 -0700 Subject: [PATCH 2/3] Update CHANGELOG.md --- src/OpenTelemetry/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 6944fae04c8..0803fbc580a 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased +* Fix instrument naming enforcement implementation to match the spec. + ([#3821](https://github.com/open-telemetry/opentelemetry-dotnet/pull/3821)) + * Added support for loading environment variables from `IConfiguration` when using the `MetricReaderOptions` & `BatchExportActivityProcessorOptions` classes. From 0c66fe5250950a27e73050b54c122d1dce3827ce Mon Sep 17 00:00:00 2001 From: Michael Maxwell Date: Wed, 26 Oct 2022 11:42:15 -0700 Subject: [PATCH 3/3] Remove unicode --- test/OpenTelemetry.Tests/Metrics/MetricTestData.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs b/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs index d01d189cb9f..4ba399bed4e 100644 --- a/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs +++ b/test/OpenTelemetry.Tests/Metrics/MetricTestData.cs @@ -28,7 +28,7 @@ public static IEnumerable InvalidInstrumentNames new object[] { "1first-char-not-alphabetic" }, new object[] { "invalid+separator" }, new object[] { new string('m', 64) }, - new object[] { "aµ" }, + new object[] { "a\xb5" }, // `\xb5` is the Micro character }; public static IEnumerable ValidInstrumentNames