Skip to content

Commit 7e27039

Browse files
create test metric reader (#2388)
Co-authored-by: Marc Pichler <[email protected]>
1 parent 8b35f78 commit 7e27039

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

packages/opentelemetry-test-utils/src/test-utils.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@ import {
2424
} from '@opentelemetry/api';
2525
import * as assert from 'assert';
2626
import { ReadableSpan } from '@opentelemetry/sdk-trace-base';
27+
import { MetricReader, MeterProvider } from '@opentelemetry/sdk-metrics';
2728
import {
2829
hrTimeToMilliseconds,
2930
hrTimeToMicroseconds,
3031
} from '@opentelemetry/core';
3132
import * as path from 'path';
3233
import * as fs from 'fs';
34+
import { InstrumentationBase } from '@opentelemetry/instrumentation';
3335

3436
const dockerRunCmds = {
3537
cassandra:
@@ -179,3 +181,24 @@ export const getPackageVersion = (packageName: string) => {
179181
);
180182
return JSON.parse(fs.readFileSync(pjPath, 'utf8')).version;
181183
};
184+
185+
class TestMetricReader extends MetricReader {
186+
constructor() {
187+
super();
188+
}
189+
190+
protected async onForceFlush(): Promise<void> {}
191+
protected async onShutdown(): Promise<void> {}
192+
}
193+
194+
export const initMeterProvider = (
195+
instrumentation: InstrumentationBase
196+
): TestMetricReader => {
197+
const metricReader = new TestMetricReader();
198+
const meterProvider = new MeterProvider({
199+
readers: [metricReader],
200+
});
201+
instrumentation.setMeterProvider(meterProvider);
202+
203+
return metricReader;
204+
};

0 commit comments

Comments
 (0)