Skip to content

Commit

Permalink
fix: prevent duplicated resource creation
Browse files Browse the repository at this point in the history
  • Loading branch information
legendecas committed May 4, 2020
1 parent 817397b commit 7866588
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
9 changes: 6 additions & 3 deletions packages/opentelemetry-metrics/src/MeterProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<string, Meter> = 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 });
}

/**
Expand Down
8 changes: 5 additions & 3 deletions packages/opentelemetry-tracing/src/BasicTracerProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,18 @@ 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<string, Tracer> = new Map();

activeSpanProcessor = new NoopSpanProcessor();
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 {
Expand Down

0 comments on commit 7866588

Please sign in to comment.