diff --git a/packages/opentelemetry-metrics/src/MeterProvider.ts b/packages/opentelemetry-metrics/src/MeterProvider.ts index 09bd9f8e66a..e2098ab5138 100644 --- a/packages/opentelemetry-metrics/src/MeterProvider.ts +++ b/packages/opentelemetry-metrics/src/MeterProvider.ts @@ -24,12 +24,15 @@ import { DEFAULT_CONFIG, MeterConfig } from './types'; * This class represents a meter provider which platform libraries can extend */ export class MeterProvider implements types.MeterProvider { + private readonly _config: MeterConfig; private readonly _meters: Map = new Map(); - readonly resource: Resource = Resource.createTelemetrySDKResource(); + readonly resource: Resource; readonly logger: types.Logger; - constructor(private _config: MeterConfig = DEFAULT_CONFIG) { - this.logger = _config.logger || new ConsoleLogger(_config.logLevel); + constructor(config: MeterConfig = DEFAULT_CONFIG) { + this.logger = config.logger || new ConsoleLogger(config.logLevel); + this.resource = config.resource || Resource.createTelemetrySDKResource(); + this._config = Object.assign({}, config, { logger: this.logger, resource: this.resource }); } /** diff --git a/packages/opentelemetry-tracing/src/BasicTracerProvider.ts b/packages/opentelemetry-tracing/src/BasicTracerProvider.ts index fe44199e617..06b285adb6c 100644 --- a/packages/opentelemetry-tracing/src/BasicTracerProvider.ts +++ b/packages/opentelemetry-tracing/src/BasicTracerProvider.ts @@ -27,6 +27,7 @@ import { Resource } from '@opentelemetry/resources'; * This class represents a basic tracer provider which platform libraries can extend */ export class BasicTracerProvider implements api.TracerProvider { + private readonly _config: TracerConfig; private readonly _registeredSpanProcessors: SpanProcessor[] = []; private readonly _tracers: Map = new Map(); @@ -34,9 +35,10 @@ export class BasicTracerProvider implements api.TracerProvider { readonly logger: api.Logger; readonly resource: Resource; - constructor(private _config: TracerConfig = DEFAULT_CONFIG) { - this.logger = _config.logger || new ConsoleLogger(_config.logLevel); - this.resource = _config.resource || Resource.createTelemetrySDKResource(); + constructor(config: TracerConfig = DEFAULT_CONFIG) { + this.logger = config.logger || new ConsoleLogger(config.logLevel); + this.resource = config.resource || Resource.createTelemetrySDKResource(); + this._config = Object.assign({}, config, { logger: this.logger, resource: this.resource }); } getTracer(name: string, version = '*', config?: TracerConfig): Tracer {