diff --git a/packages/sdk-metrics/src/export/InMemoryMetricExporter.ts b/packages/sdk-metrics/src/export/InMemoryMetricExporter.ts index 2a80973bb95..fd1bcf78e12 100644 --- a/packages/sdk-metrics/src/export/InMemoryMetricExporter.ts +++ b/packages/sdk-metrics/src/export/InMemoryMetricExporter.ts @@ -76,6 +76,7 @@ export class InMemoryMetricExporter implements PushMetricExporter { shutdown(): Promise { this._shutdown = true; + this._metrics = []; return Promise.resolve(); } } diff --git a/packages/sdk-metrics/test/export/InMemoryMetricExporter.test.ts b/packages/sdk-metrics/test/export/InMemoryMetricExporter.test.ts index 1e14a8ed5e1..93c9cfdf432 100644 --- a/packages/sdk-metrics/test/export/InMemoryMetricExporter.test.ts +++ b/packages/sdk-metrics/test/export/InMemoryMetricExporter.test.ts @@ -113,6 +113,24 @@ describe('InMemoryMetricExporter', () => { await metricReader.shutdown(); }); + it('should get no metrics after shutdown', async () => { + const counter = meter.createCounter('counter_total', { + description: 'a test description', + }); + const counterAttribute = { key1: 'attributeValue1' }; + counter.add(10, counterAttribute); + + const exportedMetrics = await waitForNumberOfExports(exporter, 1); + assert.ok(exportedMetrics.length > 0); + + await exporter.shutdown(); + + const otherMetrics = exporter.getMetrics(); + assert.ok(otherMetrics.length === 0); + + await metricReader.shutdown(); + }); + it('should be able to access metric', async () => { const counter = meter.createCounter('counter_total', { description: 'a test description',