diff --git a/CHANGELOG.md b/CHANGELOG.md index c390c68fbb6..cf293f35466 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/ * `telemetry.sdk.language` * `telemetry.sdk.version` * fix(selenium-tests): updated webpack version for selenium test issue [#3456](https://github.com/open-telemetry/opentelemetry-js/issues/3456) @SaumyaBhushan +* fix(sdk-metrics): fix duplicated registration of metrics for collectors [#3488](https://github.com/open-telemetry/opentelemetry-js/pull/3488) @legendecas ### :books: (Refine Doc) diff --git a/packages/sdk-metrics/src/state/MetricStorageRegistry.ts b/packages/sdk-metrics/src/state/MetricStorageRegistry.ts index 5261b6ef099..c44ad8b5f86 100644 --- a/packages/sdk-metrics/src/state/MetricStorageRegistry.ts +++ b/packages/sdk-metrics/src/state/MetricStorageRegistry.ts @@ -96,7 +96,7 @@ export class MetricStorageRegistry { return null; } - const storages = this._sharedRegistry.get(expectedDescriptor.name); + const storages = storageMap.get(expectedDescriptor.name); if (storages === undefined) { return null; } diff --git a/packages/sdk-metrics/test/state/MetricStorageRegistry.test.ts b/packages/sdk-metrics/test/state/MetricStorageRegistry.test.ts index 62d305537b4..26a48a0ba33 100644 --- a/packages/sdk-metrics/test/state/MetricStorageRegistry.test.ts +++ b/packages/sdk-metrics/test/state/MetricStorageRegistry.test.ts @@ -401,7 +401,22 @@ describe('MetricStorageRegistry', () => { // registered the storage for each collector assert.deepStrictEqual(registry.getStorages(collectorHandle), [storage]); + assert.strictEqual( + registry.findOrUpdateCompatibleCollectorStorage( + collectorHandle, + descriptor + ), + storage + ); + assert.deepStrictEqual(registry.getStorages(collectorHandle2), [storage]); + assert.strictEqual( + registry.findOrUpdateCompatibleCollectorStorage( + collectorHandle2, + descriptor + ), + storage + ); }); }); });