diff --git a/.gitignore b/.gitignore index 7f15185341..b728317a53 100644 --- a/.gitignore +++ b/.gitignore @@ -79,6 +79,9 @@ package.json.lerna_backup # VsCode configs .vscode/ +# Vs configs +.vs/ + #IDEA .idea *.iml diff --git a/packages/opentelemetry-api/src/index.ts b/packages/opentelemetry-api/src/index.ts index 7c5bbd76f5..62a02d4024 100644 --- a/packages/opentelemetry-api/src/index.ts +++ b/packages/opentelemetry-api/src/index.ts @@ -26,7 +26,7 @@ export * from './trace/attributes'; export * from './trace/Event'; export * from './trace/link_context'; export * from './trace/link'; -export * from './trace/NoopLogger'; +export * from './trace/getLogger'; export * from './trace/NoopSpan'; export * from './trace/NoopTracer'; export * from './trace/NoopTracerProvider'; diff --git a/packages/opentelemetry-api/src/trace/NoopLogger.ts b/packages/opentelemetry-api/src/trace/NoopLogger.ts deleted file mode 100644 index 1fb8b184d0..0000000000 --- a/packages/opentelemetry-api/src/trace/NoopLogger.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Logger } from '../common/Logger'; - -/** No-op implementation of Logger */ -export class NoopLogger implements Logger { - // By default does nothing - debug(_message: string, ..._args: unknown[]) {} - - // By default does nothing - error(_message: string, ..._args: unknown[]) {} - - // By default does nothing - warn(_message: string, ..._args: unknown[]) {} - - // By default does nothing - info(_message: string, ..._args: unknown[]) {} -} diff --git a/packages/opentelemetry-api/src/trace/getLogger.ts b/packages/opentelemetry-api/src/trace/getLogger.ts new file mode 100644 index 0000000000..cf18b415c7 --- /dev/null +++ b/packages/opentelemetry-api/src/trace/getLogger.ts @@ -0,0 +1,58 @@ +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Logger } from '../common/Logger'; + +function noopLoggerFunc(_message: string, ..._args: unknown[]): void {} + +/** + * Simple helper to check if the provided logger is defined and contains all of the expected functions + * @param logger + */ +function isLogger(logger?: Logger | null): logger is Logger { + return ( + !!logger && + !!logger.error && + !!logger.warn && + !!logger.info && + !!logger.debug + ); +} + +/** + * Helper function to return a logger, the returned logger will be either the passed logger (if defined and valid) + * a ConsoleLogger (if useConsole is true) or a Noop Logger implementation. + * If the supplied logger is not valid (defined and contains the expected logger methods) and the useConsole parameter is + * true then you can also supply the required logging level, the the level is not defined then the environment logging level + * will be used. + * You can use this helper to avoid adding common boilerplate code to ensure you have a non-null or undefined logger. + * @param logger The available logger + * @param useConsole - If the logger is not valid should a ConsoleLogger be returned + * @param consoleLevel If no logger if + */ +export function getLogger(logger?: Logger | null): Logger { + if (!isLogger(logger)) { + // Create a dummy logger that does nothing. + logger = { + error: noopLoggerFunc, + warn: noopLoggerFunc, + info: noopLoggerFunc, + debug: noopLoggerFunc, + }; + } + + return logger; +} diff --git a/packages/opentelemetry-api/test/trace/getLogger.test.ts b/packages/opentelemetry-api/test/trace/getLogger.test.ts new file mode 100644 index 0000000000..6d03a42359 --- /dev/null +++ b/packages/opentelemetry-api/test/trace/getLogger.test.ts @@ -0,0 +1,339 @@ +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as assert from 'assert'; +import { getLogger } from '../../src/trace/getLogger'; +import { Logger } from '../../src/common/Logger'; + +describe('logger', () => { + it('getLogger should return a default noop instance', () => { + const logger = getLogger() as any; + assert.ok(logger, 'A logger should have been returned'); + assert.ok( + typeof logger.debug === 'function', + 'Logger should provide a debug function' + ); + assert.ok( + typeof logger.info === 'function', + 'Logger should provide a info function' + ); + assert.ok( + typeof logger.warn === 'function', + 'Logger should provide a warn function' + ); + assert.ok( + typeof logger.error === 'function', + 'Logger should provide a error function' + ); + + assert.doesNotThrow( + logger.debug, + "Calling the debug function doesn't throw" + ); + assert.doesNotThrow( + logger.info, + "Calling the debug function doesn't throw" + ); + assert.doesNotThrow( + logger.warn, + "Calling the debug function doesn't throw" + ); + assert.doesNotThrow( + logger.error, + "Calling the debug function doesn't throw" + ); + }); + + it('getLogger with explicit null should return a default noop instance', () => { + const logger = getLogger(null) as any; + assert.ok(logger, 'A logger should have been returned'); + assert.ok( + typeof logger.debug === 'function', + 'Logger should provide a debug function' + ); + assert.ok( + typeof logger.info === 'function', + 'Logger should provide a info function' + ); + assert.ok( + typeof logger.warn === 'function', + 'Logger should provide a warn function' + ); + assert.ok( + typeof logger.error === 'function', + 'Logger should provide a error function' + ); + + assert.doesNotThrow( + logger.debug, + "Calling the debug function doesn't throw" + ); + assert.doesNotThrow( + logger.info, + "Calling the debug function doesn't throw" + ); + assert.doesNotThrow( + logger.warn, + "Calling the debug function doesn't throw" + ); + assert.doesNotThrow( + logger.error, + "Calling the debug function doesn't throw" + ); + }); + + it('getLogger with empty object should return a default noop instance', () => { + const logger = getLogger({} as any) as any; + assert.ok(logger, 'A logger should have been returned'); + assert.ok( + typeof logger.debug === 'function', + 'Logger should provide a debug function' + ); + assert.ok( + typeof logger.info === 'function', + 'Logger should provide a info function' + ); + assert.ok( + typeof logger.warn === 'function', + 'Logger should provide a warn function' + ); + assert.ok( + typeof logger.error === 'function', + 'Logger should provide a error function' + ); + + assert.doesNotThrow( + logger.debug, + "Calling the debug function doesn't throw" + ); + assert.doesNotThrow( + logger.info, + "Calling the debug function doesn't throw" + ); + assert.doesNotThrow( + logger.warn, + "Calling the debug function doesn't throw" + ); + assert.doesNotThrow( + logger.error, + "Calling the debug function doesn't throw" + ); + }); + + it('getLogger with valid logger passed should return that logger', () => { + let debugCalled = 0; + let infoCalled = 0; + let warnCalled = 0; + let errorCalled = 0; + const dummyLogger: Logger = { + debug: () => { + debugCalled++; + }, + info: () => { + infoCalled++; + }, + warn: () => { + warnCalled++; + }, + error: () => { + errorCalled++; + }, + }; + const logger = getLogger(dummyLogger) as any; + assert.strictEqual( + logger, + dummyLogger, + 'The passed in logger should have been returned' + ); + + assert.strictEqual(debugCalled, 0); + assert.strictEqual(infoCalled, 0); + assert.strictEqual(warnCalled, 0); + assert.strictEqual(errorCalled, 0); + + logger.debug('debug log'); + assert.strictEqual(debugCalled, 1); + assert.strictEqual(infoCalled, 0); + assert.strictEqual(warnCalled, 0); + assert.strictEqual(errorCalled, 0); + + logger.info('info log'); + assert.strictEqual(debugCalled, 1); + assert.strictEqual(infoCalled, 1); + assert.strictEqual(warnCalled, 0); + assert.strictEqual(errorCalled, 0); + + logger.warn('warn log'); + assert.strictEqual(debugCalled, 1); + assert.strictEqual(infoCalled, 1); + assert.strictEqual(warnCalled, 1); + assert.strictEqual(errorCalled, 0); + + logger.error('error log'); + assert.strictEqual(debugCalled, 1); + assert.strictEqual(infoCalled, 1); + assert.strictEqual(warnCalled, 1); + assert.strictEqual(errorCalled, 1); + }); + + it('getLogger with missing debug function should still return a default noop instance', () => { + let infoCalled = 0; + let warnCalled = 0; + let errorCalled = 0; + const dummyLogger = { + info: () => { + infoCalled++; + }, + warn: () => { + warnCalled++; + }, + error: () => { + errorCalled++; + }, + }; + const logger = getLogger(dummyLogger as any) as any; + + assert.strictEqual(infoCalled, 0); + assert.strictEqual(warnCalled, 0); + assert.strictEqual(errorCalled, 0); + + logger.debug('debug log'); + logger.info('info log'); + logger.warn('warn log'); + logger.error('error log'); + + assert.strictEqual(infoCalled, 0); + assert.strictEqual(warnCalled, 0); + assert.strictEqual(errorCalled, 0); + + assert.notStrictEqual( + logger, + dummyLogger, + 'The passed in logger should have been returned' + ); + }); + + it('getLogger with missing info function should still return a default noop instance', () => { + let debugCalled = 0; + let warnCalled = 0; + let errorCalled = 0; + const dummyLogger = { + debug: () => { + debugCalled++; + }, + warn: () => { + warnCalled++; + }, + error: () => { + errorCalled++; + }, + }; + const logger = getLogger(dummyLogger as any) as any; + + assert.strictEqual(debugCalled, 0); + assert.strictEqual(warnCalled, 0); + assert.strictEqual(errorCalled, 0); + + logger.debug('debug log'); + logger.info('info log'); + logger.warn('warn log'); + logger.error('error log'); + + assert.strictEqual(debugCalled, 0); + assert.strictEqual(warnCalled, 0); + assert.strictEqual(errorCalled, 0); + + assert.notStrictEqual( + logger, + dummyLogger, + 'The passed in logger should have been returned' + ); + }); + + it('getLogger with missing warn function should still return a default noop instance', () => { + let debugCalled = 0; + let infoCalled = 0; + let errorCalled = 0; + const dummyLogger = { + debug: () => { + debugCalled++; + }, + info: () => { + infoCalled++; + }, + error: () => { + errorCalled++; + }, + }; + const logger = getLogger(dummyLogger as any) as any; + + assert.strictEqual(debugCalled, 0); + assert.strictEqual(infoCalled, 0); + assert.strictEqual(errorCalled, 0); + + logger.debug('debug log'); + logger.info('info log'); + logger.warn('warn log'); + logger.error('error log'); + + assert.strictEqual(debugCalled, 0); + assert.strictEqual(infoCalled, 0); + assert.strictEqual(errorCalled, 0); + + assert.notStrictEqual( + logger, + dummyLogger, + 'The passed in logger should have been returned' + ); + }); + + it('getLogger with missing error function should still return a default noop instance', () => { + let debugCalled = 0; + let infoCalled = 0; + let warnCalled = 0; + const dummyLogger = { + debug: () => { + debugCalled++; + }, + info: () => { + infoCalled++; + }, + warn: () => { + warnCalled++; + }, + }; + const logger = getLogger(dummyLogger as any) as any; + + assert.strictEqual(debugCalled, 0); + assert.strictEqual(infoCalled, 0); + assert.strictEqual(warnCalled, 0); + + logger.debug('debug log'); + logger.info('info log'); + logger.warn('warn log'); + logger.error('error log'); + + assert.strictEqual(debugCalled, 0); + assert.strictEqual(infoCalled, 0); + assert.strictEqual(warnCalled, 0); + + assert.notStrictEqual( + logger, + dummyLogger, + 'The passed in logger should have been returned' + ); + }); +}); diff --git a/packages/opentelemetry-core/src/context/propagation/composite.ts b/packages/opentelemetry-core/src/context/propagation/composite.ts index 27b4101ee4..eb7d2a42d9 100644 --- a/packages/opentelemetry-core/src/context/propagation/composite.ts +++ b/packages/opentelemetry-core/src/context/propagation/composite.ts @@ -20,7 +20,7 @@ import { TextMapPropagator, Logger, TextMapSetter, - NoopLogger, + getLogger, } from '@opentelemetry/api'; import { CompositePropagatorConfig } from './types'; @@ -37,7 +37,7 @@ export class CompositePropagator implements TextMapPropagator { */ constructor(config: CompositePropagatorConfig = {}) { this._propagators = config.propagators ?? []; - this._logger = config.logger ?? new NoopLogger(); + this._logger = getLogger(config.logger); this._fields = Array.from( new Set( this._propagators diff --git a/packages/opentelemetry-core/test/platform/BasePlugin.test.ts b/packages/opentelemetry-core/test/platform/BasePlugin.test.ts index b55fde8850..d5df3856c4 100644 --- a/packages/opentelemetry-core/test/platform/BasePlugin.test.ts +++ b/packages/opentelemetry-core/test/platform/BasePlugin.test.ts @@ -14,14 +14,14 @@ * limitations under the License. */ -import { NoopTracerProvider, NoopLogger } from '@opentelemetry/api'; +import { NoopTracerProvider, getLogger } from '@opentelemetry/api'; import * as assert from 'assert'; import * as path from 'path'; import { BasePlugin } from '../../src'; import * as types from '../trace/fixtures/test-package/foo/bar/internal'; const provider = new NoopTracerProvider(); -const logger = new NoopLogger(); +const logger = getLogger(); describe('BasePlugin', () => { describe('internalFilesLoader', () => { it('should load internally exported files', () => { diff --git a/packages/opentelemetry-core/test/platform/browser/BasePlugin.test.ts b/packages/opentelemetry-core/test/platform/browser/BasePlugin.test.ts index 919acbba1b..5a1688e166 100644 --- a/packages/opentelemetry-core/test/platform/browser/BasePlugin.test.ts +++ b/packages/opentelemetry-core/test/platform/browser/BasePlugin.test.ts @@ -14,16 +14,12 @@ * limitations under the License. */ -import { - NOOP_TRACER, - NoopTracerProvider, - NoopLogger, -} from '@opentelemetry/api'; +import { NOOP_TRACER, NoopTracerProvider, getLogger } from '@opentelemetry/api'; import * as assert from 'assert'; import { BasePlugin } from '../../../src'; const provider = new NoopTracerProvider(); -const logger = new NoopLogger(); +const logger = getLogger(); describe('BasePlugin', () => { describe('enable', () => { it('should enable plugin', () => { diff --git a/packages/opentelemetry-exporter-collector-proto/test/CollectorMetricExporter.test.ts b/packages/opentelemetry-exporter-collector-proto/test/CollectorMetricExporter.test.ts index aa83283011..be2a9a84be 100644 --- a/packages/opentelemetry-exporter-collector-proto/test/CollectorMetricExporter.test.ts +++ b/packages/opentelemetry-exporter-collector-proto/test/CollectorMetricExporter.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import { Counter, ValueObserver, @@ -60,7 +60,7 @@ describe('CollectorMetricExporter - node with proto over http', () => { foo: 'bar', }, hostname: 'foo', - logger: new NoopLogger(), + logger: getLogger(), serviceName: 'bar', attributes: {}, url: 'http://foo.bar.com', diff --git a/packages/opentelemetry-exporter-collector-proto/test/CollectorTraceExporter.test.ts b/packages/opentelemetry-exporter-collector-proto/test/CollectorTraceExporter.test.ts index 54fc34a89c..08dd99db61 100644 --- a/packages/opentelemetry-exporter-collector-proto/test/CollectorTraceExporter.test.ts +++ b/packages/opentelemetry-exporter-collector-proto/test/CollectorTraceExporter.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import { ExportResultCode } from '@opentelemetry/core'; import { CollectorExporterNodeConfigBase, @@ -51,7 +51,7 @@ describe('CollectorTraceExporter - node with proto over http', () => { foo: 'bar', }, hostname: 'foo', - logger: new NoopLogger(), + logger: getLogger(), serviceName: 'bar', attributes: {}, url: 'http://foo.bar.com', diff --git a/packages/opentelemetry-exporter-collector/src/CollectorExporterBase.ts b/packages/opentelemetry-exporter-collector/src/CollectorExporterBase.ts index fc75a2a806..dda0ce2c20 100644 --- a/packages/opentelemetry-exporter-collector/src/CollectorExporterBase.ts +++ b/packages/opentelemetry-exporter-collector/src/CollectorExporterBase.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Attributes, Logger, NoopLogger } from '@opentelemetry/api'; +import { Attributes, Logger, getLogger } from '@opentelemetry/api'; import { ExportResult, ExportResultCode } from '@opentelemetry/core'; import { CollectorExporterError, @@ -52,7 +52,7 @@ export abstract class CollectorExporterBase< this.attributes = config.attributes; - this.logger = config.logger || new NoopLogger(); + this.logger = getLogger(config.logger); this.shutdown = this.shutdown.bind(this); diff --git a/packages/opentelemetry-exporter-collector/src/util.ts b/packages/opentelemetry-exporter-collector/src/util.ts index 739698f0e0..701c3c67e6 100644 --- a/packages/opentelemetry-exporter-collector/src/util.ts +++ b/packages/opentelemetry-exporter-collector/src/util.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Logger, NoopLogger } from '@opentelemetry/api'; +import { Logger, getLogger } from '@opentelemetry/api'; /** * Parses headers from config leaving only those that have defined values @@ -23,7 +23,7 @@ import { Logger, NoopLogger } from '@opentelemetry/api'; */ export function parseHeaders( partialHeaders: Partial> = {}, - logger: Logger = new NoopLogger() + logger: Logger = getLogger() ): Record { const headers: Record = {}; Object.entries(partialHeaders).forEach(([key, value]) => { diff --git a/packages/opentelemetry-exporter-collector/test/browser/CollectorMetricExporter.test.ts b/packages/opentelemetry-exporter-collector/test/browser/CollectorMetricExporter.test.ts index 03e89e93c9..b47e312990 100644 --- a/packages/opentelemetry-exporter-collector/test/browser/CollectorMetricExporter.test.ts +++ b/packages/opentelemetry-exporter-collector/test/browser/CollectorMetricExporter.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import { Counter, ValueObserver, @@ -89,7 +89,7 @@ describe('CollectorMetricExporter - web', () => { describe('when "sendBeacon" is available', () => { beforeEach(() => { collectorExporter = new CollectorMetricExporter({ - logger: new NoopLogger(), + logger: getLogger(), url: 'http://foo.bar.com', serviceName: 'bar', }); @@ -200,7 +200,7 @@ describe('CollectorMetricExporter - web', () => { beforeEach(() => { (window.navigator as any).sendBeacon = false; collectorExporter = new CollectorMetricExporter({ - logger: new NoopLogger(), + logger: getLogger(), url: 'http://foo.bar.com', serviceName: 'bar', }); @@ -334,7 +334,7 @@ describe('CollectorMetricExporter - web', () => { beforeEach(() => { collectorExporterConfig = { - logger: new NoopLogger(), + logger: getLogger(), headers: customHeaders, }; server = sinon.fakeServer.create(); diff --git a/packages/opentelemetry-exporter-collector/test/browser/CollectorTraceExporter.test.ts b/packages/opentelemetry-exporter-collector/test/browser/CollectorTraceExporter.test.ts index 968b3ae8f5..1a649960bc 100644 --- a/packages/opentelemetry-exporter-collector/test/browser/CollectorTraceExporter.test.ts +++ b/packages/opentelemetry-exporter-collector/test/browser/CollectorTraceExporter.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import { ExportResultCode } from '@opentelemetry/core'; import { ReadableSpan } from '@opentelemetry/tracing'; import * as assert from 'assert'; @@ -59,7 +59,7 @@ describe('CollectorTraceExporter - web', () => { beforeEach(() => { collectorExporterConfig = { hostname: 'foo', - logger: new NoopLogger(), + logger: getLogger(), serviceName: 'bar', attributes: {}, url: 'http://foo.bar.com', @@ -251,7 +251,7 @@ describe('CollectorTraceExporter - web', () => { beforeEach(() => { collectorExporterConfig = { - logger: new NoopLogger(), + logger: getLogger(), headers: customHeaders, }; server = sinon.fakeServer.create(); diff --git a/packages/opentelemetry-exporter-collector/test/common/CollectorMetricExporter.test.ts b/packages/opentelemetry-exporter-collector/test/common/CollectorMetricExporter.test.ts index b9a6ae2a54..c07c122720 100644 --- a/packages/opentelemetry-exporter-collector/test/common/CollectorMetricExporter.test.ts +++ b/packages/opentelemetry-exporter-collector/test/common/CollectorMetricExporter.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import { Counter, ValueObserver } from '@opentelemetry/api-metrics'; import { ExportResultCode } from '@opentelemetry/core'; import { @@ -63,7 +63,7 @@ describe('CollectorMetricExporter - common', () => { onInitSpy = sinon.stub(CollectorMetricExporter.prototype, 'onInit'); collectorExporterConfig = { hostname: 'foo', - logger: new NoopLogger(), + logger: getLogger(), serviceName: 'bar', attributes: {}, url: 'http://foo.bar.com', @@ -127,7 +127,12 @@ describe('CollectorMetricExporter - common', () => { }); it('should set default logger', () => { - assert.ok(collectorExporter.logger instanceof NoopLogger); + const noopLogger = getLogger(); + assert.strictEqual( + collectorExporter.logger.error, + noopLogger.error, + 'This should be the default noopLogger method' + ); }); }); }); @@ -213,7 +218,7 @@ describe('CollectorMetricExporter - common', () => { ); collectorExporterConfig = { hostname: 'foo', - logger: new NoopLogger(), + logger: getLogger(), serviceName: 'bar', attributes: {}, url: 'http://foo.bar.com', diff --git a/packages/opentelemetry-exporter-collector/test/common/CollectorTraceExporter.test.ts b/packages/opentelemetry-exporter-collector/test/common/CollectorTraceExporter.test.ts index 7dc89886ac..0a04c0df9a 100644 --- a/packages/opentelemetry-exporter-collector/test/common/CollectorTraceExporter.test.ts +++ b/packages/opentelemetry-exporter-collector/test/common/CollectorTraceExporter.test.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import { ExportResultCode } from '@opentelemetry/core'; import { ReadableSpan } from '@opentelemetry/tracing'; import * as assert from 'assert'; @@ -68,7 +68,7 @@ describe('CollectorTraceExporter - common', () => { onInitSpy = sinon.stub(CollectorTraceExporter.prototype, 'onInit'); collectorExporterConfig = { hostname: 'foo', - logger: new NoopLogger(), + logger: getLogger(), serviceName: 'bar', attributes: {}, url: 'http://foo.bar.com', @@ -116,7 +116,12 @@ describe('CollectorTraceExporter - common', () => { }); it('should set default logger', () => { - assert.ok(collectorExporter.logger instanceof NoopLogger); + const noopLogger = getLogger(); + assert.strictEqual( + collectorExporter.logger.error, + noopLogger.error, + 'The error method should reference the default logger' + ); }); }); }); @@ -233,7 +238,7 @@ describe('CollectorTraceExporter - common', () => { ); collectorExporterConfig = { hostname: 'foo', - logger: new NoopLogger(), + logger: getLogger(), serviceName: 'bar', attributes: {}, url: 'http://foo.bar.com', diff --git a/packages/opentelemetry-exporter-collector/test/common/utils.test.ts b/packages/opentelemetry-exporter-collector/test/common/utils.test.ts index 3f31225de1..2c3ceb1c5d 100644 --- a/packages/opentelemetry-exporter-collector/test/common/utils.test.ts +++ b/packages/opentelemetry-exporter-collector/test/common/utils.test.ts @@ -16,13 +16,13 @@ import * as assert from 'assert'; import * as sinon from 'sinon'; -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import { parseHeaders } from '../../src/util'; describe('utils', () => { describe('parseHeaders', () => { it('should ignore undefined headers', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const spyWarn = sinon.stub(logger, 'warn'); const headers: Partial> = { foo1: undefined, diff --git a/packages/opentelemetry-exporter-collector/test/node/CollectorMetricExporter.test.ts b/packages/opentelemetry-exporter-collector/test/node/CollectorMetricExporter.test.ts index 3c7233f71b..f68e5f45d2 100644 --- a/packages/opentelemetry-exporter-collector/test/node/CollectorMetricExporter.test.ts +++ b/packages/opentelemetry-exporter-collector/test/node/CollectorMetricExporter.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import { Counter, ValueObserver, @@ -86,7 +86,7 @@ describe('CollectorMetricExporter - node with json over http', () => { foo: 'bar', }, hostname: 'foo', - logger: new NoopLogger(), + logger: getLogger(), serviceName: 'bar', attributes: {}, url: 'http://foo.bar.com', diff --git a/packages/opentelemetry-exporter-collector/test/node/CollectorTraceExporter.test.ts b/packages/opentelemetry-exporter-collector/test/node/CollectorTraceExporter.test.ts index 69a7b1fe57..6417416579 100644 --- a/packages/opentelemetry-exporter-collector/test/node/CollectorTraceExporter.test.ts +++ b/packages/opentelemetry-exporter-collector/test/node/CollectorTraceExporter.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import * as core from '@opentelemetry/core'; import { ReadableSpan } from '@opentelemetry/tracing'; import * as http from 'http'; @@ -72,7 +72,7 @@ describe('CollectorTraceExporter - node with json over http', () => { foo: 'bar', }, hostname: 'foo', - logger: new NoopLogger(), + logger: getLogger(), serviceName: 'bar', attributes: {}, url: 'http://foo.bar.com', diff --git a/packages/opentelemetry-exporter-jaeger/src/jaeger.ts b/packages/opentelemetry-exporter-jaeger/src/jaeger.ts index 4579e1a4b1..83c8a1f5da 100644 --- a/packages/opentelemetry-exporter-jaeger/src/jaeger.ts +++ b/packages/opentelemetry-exporter-jaeger/src/jaeger.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as api from '@opentelemetry/api'; +import { Logger, getLogger } from '@opentelemetry/api'; import { ExportResult, ExportResultCode, getEnv } from '@opentelemetry/core'; import { ReadableSpan, SpanExporter } from '@opentelemetry/tracing'; import { Socket } from 'dgram'; @@ -25,7 +25,7 @@ import * as jaegerTypes from './types'; * Format and sends span information to Jaeger Exporter. */ export class JaegerExporter implements SpanExporter { - private readonly _logger: api.Logger; + private readonly _logger: Logger; private readonly _process: jaegerTypes.ThriftProcess; private readonly _sender: typeof jaegerTypes.UDPSender; private readonly _onShutdownFlushTimeout: number; @@ -35,7 +35,7 @@ export class JaegerExporter implements SpanExporter { constructor(config: jaegerTypes.ExporterConfig) { const localConfig = Object.assign({}, config); - this._logger = localConfig.logger || new api.NoopLogger(); + this._logger = getLogger(localConfig.logger); const tags: jaegerTypes.Tag[] = localConfig.tags || []; this._onShutdownFlushTimeout = typeof localConfig.flushTimeout === 'number' diff --git a/packages/opentelemetry-exporter-jaeger/test/jaeger.test.ts b/packages/opentelemetry-exporter-jaeger/test/jaeger.test.ts index d5c2275c42..e18c86a649 100644 --- a/packages/opentelemetry-exporter-jaeger/test/jaeger.test.ts +++ b/packages/opentelemetry-exporter-jaeger/test/jaeger.test.ts @@ -44,7 +44,7 @@ describe('JaegerExporter', () => { serviceName: 'opentelemetry', host: 'remotehost', port: 8080, - logger: new api.NoopLogger(), + logger: api.getLogger(), tags: [{ key: 'opentelemetry-exporter-jaeger', value: '0.1.0' }], }); assert.ok(typeof exporter.export === 'function'); diff --git a/packages/opentelemetry-exporter-prometheus/src/PrometheusExporter.ts b/packages/opentelemetry-exporter-prometheus/src/PrometheusExporter.ts index d47745980c..504713547c 100644 --- a/packages/opentelemetry-exporter-prometheus/src/PrometheusExporter.ts +++ b/packages/opentelemetry-exporter-prometheus/src/PrometheusExporter.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as api from '@opentelemetry/api'; +import { Logger, getLogger } from '@opentelemetry/api'; import { ExportResult, globalErrorHandler, @@ -35,7 +35,7 @@ export class PrometheusExporter implements MetricExporter { appendTimestamp: true, }; - private readonly _logger: api.Logger; + private readonly _logger: Logger; private readonly _port: number; private readonly _endpoint: string; private readonly _server: Server; @@ -54,7 +54,7 @@ export class PrometheusExporter implements MetricExporter { * @param callback Callback to be called after a server was started */ constructor(config: ExporterConfig = {}, callback?: () => void) { - this._logger = config.logger || new api.NoopLogger(); + this._logger = getLogger(config.logger); this._port = config.port || PrometheusExporter.DEFAULT_OPTIONS.port; this._prefix = config.prefix || PrometheusExporter.DEFAULT_OPTIONS.prefix; this._appendTimestamp = diff --git a/packages/opentelemetry-exporter-zipkin/src/zipkin.ts b/packages/opentelemetry-exporter-zipkin/src/zipkin.ts index ee44926c8a..7d5577604f 100644 --- a/packages/opentelemetry-exporter-zipkin/src/zipkin.ts +++ b/packages/opentelemetry-exporter-zipkin/src/zipkin.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as api from '@opentelemetry/api'; +import { Logger, getLogger } from '@opentelemetry/api'; import { ExportResult, ExportResultCode } from '@opentelemetry/core'; import { SpanExporter, ReadableSpan } from '@opentelemetry/tracing'; import { prepareSend } from './platform/index'; @@ -32,7 +32,7 @@ import { SERVICE_RESOURCE } from '@opentelemetry/resources'; export class ZipkinExporter implements SpanExporter { static readonly DEFAULT_URL = 'http://localhost:9411/api/v2/spans'; private readonly DEFAULT_SERVICE_NAME = 'OpenTelemetry Service'; - private readonly _logger: api.Logger; + private readonly _logger: Logger; private readonly _statusCodeTagName: string; private readonly _statusDescriptionTagName: string; private _send: zipkinTypes.SendFunction; @@ -42,7 +42,7 @@ export class ZipkinExporter implements SpanExporter { constructor(config: zipkinTypes.ExporterConfig = {}) { const urlStr = config.url || ZipkinExporter.DEFAULT_URL; - this._logger = config.logger || new api.NoopLogger(); + this._logger = getLogger(config.logger); this._send = prepareSend(this._logger, urlStr, config.headers); this._serviceName = config.serviceName; this._statusCodeTagName = config.statusCodeTagName || statusCodeTagName; diff --git a/packages/opentelemetry-exporter-zipkin/test/browser/zipkin.test.ts b/packages/opentelemetry-exporter-zipkin/test/browser/zipkin.test.ts index 8deac84c17..c4708b8e1d 100644 --- a/packages/opentelemetry-exporter-zipkin/test/browser/zipkin.test.ts +++ b/packages/opentelemetry-exporter-zipkin/test/browser/zipkin.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import { setGlobalErrorHandler, loggingErrorHandler, @@ -110,7 +110,7 @@ describe('Zipkin Exporter - web', () => { beforeEach(() => { zipkinConfig = { - logger: new NoopLogger(), + logger: getLogger(), headers: customHeaders, }; server = sinon.fakeServer.create(); diff --git a/packages/opentelemetry-exporter-zipkin/test/common/transform.test.ts b/packages/opentelemetry-exporter-zipkin/test/common/transform.test.ts index 99617f4bd1..ebc78598ad 100644 --- a/packages/opentelemetry-exporter-zipkin/test/common/transform.test.ts +++ b/packages/opentelemetry-exporter-zipkin/test/common/transform.test.ts @@ -31,7 +31,7 @@ import { _toZipkinTags, } from '../../src/transform'; import * as zipkinTypes from '../../src/types'; -const logger = new api.NoopLogger(); +const logger = api.getLogger(); const tracer = new BasicTracerProvider({ logger, }).getTracer('default'); diff --git a/packages/opentelemetry-exporter-zipkin/test/node/zipkin.test.ts b/packages/opentelemetry-exporter-zipkin/test/node/zipkin.test.ts index efff9b139c..fc5834377e 100644 --- a/packages/opentelemetry-exporter-zipkin/test/node/zipkin.test.ts +++ b/packages/opentelemetry-exporter-zipkin/test/node/zipkin.test.ts @@ -22,7 +22,7 @@ import { hrTimeToMicroseconds, ExportResultCode, } from '@opentelemetry/core'; -import * as api from '@opentelemetry/api'; +import { SpanKind, StatusCode, getLogger } from '@opentelemetry/api'; import { Resource } from '@opentelemetry/resources'; import { ZipkinExporter } from '../../src'; import * as zipkinTypes from '../../src/types'; @@ -36,7 +36,7 @@ function getReadableSpan() { const duration = 2000; const readableSpan: ReadableSpan = { name: 'my-span', - kind: api.SpanKind.INTERNAL, + kind: SpanKind.INTERNAL, spanContext: { traceId: 'd4cda95b652f4a1592b449d5929fda1b', spanId: '6e0c63257de34c92', @@ -47,7 +47,7 @@ function getReadableSpan() { ended: true, duration: [duration, 0], status: { - code: api.StatusCode.OK, + code: StatusCode.OK, }, attributes: {}, links: [], @@ -76,7 +76,7 @@ describe('Zipkin Exporter - node', () => { it('should construct an exporter with logger', () => { const exporter = new ZipkinExporter({ serviceName: 'my-service', - logger: new api.NoopLogger(), + logger: getLogger(), }); assert.ok(typeof exporter.export === 'function'); assert.ok(typeof exporter.shutdown === 'function'); @@ -111,7 +111,7 @@ describe('Zipkin Exporter - node', () => { it('should skip send with empty array', () => { const exporter = new ZipkinExporter({ serviceName: 'my-service', - logger: new api.NoopLogger(), + logger: getLogger(), }); exporter.export([], (result: ExportResult) => { @@ -134,7 +134,7 @@ describe('Zipkin Exporter - node', () => { const span1: ReadableSpan = { name: 'my-span', - kind: api.SpanKind.INTERNAL, + kind: SpanKind.INTERNAL, parentSpanId, spanContext: { traceId: 'd4cda95b652f4a1592b449d5929fda1b', @@ -146,7 +146,7 @@ describe('Zipkin Exporter - node', () => { ended: true, duration: [duration, 0], status: { - code: api.StatusCode.OK, + code: StatusCode.OK, }, attributes: { key1: 'value1', @@ -165,7 +165,7 @@ describe('Zipkin Exporter - node', () => { }; const span2: ReadableSpan = { name: 'my-span', - kind: api.SpanKind.SERVER, + kind: SpanKind.SERVER, spanContext: { traceId: 'd4cda95b652f4a1592b449d5929fda1b', spanId: '6e0c63257de34c92', @@ -176,7 +176,7 @@ describe('Zipkin Exporter - node', () => { ended: true, duration: [duration, 0], status: { - code: api.StatusCode.OK, + code: StatusCode.OK, }, attributes: {}, links: [], @@ -187,7 +187,7 @@ describe('Zipkin Exporter - node', () => { const exporter = new ZipkinExporter({ serviceName: 'my-service', - logger: new api.NoopLogger(), + logger: getLogger(), }); exporter.export([span1, span2], (result: ExportResult) => { @@ -243,7 +243,7 @@ describe('Zipkin Exporter - node', () => { const exporter = new ZipkinExporter({ serviceName: 'my-service', - logger: new api.NoopLogger(), + logger: getLogger(), url: 'https://localhost:9411/api/v2/spans', }); @@ -260,7 +260,7 @@ describe('Zipkin Exporter - node', () => { const exporter = new ZipkinExporter({ serviceName: 'my-service', - logger: new api.NoopLogger(), + logger: getLogger(), }); exporter.export([getReadableSpan()], (result: ExportResult) => { @@ -276,7 +276,7 @@ describe('Zipkin Exporter - node', () => { const exporter = new ZipkinExporter({ serviceName: 'my-service', - logger: new api.NoopLogger(), + logger: getLogger(), }); exporter.export([getReadableSpan()], (result: ExportResult) => { @@ -292,7 +292,7 @@ describe('Zipkin Exporter - node', () => { const exporter = new ZipkinExporter({ serviceName: 'my-service', - logger: new api.NoopLogger(), + logger: getLogger(), }); exporter.export([getReadableSpan()], (result: ExportResult) => { @@ -304,7 +304,7 @@ describe('Zipkin Exporter - node', () => { it('should return failed result after shutdown', done => { const exporter = new ZipkinExporter({ serviceName: 'my-service', - logger: new api.NoopLogger(), + logger: getLogger(), }); exporter.shutdown(); @@ -326,7 +326,7 @@ describe('Zipkin Exporter - node', () => { const span1: ReadableSpan = { name: 'my-span', - kind: api.SpanKind.INTERNAL, + kind: SpanKind.INTERNAL, parentSpanId, spanContext: { traceId: 'd4cda95b652f4a1592b449d5929fda1b', @@ -338,7 +338,7 @@ describe('Zipkin Exporter - node', () => { ended: true, duration: [duration, 0], status: { - code: api.StatusCode.OK, + code: StatusCode.OK, }, attributes: { key1: 'value1', @@ -357,7 +357,7 @@ describe('Zipkin Exporter - node', () => { }; const span2: ReadableSpan = { name: 'my-span', - kind: api.SpanKind.SERVER, + kind: SpanKind.SERVER, spanContext: { traceId: 'd4cda95b652f4a1592b449d5929fda1b', spanId: '6e0c63257de34c92', @@ -368,7 +368,7 @@ describe('Zipkin Exporter - node', () => { ended: true, duration: [duration, 0], status: { - code: api.StatusCode.OK, + code: StatusCode.OK, }, attributes: {}, links: [], @@ -398,7 +398,7 @@ describe('Zipkin Exporter - node', () => { const span1: ReadableSpan = { name: 'my-span', - kind: api.SpanKind.INTERNAL, + kind: SpanKind.INTERNAL, parentSpanId, spanContext: { traceId: 'd4cda95b652f4a1592b449d5929fda1b', @@ -410,7 +410,7 @@ describe('Zipkin Exporter - node', () => { ended: true, duration: [duration, 0], status: { - code: api.StatusCode.OK, + code: StatusCode.OK, }, attributes: { key1: 'value1', @@ -431,7 +431,7 @@ describe('Zipkin Exporter - node', () => { }; const span2: ReadableSpan = { name: 'my-span', - kind: api.SpanKind.SERVER, + kind: SpanKind.SERVER, spanContext: { traceId: 'd4cda95b652f4a1592b449d5929fda1b', spanId: '6e0c63257de34c92', @@ -442,7 +442,7 @@ describe('Zipkin Exporter - node', () => { ended: true, duration: [duration, 0], status: { - code: api.StatusCode.OK, + code: StatusCode.OK, }, attributes: {}, links: [], @@ -472,7 +472,7 @@ describe('Zipkin Exporter - node', () => { const exporter = new ZipkinExporter({ serviceName: 'my-service', - logger: new api.NoopLogger(), + logger: getLogger(), }); exporter.export([getReadableSpan()], (result: ExportResult) => { @@ -501,7 +501,7 @@ describe('Zipkin Exporter - node', () => { const span1: ReadableSpan = { name: 'my-span', - kind: api.SpanKind.INTERNAL, + kind: SpanKind.INTERNAL, parentSpanId, spanContext: { traceId: 'd4cda95b652f4a1592b449d5929fda1b', @@ -513,7 +513,7 @@ describe('Zipkin Exporter - node', () => { ended: true, duration: [duration, 0], status: { - code: api.StatusCode.OK, + code: StatusCode.OK, }, attributes: { key1: 'value1', @@ -534,7 +534,7 @@ describe('Zipkin Exporter - node', () => { }; const span2: ReadableSpan = { name: 'my-span', - kind: api.SpanKind.SERVER, + kind: SpanKind.SERVER, spanContext: { traceId: 'd4cda95b652f4a1592b449d5929fda1b', spanId: '6e0c63257de34c92', @@ -545,7 +545,7 @@ describe('Zipkin Exporter - node', () => { ended: true, duration: [duration, 0], status: { - code: api.StatusCode.OK, + code: StatusCode.OK, }, attributes: {}, links: [], @@ -590,7 +590,7 @@ describe('Zipkin Exporter - node', () => { const span1: ReadableSpan = { name: 'my-span', - kind: api.SpanKind.INTERNAL, + kind: SpanKind.INTERNAL, parentSpanId, spanContext: { traceId: 'd4cda95b652f4a1592b449d5929fda1b', @@ -602,7 +602,7 @@ describe('Zipkin Exporter - node', () => { ended: true, duration: [duration, 0], status: { - code: api.StatusCode.OK, + code: StatusCode.OK, }, attributes: { key1: 'value1', @@ -622,7 +622,7 @@ describe('Zipkin Exporter - node', () => { }; const span2: ReadableSpan = { name: 'my-span', - kind: api.SpanKind.SERVER, + kind: SpanKind.SERVER, spanContext: { traceId: 'd4cda95b652f4a1592b449d5929fda1b', spanId: '6e0c63257de34c92', @@ -633,7 +633,7 @@ describe('Zipkin Exporter - node', () => { ended: true, duration: [duration, 0], status: { - code: api.StatusCode.OK, + code: StatusCode.OK, }, attributes: { [SERVICE_RESOURCE.NAME]: span_service_name_prime, diff --git a/packages/opentelemetry-grpc-utils/test/grpcUtils.test.ts b/packages/opentelemetry-grpc-utils/test/grpcUtils.test.ts index f53055e620..10e412e035 100644 --- a/packages/opentelemetry-grpc-utils/test/grpcUtils.test.ts +++ b/packages/opentelemetry-grpc-utils/test/grpcUtils.test.ts @@ -19,9 +19,9 @@ import { NoopTracerProvider, SpanKind, propagation, - NoopLogger, getSpan, setSpan, + getLogger, } from '@opentelemetry/api'; import { HttpTraceContext, @@ -416,7 +416,7 @@ export const runTests = ( }); it('should patch client constructor makeClientConstructor() and makeGenericClientConstructor()', () => { - plugin.enable(grpc, new NoopTracerProvider(), new NoopLogger()); + plugin.enable(grpc, new NoopTracerProvider(), getLogger()); (plugin['_moduleExports'] as any).makeGenericClientConstructor({}); assert.ok( plugin['_moduleExports'].makeGenericClientConstructor.__wrapped @@ -666,7 +666,7 @@ export const runTests = ( }; describe('enable()', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger }); provider.addSpanProcessor(new SimpleSpanProcessor(memoryExporter)); beforeEach(() => { @@ -714,7 +714,7 @@ export const runTests = ( }); describe('disable()', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger }); provider.addSpanProcessor(new SimpleSpanProcessor(memoryExporter)); beforeEach(() => { @@ -747,7 +747,7 @@ export const runTests = ( }); describe('Test filtering requests using metadata', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger }); provider.addSpanProcessor(new SimpleSpanProcessor(memoryExporter)); beforeEach(() => { @@ -778,7 +778,7 @@ export const runTests = ( }); describe('Test filtering requests using options', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger }); const checkSpans: { [key: string]: boolean } = { unaryMethod: false, diff --git a/packages/opentelemetry-instrumentation-grpc/test/helper.ts b/packages/opentelemetry-instrumentation-grpc/test/helper.ts index 768aeeeeb7..c8d4b97475 100644 --- a/packages/opentelemetry-instrumentation-grpc/test/helper.ts +++ b/packages/opentelemetry-instrumentation-grpc/test/helper.ts @@ -18,9 +18,9 @@ import { context, SpanKind, propagation, - NoopLogger, setSpan, getSpan, + getLogger, } from '@opentelemetry/api'; import { HttpTraceContext } from '@opentelemetry/core'; import { NodeTracerProvider } from '@opentelemetry/node'; @@ -650,7 +650,7 @@ export const runTests = ( }; describe('enable()', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger }); provider.addSpanProcessor(new SimpleSpanProcessor(memoryExporter)); beforeEach(() => { @@ -695,7 +695,7 @@ export const runTests = ( }); describe('disable()', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger }); provider.addSpanProcessor(new SimpleSpanProcessor(memoryExporter)); beforeEach(() => { @@ -727,7 +727,7 @@ export const runTests = ( }); describe('Test filtering requests using metadata', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger }); provider.addSpanProcessor(new SimpleSpanProcessor(memoryExporter)); beforeEach(() => { @@ -757,7 +757,7 @@ export const runTests = ( }); describe('Test filtering requests using options', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger }); const checkSpans: { [key: string]: boolean } = { unaryMethod: false, diff --git a/packages/opentelemetry-instrumentation-http/test/functionals/http-disable.test.ts b/packages/opentelemetry-instrumentation-http/test/functionals/http-disable.test.ts index 1fff7ea5a0..a507ea6a0b 100644 --- a/packages/opentelemetry-instrumentation-http/test/functionals/http-disable.test.ts +++ b/packages/opentelemetry-instrumentation-http/test/functionals/http-disable.test.ts @@ -13,11 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { - NoopTracerProvider, - NoopLogger, - NOOP_TRACER, -} from '@opentelemetry/api'; +import { NoopTracerProvider, NOOP_TRACER, getLogger } from '@opentelemetry/api'; import * as assert from 'assert'; import { HttpInstrumentation } from '../../src/http'; import { AddressInfo } from 'net'; @@ -26,7 +22,7 @@ import * as sinon from 'sinon'; import { httpRequest } from '../utils/httpRequest'; import { isWrapped } from '@opentelemetry/instrumentation'; -const logger = new NoopLogger(); +const logger = getLogger(); const instrumentation = new HttpInstrumentation({ logger }); instrumentation.enable(); instrumentation.disable(); diff --git a/packages/opentelemetry-instrumentation-http/test/functionals/http-enable.test.ts b/packages/opentelemetry-instrumentation-http/test/functionals/http-enable.test.ts index 055b279fb8..cc1ba20e88 100644 --- a/packages/opentelemetry-instrumentation-http/test/functionals/http-enable.test.ts +++ b/packages/opentelemetry-instrumentation-http/test/functionals/http-enable.test.ts @@ -19,9 +19,9 @@ import { propagation, Span as ISpan, SpanKind, - NoopLogger, getSpan, setSpan, + getLogger, } from '@opentelemetry/api'; import { NodeTracerProvider } from '@opentelemetry/node'; import { @@ -45,7 +45,7 @@ import { AsyncHooksContextManager } from '@opentelemetry/context-async-hooks'; import type { ClientRequest, IncomingMessage, ServerResponse } from 'http'; import { isWrapped } from '@opentelemetry/instrumentation'; -const logger = new NoopLogger(); +const logger = getLogger(); const instrumentation = new HttpInstrumentation({ logger }); instrumentation.enable(); instrumentation.disable(); diff --git a/packages/opentelemetry-instrumentation-http/test/functionals/http-package.test.ts b/packages/opentelemetry-instrumentation-http/test/functionals/http-package.test.ts index 3249ba531c..b4247ce21b 100644 --- a/packages/opentelemetry-instrumentation-http/test/functionals/http-package.test.ts +++ b/packages/opentelemetry-instrumentation-http/test/functionals/http-package.test.ts @@ -19,7 +19,7 @@ import { SpanKind, Span, propagation, - NoopLogger, + getLogger, } from '@opentelemetry/api'; import { AsyncHooksContextManager } from '@opentelemetry/context-async-hooks'; import { NodeTracerProvider } from '@opentelemetry/node'; @@ -34,7 +34,7 @@ import { HttpInstrumentation } from '../../src/http'; import { assertSpan } from '../utils/assertSpan'; import { DummyPropagation } from '../utils/DummyPropagation'; -const logger = new NoopLogger(); +const logger = getLogger(); const instrumentation = new HttpInstrumentation({ logger }); instrumentation.enable(); instrumentation.disable(); @@ -61,7 +61,7 @@ describe('Packages', () => { context.disable(); }); describe('get', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger, }); diff --git a/packages/opentelemetry-instrumentation-http/test/functionals/https-disable.test.ts b/packages/opentelemetry-instrumentation-http/test/functionals/https-disable.test.ts index 795b304de6..8b6b4f5212 100644 --- a/packages/opentelemetry-instrumentation-http/test/functionals/https-disable.test.ts +++ b/packages/opentelemetry-instrumentation-http/test/functionals/https-disable.test.ts @@ -14,11 +14,7 @@ * limitations under the License. */ -import { - NoopTracerProvider, - NoopLogger, - NOOP_TRACER, -} from '@opentelemetry/api'; +import { NoopTracerProvider, NOOP_TRACER, getLogger } from '@opentelemetry/api'; import * as assert from 'assert'; import * as fs from 'fs'; import type { AddressInfo } from 'net'; @@ -27,7 +23,7 @@ import * as sinon from 'sinon'; import { HttpInstrumentation } from '../../src'; import { isWrapped } from '@opentelemetry/instrumentation'; -const logger = new NoopLogger(); +const logger = getLogger(); const instrumentation = new HttpInstrumentation({ logger }); instrumentation.enable(); instrumentation.disable(); diff --git a/packages/opentelemetry-instrumentation-http/test/functionals/https-enable.test.ts b/packages/opentelemetry-instrumentation-http/test/functionals/https-enable.test.ts index 811daa3a17..abf479f18a 100644 --- a/packages/opentelemetry-instrumentation-http/test/functionals/https-enable.test.ts +++ b/packages/opentelemetry-instrumentation-http/test/functionals/https-enable.test.ts @@ -20,8 +20,8 @@ import { propagation, Span as ISpan, SpanKind, - NoopLogger, setSpan, + getLogger, } from '@opentelemetry/api'; import { AsyncHooksContextManager } from '@opentelemetry/context-async-hooks'; import { ContextManager } from '@opentelemetry/context-base'; @@ -44,7 +44,7 @@ import { assertSpan } from '../utils/assertSpan'; import { DummyPropagation } from '../utils/DummyPropagation'; import { isWrapped } from '@opentelemetry/instrumentation'; -const logger = new NoopLogger(); +const logger = getLogger(); const instrumentation = new HttpInstrumentation({ logger }); instrumentation.enable(); instrumentation.disable(); diff --git a/packages/opentelemetry-instrumentation-http/test/functionals/https-package.test.ts b/packages/opentelemetry-instrumentation-http/test/functionals/https-package.test.ts index c2779afa28..619cbb2d53 100644 --- a/packages/opentelemetry-instrumentation-http/test/functionals/https-package.test.ts +++ b/packages/opentelemetry-instrumentation-http/test/functionals/https-package.test.ts @@ -18,8 +18,8 @@ import { context, SpanKind, propagation, - NoopLogger, Span, + getLogger, } from '@opentelemetry/api'; import { AsyncHooksContextManager } from '@opentelemetry/context-async-hooks'; import { NodeTracerProvider } from '@opentelemetry/node'; @@ -34,7 +34,7 @@ import { HttpInstrumentation } from '../../src/http'; import { assertSpan } from '../utils/assertSpan'; import { DummyPropagation } from '../utils/DummyPropagation'; -const logger = new NoopLogger(); +const logger = getLogger(); const instrumentation = new HttpInstrumentation({ logger }); instrumentation.enable(); instrumentation.disable(); @@ -61,7 +61,7 @@ describe('Packages', () => { context.disable(); }); describe('get', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger, diff --git a/packages/opentelemetry-instrumentation-http/test/functionals/utils.test.ts b/packages/opentelemetry-instrumentation-http/test/functionals/utils.test.ts index da59b4ea0a..5a14933446 100644 --- a/packages/opentelemetry-instrumentation-http/test/functionals/utils.test.ts +++ b/packages/opentelemetry-instrumentation-http/test/functionals/utils.test.ts @@ -19,7 +19,7 @@ import { ROOT_CONTEXT, SpanKind, TraceFlags, - NoopLogger, + getLogger, } from '@opentelemetry/api'; import { BasicTracerProvider, Span } from '@opentelemetry/tracing'; import { HttpAttribute } from '@opentelemetry/semantic-conventions'; @@ -170,7 +170,7 @@ describe('Utility', () => { it('should not re-throw when function throws an exception', () => { satisfiesPatternStub.restore(); - const log = new NoopLogger(); + const log = getLogger(); const onException = (e: Error) => { log.error('error', e); }; diff --git a/packages/opentelemetry-instrumentation-http/test/integrations/http-enable.test.ts b/packages/opentelemetry-instrumentation-http/test/integrations/http-enable.test.ts index a47ef77cb8..6b4c1ae02d 100644 --- a/packages/opentelemetry-instrumentation-http/test/integrations/http-enable.test.ts +++ b/packages/opentelemetry-instrumentation-http/test/integrations/http-enable.test.ts @@ -19,7 +19,7 @@ import { Span, context, propagation, - NoopLogger, + getLogger, } from '@opentelemetry/api'; import { HttpAttribute, @@ -37,7 +37,7 @@ import { } from '@opentelemetry/tracing'; import { AsyncHooksContextManager } from '@opentelemetry/context-async-hooks'; -const logger = new NoopLogger(); +const logger = getLogger(); const instrumentation = new HttpInstrumentation({ logger }); instrumentation.enable(); instrumentation.disable(); @@ -128,7 +128,7 @@ describe('HttpInstrumentation Integration tests', () => { }); }); - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger, }); diff --git a/packages/opentelemetry-instrumentation-http/test/integrations/https-enable.test.ts b/packages/opentelemetry-instrumentation-http/test/integrations/https-enable.test.ts index 8779f2d6b5..a892a51ddb 100644 --- a/packages/opentelemetry-instrumentation-http/test/integrations/https-enable.test.ts +++ b/packages/opentelemetry-instrumentation-http/test/integrations/https-enable.test.ts @@ -19,7 +19,7 @@ import { Span, context, propagation, - NoopLogger, + getLogger, } from '@opentelemetry/api'; import { HttpAttribute, @@ -41,7 +41,7 @@ import { import { AsyncHooksContextManager } from '@opentelemetry/context-async-hooks'; import { HttpInstrumentation } from '../../src'; -const logger = new NoopLogger(); +const logger = getLogger(); const instrumentation = new HttpInstrumentation({ logger }); instrumentation.enable(); instrumentation.disable(); @@ -136,7 +136,7 @@ describe('HttpsInstrumentation Integration tests', () => { done(); }); }); - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger, }); diff --git a/packages/opentelemetry-instrumentation/src/autoLoader.ts b/packages/opentelemetry-instrumentation/src/autoLoader.ts index aecef78c99..ec22743504 100644 --- a/packages/opentelemetry-instrumentation/src/autoLoader.ts +++ b/packages/opentelemetry-instrumentation/src/autoLoader.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as api from '@opentelemetry/api'; +import { Logger, trace, getLogger } from '@opentelemetry/api'; import { metrics } from '@opentelemetry/api-metrics'; import { disableInstrumentations, @@ -39,13 +39,11 @@ export function registerInstrumentations( pluginsWeb, } = parseInstrumentationOptions(options.instrumentations); const tracerWithLogger = (options.tracerProvider as unknown) as { - logger: api.Logger; + logger: Logger; }; - const tracerProvider = - options.tracerProvider || api.trace.getTracerProvider(); + const tracerProvider = options.tracerProvider || trace.getTracerProvider(); const meterProvider = options.meterProvider || metrics.getMeterProvider(); - const logger = - options.logger || tracerWithLogger?.logger || new api.NoopLogger(); + const logger = getLogger(options.logger || tracerWithLogger?.logger); enableInstrumentations( instrumentations, diff --git a/packages/opentelemetry-instrumentation/src/instrumentation.ts b/packages/opentelemetry-instrumentation/src/instrumentation.ts index 080a6a94ee..3384e3420e 100644 --- a/packages/opentelemetry-instrumentation/src/instrumentation.ts +++ b/packages/opentelemetry-instrumentation/src/instrumentation.ts @@ -14,7 +14,13 @@ * limitations under the License. */ -import * as api from '@opentelemetry/api'; +import { + trace, + Tracer, + TracerProvider, + Logger, + getLogger, +} from '@opentelemetry/api'; import { Meter, MeterProvider, metrics } from '@opentelemetry/api-metrics'; import * as shimmer from 'shimmer'; import { InstrumentationModuleDefinition } from './platform/node'; @@ -27,9 +33,9 @@ export abstract class InstrumentationAbstract implements types.Instrumentation { protected _config: types.InstrumentationConfig; - private _tracer: api.Tracer; + private _tracer: Tracer; private _meter: Meter; - protected _logger: api.Logger; + protected _logger: Logger; constructor( public readonly instrumentationName: string, @@ -40,12 +46,9 @@ export abstract class InstrumentationAbstract enabled: true, ...config, }; - this._logger = this._config.logger || new api.NoopLogger(); + this._logger = getLogger(this._config.logger); - this._tracer = api.trace.getTracer( - instrumentationName, - instrumentationVersion - ); + this._tracer = trace.getTracer(instrumentationName, instrumentationVersion); this._meter = metrics.getMeter(instrumentationName, instrumentationVersion); } @@ -79,7 +82,7 @@ export abstract class InstrumentationAbstract * Sets TraceProvider to this plugin * @param tracerProvider */ - public setTracerProvider(tracerProvider: api.TracerProvider) { + public setTracerProvider(tracerProvider: TracerProvider) { this._tracer = tracerProvider.getTracer( this.instrumentationName, this.instrumentationVersion @@ -87,7 +90,7 @@ export abstract class InstrumentationAbstract } /* Returns tracer */ - protected get tracer(): api.Tracer { + protected get tracer(): Tracer { return this._tracer; } diff --git a/packages/opentelemetry-instrumentation/test/node/PluginLoader.test.ts b/packages/opentelemetry-instrumentation/test/node/PluginLoader.test.ts index 6407f15029..0274f47091 100644 --- a/packages/opentelemetry-instrumentation/test/node/PluginLoader.test.ts +++ b/packages/opentelemetry-instrumentation/test/node/PluginLoader.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger, NoopTracerProvider } from '@opentelemetry/api'; +import { NoopTracerProvider, getLogger } from '@opentelemetry/api'; import * as assert from 'assert'; import * as path from 'path'; import { @@ -102,7 +102,7 @@ const differentNamePlugins: Plugins = { describe('PluginLoader', () => { const provider = new NoopTracerProvider(); - const logger = new NoopLogger(); + const logger = getLogger(); before(() => { module.paths.push(INSTALLED_PLUGINS_PATH); diff --git a/packages/opentelemetry-instrumentation/test/node/utils.test.ts b/packages/opentelemetry-instrumentation/test/node/utils.test.ts index 273c98e2dc..6ce8991ac4 100644 --- a/packages/opentelemetry-instrumentation/test/node/utils.test.ts +++ b/packages/opentelemetry-instrumentation/test/node/utils.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import * as assert from 'assert'; import * as path from 'path'; import * as utils from '../../src/platform/node/old/utils'; @@ -36,7 +36,7 @@ const TEST_MODULES: Array<{ name: string; version: string | null }> = [ ]; describe('Instrumentation#utils', () => { - const logger = new NoopLogger(); + const logger = getLogger(); before(() => { utils.searchPathForTest(INSTALLED_PLUGINS_PATH); diff --git a/packages/opentelemetry-metrics/src/BatchObserver.ts b/packages/opentelemetry-metrics/src/BatchObserver.ts index 531b152e0e..0650a0d1bb 100644 --- a/packages/opentelemetry-metrics/src/BatchObserver.ts +++ b/packages/opentelemetry-metrics/src/BatchObserver.ts @@ -15,7 +15,7 @@ */ import * as api from '@opentelemetry/api-metrics'; -import { Logger, NoopLogger } from '@opentelemetry/api'; +import { Logger, getLogger } from '@opentelemetry/api'; import { BatchObserverResult } from './BatchObserverResult'; import { MetricRecord } from './export/types'; @@ -32,7 +32,7 @@ export class BatchObserver { options: api.BatchObserverOptions, callback?: (observerResult: api.BatchObserverResult) => void ) { - this._logger = options.logger ?? new NoopLogger(); + this._logger = getLogger(options.logger); this._maxTimeoutUpdateMS = options.maxTimeoutUpdateMS ?? MAX_TIMEOUT_UPDATE_MS; this._callback = callback || NOOP_CALLBACK; diff --git a/packages/opentelemetry-metrics/src/Metric.ts b/packages/opentelemetry-metrics/src/Metric.ts index cc88f369d5..605666f6f2 100644 --- a/packages/opentelemetry-metrics/src/Metric.ts +++ b/packages/opentelemetry-metrics/src/Metric.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Logger, NoopLogger } from '@opentelemetry/api'; +import { Logger, getLogger } from '@opentelemetry/api'; import * as api from '@opentelemetry/api-metrics'; import { InstrumentationLibrary } from '@opentelemetry/core'; import { Resource } from '@opentelemetry/resources'; @@ -43,7 +43,7 @@ export abstract class Metric typeof _options.valueType === 'number' ? _options.valueType : api.ValueType.DOUBLE; - this._logger = _options.logger ?? new NoopLogger(); + this._logger = getLogger(_options.logger); this._boundaries = _options.boundaries; this._descriptor = this._getMetricDescriptor(); } diff --git a/packages/opentelemetry-metrics/test/Meter.test.ts b/packages/opentelemetry-metrics/test/Meter.test.ts index 1430fd59d6..fd6c4868da 100644 --- a/packages/opentelemetry-metrics/test/Meter.test.ts +++ b/packages/opentelemetry-metrics/test/Meter.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import * as api from '@opentelemetry/api-metrics'; import { hrTime, hrTimeToNanoseconds } from '@opentelemetry/core'; import { Resource } from '@opentelemetry/resources'; @@ -81,7 +81,7 @@ describe('Meter', () => { beforeEach(() => { meter = new MeterProvider({ - logger: new NoopLogger(), + logger: getLogger(), }).getMeter('test-meter'); }); diff --git a/packages/opentelemetry-metrics/test/MeterProvider.test.ts b/packages/opentelemetry-metrics/test/MeterProvider.test.ts index 426ceebd96..b3cabd5409 100644 --- a/packages/opentelemetry-metrics/test/MeterProvider.test.ts +++ b/packages/opentelemetry-metrics/test/MeterProvider.test.ts @@ -17,7 +17,7 @@ import * as assert from 'assert'; import * as sinon from 'sinon'; import { MeterProvider, Meter, CounterMetric } from '../src'; -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; describe('MeterProvider', () => { describe('constructor', () => { @@ -28,7 +28,7 @@ describe('MeterProvider', () => { it('should construct an instance with logger', () => { const provider = new MeterProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); assert.ok(provider instanceof MeterProvider); }); diff --git a/packages/opentelemetry-metrics/test/Processor.test.ts b/packages/opentelemetry-metrics/test/Processor.test.ts index a766a93a14..05df32e05a 100644 --- a/packages/opentelemetry-metrics/test/Processor.test.ts +++ b/packages/opentelemetry-metrics/test/Processor.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import * as api from '@opentelemetry/api-metrics'; import * as assert from 'assert'; import { Meter, MeterProvider } from '../src'; @@ -27,7 +27,7 @@ describe('Processor', () => { let counter: api.Counter; beforeEach(() => { meter = new MeterProvider({ - logger: new NoopLogger(), + logger: getLogger(), interval: 10000, }).getMeter('test-meter'); counter = meter.createCounter('ungrouped-processor-test'); diff --git a/packages/opentelemetry-node/test/NodeTracerProvider.test.ts b/packages/opentelemetry-node/test/NodeTracerProvider.test.ts index 851091b0ac..9481c493bf 100644 --- a/packages/opentelemetry-node/test/NodeTracerProvider.test.ts +++ b/packages/opentelemetry-node/test/NodeTracerProvider.test.ts @@ -17,10 +17,10 @@ import { context, TraceFlags, - NoopLogger, setSpan, setSpanContext, getSpan, + getLogger, } from '@opentelemetry/api'; import { AlwaysOnSampler, @@ -74,7 +74,7 @@ describe('NodeTracerProvider', () => { it('should construct an instance with logger', () => { provider = new NodeTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); assert.ok(provider instanceof NodeTracerProvider); }); @@ -88,7 +88,7 @@ describe('NodeTracerProvider', () => { it('should load a merge of user configured and default plugins and implictly enable non-default plugins', () => { provider = new NodeTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), plugins: { 'simple-module': { path: '@opentelemetry/plugin-simple-module', @@ -124,7 +124,7 @@ describe('NodeTracerProvider', () => { describe('.startSpan()', () => { it('should start a span with name only', () => { provider = new NodeTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); const span = provider.getTracer('default').startSpan('my-span'); assert.ok(span); @@ -132,7 +132,7 @@ describe('NodeTracerProvider', () => { it('should start a span with name and options', () => { provider = new NodeTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); const span = provider.getTracer('default').startSpan('my-span', {}); assert.ok(span); @@ -141,7 +141,7 @@ describe('NodeTracerProvider', () => { it('should return a default span with no sampling (AlwaysOffSampler)', () => { provider = new NodeTracerProvider({ sampler: new AlwaysOffSampler(), - logger: new NoopLogger(), + logger: getLogger(), }); const span = provider.getTracer('default').startSpan('my-span'); assert.ok(span instanceof NoRecordingSpan); @@ -152,7 +152,7 @@ describe('NodeTracerProvider', () => { it('should start a recording span with always sampling (AlwaysOnSampler)', () => { provider = new NodeTracerProvider({ sampler: new AlwaysOnSampler(), - logger: new NoopLogger(), + logger: getLogger(), }); const span = provider.getTracer('default').startSpan('my-span'); assert.ok(span instanceof Span); @@ -163,7 +163,7 @@ describe('NodeTracerProvider', () => { it('should sample with AlwaysOnSampler if parent was not sampled', () => { provider = new NodeTracerProvider({ sampler: new AlwaysOnSampler(), - logger: new NoopLogger(), + logger: getLogger(), }); const sampledParent = provider.getTracer('default').startSpan( @@ -192,7 +192,7 @@ describe('NodeTracerProvider', () => { it('should assign resource to span', () => { provider = new NodeTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); const span = provider.getTracer('default').startSpan('my-span') as Span; assert.ok(span); diff --git a/packages/opentelemetry-node/test/instrumentation/PluginLoader.test.ts b/packages/opentelemetry-node/test/instrumentation/PluginLoader.test.ts index 3efef3f0f9..66fc5d60ac 100644 --- a/packages/opentelemetry-node/test/instrumentation/PluginLoader.test.ts +++ b/packages/opentelemetry-node/test/instrumentation/PluginLoader.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopTracerProvider, NoopLogger } from '@opentelemetry/api'; +import { NoopTracerProvider, getLogger } from '@opentelemetry/api'; import * as assert from 'assert'; import * as path from 'path'; import { @@ -101,7 +101,7 @@ const differentNamePlugins: Plugins = { describe('PluginLoader', () => { const provider = new NoopTracerProvider(); - const logger = new NoopLogger(); + const logger = getLogger(); before(() => { module.paths.push(INSTALLED_PLUGINS_PATH); diff --git a/packages/opentelemetry-node/test/instrumentation/utils.test.ts b/packages/opentelemetry-node/test/instrumentation/utils.test.ts index 06ccdd12e0..6c1f88c510 100644 --- a/packages/opentelemetry-node/test/instrumentation/utils.test.ts +++ b/packages/opentelemetry-node/test/instrumentation/utils.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import * as assert from 'assert'; import * as path from 'path'; import * as utils from '../../src/instrumentation/utils'; @@ -36,7 +36,7 @@ const TEST_MODULES: Array<{ name: string; version: string | null }> = [ ]; describe('Instrumentation#utils', () => { - const logger = new NoopLogger(); + const logger = getLogger(); before(() => { utils.searchPathForTest(INSTALLED_PLUGINS_PATH); diff --git a/packages/opentelemetry-plugin-http/test/functionals/http-disable.test.ts b/packages/opentelemetry-plugin-http/test/functionals/http-disable.test.ts index 9ed917b509..7c9bdb797b 100644 --- a/packages/opentelemetry-plugin-http/test/functionals/http-disable.test.ts +++ b/packages/opentelemetry-plugin-http/test/functionals/http-disable.test.ts @@ -13,11 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { - NoopTracerProvider, - NoopLogger, - NOOP_TRACER, -} from '@opentelemetry/api'; +import { NoopTracerProvider, NOOP_TRACER, getLogger } from '@opentelemetry/api'; import * as assert from 'assert'; import * as http from 'http'; import { AddressInfo } from 'net'; @@ -31,7 +27,7 @@ describe('HttpPlugin', () => { let serverPort = 0; describe('disable()', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NoopTracerProvider(); before(() => { nock.cleanAll(); diff --git a/packages/opentelemetry-plugin-http/test/functionals/http-enable.test.ts b/packages/opentelemetry-plugin-http/test/functionals/http-enable.test.ts index b34816f76a..8bd5a4533d 100644 --- a/packages/opentelemetry-plugin-http/test/functionals/http-enable.test.ts +++ b/packages/opentelemetry-plugin-http/test/functionals/http-enable.test.ts @@ -19,9 +19,9 @@ import { propagation, Span as ISpan, SpanKind, - NoopLogger, getSpan, setSpan, + getLogger, } from '@opentelemetry/api'; import { NodeTracerProvider } from '@opentelemetry/node'; import { @@ -55,7 +55,7 @@ const hostname = 'localhost'; const pathname = '/test'; const serverName = 'my.server.name'; const memoryExporter = new InMemorySpanExporter(); -const logger = new NoopLogger(); +const logger = getLogger(); const provider = new NodeTracerProvider({ logger, }); diff --git a/packages/opentelemetry-plugin-http/test/functionals/http-package.test.ts b/packages/opentelemetry-plugin-http/test/functionals/http-package.test.ts index 85396d33b0..1eca905ac9 100644 --- a/packages/opentelemetry-plugin-http/test/functionals/http-package.test.ts +++ b/packages/opentelemetry-plugin-http/test/functionals/http-package.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { context, SpanKind, NoopLogger } from '@opentelemetry/api'; +import { context, SpanKind, getLogger } from '@opentelemetry/api'; import { AsyncHooksContextManager } from '@opentelemetry/context-async-hooks'; import { NodeTracerProvider } from '@opentelemetry/node'; import { @@ -90,7 +90,7 @@ describe('Packages', () => { context.disable(); }); describe('get', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger, }); diff --git a/packages/opentelemetry-plugin-http/test/functionals/utils.test.ts b/packages/opentelemetry-plugin-http/test/functionals/utils.test.ts index c145413e9a..d7991a9858 100644 --- a/packages/opentelemetry-plugin-http/test/functionals/utils.test.ts +++ b/packages/opentelemetry-plugin-http/test/functionals/utils.test.ts @@ -19,7 +19,7 @@ import { ROOT_CONTEXT, SpanKind, TraceFlags, - NoopLogger, + getLogger, } from '@opentelemetry/api'; import { BasicTracerProvider, Span } from '@opentelemetry/tracing'; import { HttpAttribute } from '@opentelemetry/semantic-conventions'; @@ -170,7 +170,7 @@ describe('Utility', () => { it('should not re-throw when function throws an exception', () => { satisfiesPatternStub.restore(); - const log = new NoopLogger(); + const log = getLogger(); const onException = (e: Error) => { log.error('error', e); }; diff --git a/packages/opentelemetry-plugin-http/test/integrations/http-enable.test.ts b/packages/opentelemetry-plugin-http/test/integrations/http-enable.test.ts index 9552c2a97c..3f929ae64a 100644 --- a/packages/opentelemetry-plugin-http/test/integrations/http-enable.test.ts +++ b/packages/opentelemetry-plugin-http/test/integrations/http-enable.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { SpanKind, Span, context, NoopLogger } from '@opentelemetry/api'; +import { SpanKind, Span, context, getLogger } from '@opentelemetry/api'; import { HttpAttribute, GeneralAttribute, @@ -111,7 +111,7 @@ describe('HttpPlugin Integration tests', () => { }); }); - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger, }); diff --git a/packages/opentelemetry-plugin-https/test/functionals/https-disable.test.ts b/packages/opentelemetry-plugin-https/test/functionals/https-disable.test.ts index 01b9b71900..c656ea081a 100644 --- a/packages/opentelemetry-plugin-https/test/functionals/https-disable.test.ts +++ b/packages/opentelemetry-plugin-https/test/functionals/https-disable.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { NoopLogger } from '@opentelemetry/api'; +import { Tracer, getLogger } from '@opentelemetry/api'; import { Http } from '@opentelemetry/plugin-http'; import * as assert from 'assert'; import * as fs from 'fs'; @@ -25,19 +25,18 @@ import * as sinon from 'sinon'; import { plugin } from '../../src/https'; import { httpsRequest } from '../utils/httpsRequest'; import { NodeTracerProvider } from '@opentelemetry/node'; -import * as api from '@opentelemetry/api'; describe('HttpsPlugin', () => { let server: https.Server; let serverPort = 0; describe('disable()', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger, }); // const tracer = provider.getTracer('test-https') - let tracer: api.Tracer; + let tracer: Tracer; before(() => { nock.cleanAll(); nock.enableNetConnect(); diff --git a/packages/opentelemetry-plugin-https/test/functionals/https-enable.test.ts b/packages/opentelemetry-plugin-https/test/functionals/https-enable.test.ts index 4123a046a6..208645650a 100644 --- a/packages/opentelemetry-plugin-https/test/functionals/https-enable.test.ts +++ b/packages/opentelemetry-plugin-https/test/functionals/https-enable.test.ts @@ -20,8 +20,8 @@ import { propagation, Span as ISpan, SpanKind, - NoopLogger, setSpan, + getLogger, } from '@opentelemetry/api'; import { NodeTracerProvider } from '@opentelemetry/node'; import { Http, HttpPluginConfig } from '@opentelemetry/plugin-http'; @@ -56,7 +56,7 @@ const hostname = 'localhost'; const serverName = 'my.server.name'; const pathname = '/test'; const memoryExporter = new InMemorySpanExporter(); -const logger = new NoopLogger(); +const logger = getLogger(); const provider = new NodeTracerProvider({ logger, }); diff --git a/packages/opentelemetry-plugin-https/test/functionals/https-package.test.ts b/packages/opentelemetry-plugin-https/test/functionals/https-package.test.ts index 8fed01b8fe..3a661c5007 100644 --- a/packages/opentelemetry-plugin-https/test/functionals/https-package.test.ts +++ b/packages/opentelemetry-plugin-https/test/functionals/https-package.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { context, Span, SpanKind, NoopLogger } from '@opentelemetry/api'; +import { context, Span, SpanKind, getLogger } from '@opentelemetry/api'; import { AsyncHooksContextManager } from '@opentelemetry/context-async-hooks'; import { NodeTracerProvider } from '@opentelemetry/node'; import { Http } from '@opentelemetry/plugin-http'; @@ -105,7 +105,7 @@ describe('Packages', () => { context.disable(); }); describe('get', () => { - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger, diff --git a/packages/opentelemetry-plugin-https/test/integrations/https-enable.test.ts b/packages/opentelemetry-plugin-https/test/integrations/https-enable.test.ts index 74a3bbea16..51dff02b2a 100644 --- a/packages/opentelemetry-plugin-https/test/integrations/https-enable.test.ts +++ b/packages/opentelemetry-plugin-https/test/integrations/https-enable.test.ts @@ -15,7 +15,7 @@ */ import { HttpPluginConfig, Http } from '@opentelemetry/plugin-http'; -import { SpanKind, Span, context, NoopLogger } from '@opentelemetry/api'; +import { SpanKind, Span, context, getLogger } from '@opentelemetry/api'; import { HttpAttribute, GeneralAttribute, @@ -125,7 +125,7 @@ describe('HttpsPlugin Integration tests', () => { done(); }); }); - const logger = new NoopLogger(); + const logger = getLogger(); const provider = new NodeTracerProvider({ logger, }); diff --git a/packages/opentelemetry-resource-detector-aws/test/detectors/AwsBeanstalkDetector.test.ts b/packages/opentelemetry-resource-detector-aws/test/detectors/AwsBeanstalkDetector.test.ts index f132a8015c..fa932c53fc 100644 --- a/packages/opentelemetry-resource-detector-aws/test/detectors/AwsBeanstalkDetector.test.ts +++ b/packages/opentelemetry-resource-detector-aws/test/detectors/AwsBeanstalkDetector.test.ts @@ -21,7 +21,7 @@ import { assertEmptyResource, assertServiceResource, } from '@opentelemetry/resources/test/util/resource-assertions'; -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; describe('BeanstalkResourceDetector', () => { const err = new Error('failed to read config file'); @@ -58,7 +58,7 @@ describe('BeanstalkResourceDetector', () => { sandbox.stub(JSON, 'parse').returns(data); const resource = await awsBeanstalkDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.calledOnce(fileStub); @@ -82,7 +82,7 @@ describe('BeanstalkResourceDetector', () => { sandbox.stub(JSON, 'parse').returns(noisyData); const resource = await awsBeanstalkDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.calledOnce(fileStub); @@ -105,7 +105,7 @@ describe('BeanstalkResourceDetector', () => { .rejects(err); const resource = await awsBeanstalkDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.calledOnce(fileStub); @@ -123,7 +123,7 @@ describe('BeanstalkResourceDetector', () => { .resolves(JSON.stringify(data)); const resource = await awsBeanstalkDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.calledOnce(fileStub); diff --git a/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEc2Detector.test.ts b/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEc2Detector.test.ts index 340328551b..d424adc050 100644 --- a/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEc2Detector.test.ts +++ b/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEc2Detector.test.ts @@ -22,7 +22,7 @@ import { assertCloudResource, assertHostResource, } from '@opentelemetry/resources/test/util/resource-assertions'; -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; const AWS_HOST = 'http://' + awsEc2Detector.AWS_IDMS_ENDPOINT; const AWS_TOKEN_PATH = awsEc2Detector.AWS_INSTANCE_TOKEN_DOCUMENT_PATH; @@ -66,7 +66,7 @@ describe('awsEc2Detector', () => { .reply(200, () => mockedHostResponse); const resource: Resource = await awsEc2Detector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); scope.done(); @@ -104,7 +104,7 @@ describe('awsEc2Detector', () => { try { await awsEc2Detector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); assert.ok(false, 'Expected to throw'); } catch (err) { @@ -130,7 +130,7 @@ describe('awsEc2Detector', () => { try { await awsEc2Detector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); assert.ok(false, 'Expected to throw'); } catch (err) { @@ -152,7 +152,7 @@ describe('awsEc2Detector', () => { try { await awsEc2Detector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); assert.ok(false, 'Expected to throw'); } catch (err) { diff --git a/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEcsDetector.test.ts b/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEcsDetector.test.ts index 8dd102bb7e..8297ea2f9f 100644 --- a/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEcsDetector.test.ts +++ b/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEcsDetector.test.ts @@ -24,7 +24,7 @@ import { assertEmptyResource, assertContainerResource, } from '@opentelemetry/resources/test/util/resource-assertions'; -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import * as os from 'os'; describe('BeanstalkResourceDetector', () => { @@ -61,7 +61,7 @@ describe('BeanstalkResourceDetector', () => { .resolves(correctCgroupData); const resource = await awsEcsDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.calledOnce(readStub); @@ -80,7 +80,7 @@ describe('BeanstalkResourceDetector', () => { .resolves(noisyCgroupData); const resource = await awsEcsDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.calledOnce(readStub); @@ -99,7 +99,7 @@ describe('BeanstalkResourceDetector', () => { .resolves(multiValidCgroupData); const resource = await awsEcsDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.calledOnce(readStub); @@ -117,7 +117,7 @@ describe('BeanstalkResourceDetector', () => { .resolves(correctCgroupData); const resource = await awsEcsDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.notCalled(readStub); @@ -133,7 +133,7 @@ describe('BeanstalkResourceDetector', () => { .rejects(errorMsg.fileNotFoundError); const resource = await awsEcsDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.calledOnce(readStub); @@ -151,7 +151,7 @@ describe('BeanstalkResourceDetector', () => { .resolves(''); const resource = await awsEcsDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.calledOnce(readStub); @@ -169,7 +169,7 @@ describe('BeanstalkResourceDetector', () => { .resolves(correctCgroupData); const resource = await awsEcsDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.calledOnce(readStub); @@ -187,7 +187,7 @@ describe('BeanstalkResourceDetector', () => { .rejects(errorMsg.fileNotFoundError); const resource = await awsEcsDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); sandbox.assert.calledOnce(readStub); diff --git a/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEksDetector.test.ts b/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEksDetector.test.ts index 7356240bc3..bf96b0dda1 100644 --- a/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEksDetector.test.ts +++ b/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEksDetector.test.ts @@ -24,7 +24,7 @@ import { assertContainerResource, assertEmptyResource, } from '@opentelemetry/resources/test/util/resource-assertions'; -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; const K8S_SVC_URL = awsEksDetector.K8S_SVC_URL; const AUTH_CONFIGMAP_PATH = awsEksDetector.AUTH_CONFIGMAP_PATH; @@ -75,7 +75,7 @@ describe('awsEksDetector', () => { .reply(200, () => mockedClusterResponse); const resource: Resource = await awsEksDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); scope.done(); @@ -114,7 +114,7 @@ describe('awsEksDetector', () => { .reply(200, () => mockedClusterResponse); const resource: Resource = await awsEksDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); scope.done(); @@ -145,7 +145,7 @@ describe('awsEksDetector', () => { .reply(200, () => ''); const resource: Resource = await awsEksDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); scope.done(); @@ -177,7 +177,7 @@ describe('awsEksDetector', () => { .reply(200, () => mockedClusterResponse); const resource: Resource = await awsEksDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); scope.done(); @@ -206,7 +206,7 @@ describe('awsEksDetector', () => { .reply(200, () => ''); const resource: Resource = await awsEksDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); scope.done(); @@ -224,7 +224,7 @@ describe('awsEksDetector', () => { .rejects(errorMsg.fileNotFoundError); const resource: Resource = await awsEksDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); assert.ok(resource); @@ -253,7 +253,7 @@ describe('awsEksDetector', () => { .reply(200, () => ''); const resource: Resource = await awsEksDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); scope.isDone(); @@ -284,7 +284,7 @@ describe('awsEksDetector', () => { try { await awsEksDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); } catch (err) { assert.deepStrictEqual(err, expectedError); @@ -312,7 +312,7 @@ describe('awsEksDetector', () => { try { await awsEksDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); } catch (err) { assert.deepStrictEqual(err, expectedError); diff --git a/packages/opentelemetry-resource-detector-gcp/test/detectors/GcpDetector.test.ts b/packages/opentelemetry-resource-detector-gcp/test/detectors/GcpDetector.test.ts index f64e684d08..ab73b88548 100644 --- a/packages/opentelemetry-resource-detector-gcp/test/detectors/GcpDetector.test.ts +++ b/packages/opentelemetry-resource-detector-gcp/test/detectors/GcpDetector.test.ts @@ -32,7 +32,7 @@ import { assertContainerResource, assertEmptyResource, } from '@opentelemetry/resources/test/util/resource-assertions'; -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; import { Resource } from '@opentelemetry/resources'; const HEADERS = { @@ -85,7 +85,7 @@ const CLUSTER_NAME_PATH = BASE_PATH + '/instance/attributes/cluster-name'; .get(INSTANCE_PATH) .reply(200, {}, HEADERS); const resource: Resource = await gcpDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); secondaryScope.done(); scope.done(); @@ -117,7 +117,7 @@ const CLUSTER_NAME_PATH = BASE_PATH + '/instance/attributes/cluster-name'; const secondaryScope = nock(SECONDARY_HOST_ADDRESS) .get(INSTANCE_PATH) .reply(200, {}, HEADERS); - const resource = await gcpDetector.detect({ logger: new NoopLogger() }); + const resource = await gcpDetector.detect({ logger: getLogger() }); secondaryScope.done(); scope.done(); @@ -149,7 +149,7 @@ const CLUSTER_NAME_PATH = BASE_PATH + '/instance/attributes/cluster-name'; const secondaryScope = nock(SECONDARY_HOST_ADDRESS) .get(INSTANCE_PATH) .reply(200, {}, HEADERS); - const resource = await gcpDetector.detect({ logger: new NoopLogger() }); + const resource = await gcpDetector.detect({ logger: getLogger() }); secondaryScope.done(); scope.done(); @@ -161,7 +161,7 @@ const CLUSTER_NAME_PATH = BASE_PATH + '/instance/attributes/cluster-name'; }); it('returns empty resource if not detected', async () => { - const resource = await gcpDetector.detect({ logger: new NoopLogger() }); + const resource = await gcpDetector.detect({ logger: getLogger() }); assertEmptyResource(resource); }); }); diff --git a/packages/opentelemetry-resources/src/platform/node/detect-resources.ts b/packages/opentelemetry-resources/src/platform/node/detect-resources.ts index cb29dc7c40..a239551282 100644 --- a/packages/opentelemetry-resources/src/platform/node/detect-resources.ts +++ b/packages/opentelemetry-resources/src/platform/node/detect-resources.ts @@ -19,7 +19,7 @@ import { ResourceDetectionConfig, ResourceDetectionConfigWithLogger, } from '../../config'; -import { Logger, NoopLogger } from '@opentelemetry/api'; +import { Logger, getLogger } from '@opentelemetry/api'; import * as util from 'util'; /** @@ -33,7 +33,7 @@ export const detectResources = async ( ): Promise => { const internalConfig: ResourceDetectionConfigWithLogger = Object.assign( { - logger: new NoopLogger(), + logger: getLogger(), }, config ); diff --git a/packages/opentelemetry-resources/test/detectors/EnvDetector.test.ts b/packages/opentelemetry-resources/test/detectors/EnvDetector.test.ts index c2056d0031..6b4f872238 100644 --- a/packages/opentelemetry-resources/test/detectors/EnvDetector.test.ts +++ b/packages/opentelemetry-resources/test/detectors/EnvDetector.test.ts @@ -19,7 +19,7 @@ import { assertK8sResource, assertEmptyResource, } from '../util/resource-assertions'; -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; describe('envDetector()', () => { describe('with valid env', () => { @@ -34,7 +34,7 @@ describe('envDetector()', () => { it('should return resource information from environment variable', async () => { const resource: Resource = await envDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); assertK8sResource(resource, { [K8S_RESOURCE.POD_NAME]: 'pod-xyz-123', @@ -47,7 +47,7 @@ describe('envDetector()', () => { describe('with empty env', () => { it('should return empty resource', async () => { const resource: Resource = await envDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); assertEmptyResource(resource); }); diff --git a/packages/opentelemetry-resources/test/detectors/ProcessDetector.test.ts b/packages/opentelemetry-resources/test/detectors/ProcessDetector.test.ts index c4f8ce9569..4af4611d6c 100644 --- a/packages/opentelemetry-resources/test/detectors/ProcessDetector.test.ts +++ b/packages/opentelemetry-resources/test/detectors/ProcessDetector.test.ts @@ -19,7 +19,7 @@ import { assertProcessResource, assertEmptyResource, } from '../util/resource-assertions'; -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; describe('processDetector()', () => { let sandbox: sinon.SinonSandbox; @@ -40,7 +40,7 @@ describe('processDetector()', () => { .value(['/tmp/node', '/home/ot/test.js', 'arg1', 'arg2']); const resource: Resource = await processDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); assertProcessResource(resource, { pid: 1234, @@ -54,7 +54,7 @@ describe('processDetector()', () => { sandbox.stub(process, 'title').value(undefined); sandbox.stub(process, 'argv').value([]); const resource: Resource = await processDetector.detect({ - logger: new NoopLogger(), + logger: getLogger(), }); assertEmptyResource(resource); }); diff --git a/packages/opentelemetry-shim-opentracing/src/shim.ts b/packages/opentelemetry-shim-opentracing/src/shim.ts index c6b41c9a9b..6bfb25422b 100644 --- a/packages/opentelemetry-shim-opentracing/src/shim.ts +++ b/packages/opentelemetry-shim-opentracing/src/shim.ts @@ -125,7 +125,7 @@ export class TracerShim extends opentracing.Tracer { super(); this._tracer = tracer; - this._logger = logger || new api.NoopLogger(); + this._logger = api.getLogger(logger); } startSpan( diff --git a/packages/opentelemetry-tracing/test/BasicTracerProvider.test.ts b/packages/opentelemetry-tracing/test/BasicTracerProvider.test.ts index 91e3332008..adda5ce219 100644 --- a/packages/opentelemetry-tracing/test/BasicTracerProvider.test.ts +++ b/packages/opentelemetry-tracing/test/BasicTracerProvider.test.ts @@ -19,10 +19,10 @@ import { SpanContext, TraceFlags, ROOT_CONTEXT, - NoopLogger, setSpan, setSpanContext, getSpan, + getLogger, } from '@opentelemetry/api'; import { AlwaysOnSampler, @@ -60,7 +60,7 @@ describe('BasicTracerProvider', () => { it('should construct an instance with logger', () => { const provider = new BasicTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); assert.ok(provider instanceof BasicTracerProvider); }); @@ -261,7 +261,7 @@ describe('BasicTracerProvider', () => { it('should return a no recording span when never sampling', () => { const tracer = new BasicTracerProvider({ sampler: new AlwaysOffSampler(), - logger: new NoopLogger(), + logger: getLogger(), }).getTracer('default'); const span = tracer.startSpan('my-span'); assert.ok(span instanceof NoRecordingSpan); diff --git a/packages/opentelemetry-tracing/test/Span.test.ts b/packages/opentelemetry-tracing/test/Span.test.ts index 3cc5ce0c4e..1f6d261c52 100644 --- a/packages/opentelemetry-tracing/test/Span.test.ts +++ b/packages/opentelemetry-tracing/test/Span.test.ts @@ -22,7 +22,7 @@ import { SpanContext, SpanKind, TraceFlags, - NoopLogger, + getLogger, } from '@opentelemetry/api'; import { hrTime, @@ -38,7 +38,7 @@ const performanceTimeOrigin = hrTime(); describe('Span', () => { const tracer = new BasicTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), traceParams: { numberOfAttributesPerSpan: 100, numberOfEventsPerSpan: 100, @@ -567,7 +567,7 @@ describe('Span', () => { }; const provider = new BasicTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); provider.addSpanProcessor(processor); @@ -588,7 +588,7 @@ describe('Span', () => { }; const provider = new BasicTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); provider.addSpanProcessor(processor); @@ -608,7 +608,7 @@ describe('Span', () => { }; const provider = new BasicTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); provider.addSpanProcessor(processor); diff --git a/packages/opentelemetry-tracing/test/Tracer.test.ts b/packages/opentelemetry-tracing/test/Tracer.test.ts index 288a823742..b5706a7535 100644 --- a/packages/opentelemetry-tracing/test/Tracer.test.ts +++ b/packages/opentelemetry-tracing/test/Tracer.test.ts @@ -23,7 +23,7 @@ import { TraceFlags, ROOT_CONTEXT, suppressInstrumentation, - NoopLogger, + getLogger, } from '@opentelemetry/api'; import { BasicTracerProvider, Tracer, Span } from '../src'; import { @@ -34,7 +34,7 @@ import { describe('Tracer', () => { const tracerProvider = new BasicTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); class TestSampler implements Sampler { diff --git a/packages/opentelemetry-tracing/test/export/TestTracingSpanExporter.ts b/packages/opentelemetry-tracing/test/export/TestTracingSpanExporter.ts index cff7c0e9f4..45ef15bb6a 100644 --- a/packages/opentelemetry-tracing/test/export/TestTracingSpanExporter.ts +++ b/packages/opentelemetry-tracing/test/export/TestTracingSpanExporter.ts @@ -22,7 +22,7 @@ import { SpanProcessor, } from '../../src'; import { ExportResult, AlwaysOnSampler } from '@opentelemetry/core'; -import { NoopLogger } from '@opentelemetry/api'; +import { getLogger } from '@opentelemetry/api'; /** * A test-only span exporter that naively simulates triggering instrumentation @@ -36,7 +36,7 @@ export class TestTracingSpanExporter extends InMemorySpanExporter { super(); const tracerProvider = new BasicTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); const spanProcessor: SpanProcessor = { diff --git a/packages/opentelemetry-web/test/WebTracerProvider.test.ts b/packages/opentelemetry-web/test/WebTracerProvider.test.ts index 7cf43c2767..70d3616c62 100644 --- a/packages/opentelemetry-web/test/WebTracerProvider.test.ts +++ b/packages/opentelemetry-web/test/WebTracerProvider.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { context, NoopLogger, getSpan, setSpan } from '@opentelemetry/api'; +import { context, getSpan, setSpan, getLogger } from '@opentelemetry/api'; import { ContextManager } from '@opentelemetry/context-base'; import { ZoneContextManager } from '@opentelemetry/context-zone'; import { BasePlugin } from '@opentelemetry/core'; @@ -170,7 +170,7 @@ describe('WebTracerProvider', () => { describe('.startSpan()', () => { it('should assign resource to span', () => { const provider = new WebTracerProvider({ - logger: new NoopLogger(), + logger: getLogger(), }); const span = provider.getTracer('default').startSpan('my-span') as Span; assert.ok(span);