Skip to content

Commit

Permalink
chore(sdk-node): deprecate methods in favor of constructor options (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
pichlermarc authored Aug 16, 2023
1 parent 853a7b6 commit 5259a0b
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 6 deletions.
8 changes: 8 additions & 0 deletions experimental/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@ All notable changes to experimental packages in this project will be documented

### :boom: Breaking Change

* chore(sdk-node): deprecate methods in favor of constructor options [#3996](https://github.com/open-telemetry/opentelemetry-js/pull/3996) @pichlermarc
* The following methods are now deprecated and will be removed in `0.43.0`
* `NodeSDK.configureTracerProvider()`, please use constructor options instead
* `NodeSDK.configureMeterProvider()`, please use constructor options instead
* `NodeSDK.configureLoggerProvider()`, please use constructor options instead
* `NodeSDK.addResource()`, please use constructor options instead
* `NodeSDK.detectResources()`, this is not necessary anymore, resources are now auto-detected on startup.

### :rocket: (Enhancement)

### :bug: (Bug Fix)
Expand Down
37 changes: 31 additions & 6 deletions experimental/packages/opentelemetry-sdk-node/src/sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,14 @@ export class NodeSDK {
this._instrumentations = instrumentations;
}

/** Set configurations required to register a NodeTracerProvider */
/**
*
* @deprecated Please pass {@code sampler}, {@code generalLimits}, {@code spanLimits}, {@code resource},
* {@code IdGenerator}, {@code spanProcessor}, {@code contextManager} and {@code textMapPropagator},
* to the constructor options instead.
*
* Set configurations needed to register a TracerProvider
*/
public configureTracerProvider(
tracerConfig: NodeTracerConfig,
spanProcessor: SpanProcessor,
Expand All @@ -193,7 +200,11 @@ export class NodeSDK {
};
}

/**Set configurations needed to register a LoggerProvider */
/**
* @deprecated Please pass {@code logRecordProcessor} to the constructor options instead.
*
* Set configurations needed to register a LoggerProvider
*/
public configureLoggerProvider(config: LoggerProviderConfig): void {
// nothing is set yet, we can set config and then return
if (this._loggerProviderConfig == null) {
Expand All @@ -217,7 +228,11 @@ export class NodeSDK {
}
}

/** Set configurations needed to register a MeterProvider */
/**
* @deprecated Please pass {@code views} and {@code reader} to the constructor options instead.
*
* Set configurations needed to register a MeterProvider
*/
public configureMeterProvider(config: MeterProviderConfig): void {
// nothing is set yet, we can set config and return.
if (this._meterProviderConfig == null) {
Expand Down Expand Up @@ -248,7 +263,12 @@ export class NodeSDK {
}
}

/** Detect resource attributes */
/**
* @deprecated Resources are detected automatically on {@link NodeSDK.start()}, when the {@code autoDetectResources}
* constructor option is set to {@code true} or left {@code undefined}.
*
* Detect resource attributes
*/
public detectResources(): void {
if (this._disabled) {
return;
Expand All @@ -261,13 +281,18 @@ export class NodeSDK {
this.addResource(detectResourcesSync(internalConfig));
}

/** Manually add a resource */
/**
* @deprecated Please pre-merge resources and pass them to the constructor
*
* Manually add a Resource
* @param resource
*/
public addResource(resource: IResource): void {
this._resource = this._resource.merge(resource);
}

/**
* Once the SDK has been configured, call this method to construct SDK components and register them with the OpenTelemetry API.
* Call this method to construct SDK components and register them with the OpenTelemetry API.
*/
public start(): void {
if (this._disabled) {
Expand Down

0 comments on commit 5259a0b

Please sign in to comment.