From f3d1c24172e64a7762c7af57a72cc6609ad439e6 Mon Sep 17 00:00:00 2001 From: legendecas Date: Fri, 24 Sep 2021 11:07:59 +0800 Subject: [PATCH 1/3] fix(sdk-metrics-base): metrics name should be in the max length of 63 Refs: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#instrument --- .../packages/opentelemetry-sdk-metrics-base/src/Meter.ts | 2 +- .../opentelemetry-sdk-metrics-base/test/Meter.test.ts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/experimental/packages/opentelemetry-sdk-metrics-base/src/Meter.ts b/experimental/packages/opentelemetry-sdk-metrics-base/src/Meter.ts index 32f295694c6..2ca48dfbf61 100644 --- a/experimental/packages/opentelemetry-sdk-metrics-base/src/Meter.ts +++ b/experimental/packages/opentelemetry-sdk-metrics-base/src/Meter.ts @@ -350,6 +350,6 @@ export class Meter implements api.Meter { * @param name Name of metric to be created */ private _isValidName(name: string): boolean { - return Boolean(name.match(/^[a-z][a-z0-9_.-]*$/i)); + return Boolean(name.match(/^[a-z][a-z0-9_.-]{0,62}$/i)); } } diff --git a/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts b/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts index b1e6389b5d3..4f604326db2 100644 --- a/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts +++ b/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts @@ -295,6 +295,11 @@ describe('Meter', () => { const counter = meter.createCounter('name with invalid characters^&*('); assert.ok(counter instanceof api.NoopMetric); }); + + it('should return no op metric if name exceeded length of 63', () => { + const counter = meter.createCounter('name_with_length_of_64_so_this_is_soooooooooooooooooooooooo_long'); + assert.ok(counter instanceof api.NoopMetric); + }); }); }); From 98108d4963c7db1d30384fdce357033462720983 Mon Sep 17 00:00:00 2001 From: legendecas Date: Thu, 7 Oct 2021 00:37:26 +0800 Subject: [PATCH 2/3] Update experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts Co-authored-by: Bartlomiej Obecny --- .../opentelemetry-sdk-metrics-base/test/Meter.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts b/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts index 4f604326db2..5f8f9c0cdcc 100644 --- a/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts +++ b/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts @@ -297,7 +297,10 @@ describe('Meter', () => { }); it('should return no op metric if name exceeded length of 63', () => { - const counter = meter.createCounter('name_with_length_of_64_so_this_is_soooooooooooooooooooooooo_long'); + const counter = meter.createCounter('a'.repeat(63)); + assert.ok(counter instanceof CounterMetric); + const counter2 = meter.createCounter('a'.repeat(64)); + assert.ok(counter2 instanceof api.NoopMetric); assert.ok(counter instanceof api.NoopMetric); }); }); From bdc81dae3c82e087498dc8c005644c9eecdf696b Mon Sep 17 00:00:00 2001 From: legendecas Date: Thu, 7 Oct 2021 00:55:44 +0800 Subject: [PATCH 3/3] fixup! --- .../packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts b/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts index 5f8f9c0cdcc..0fcc05ede30 100644 --- a/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts +++ b/experimental/packages/opentelemetry-sdk-metrics-base/test/Meter.test.ts @@ -301,7 +301,6 @@ describe('Meter', () => { assert.ok(counter instanceof CounterMetric); const counter2 = meter.createCounter('a'.repeat(64)); assert.ok(counter2 instanceof api.NoopMetric); - assert.ok(counter instanceof api.NoopMetric); }); }); });