Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(sdk-node): deprecate methods in favor of constructor options #3996

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions experimental/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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)
37 changes: 31 additions & 6 deletions experimental/packages/opentelemetry-sdk-node/src/sdk.ts
Original file line number Diff line number Diff line change
@@ -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,
@@ -193,7 +200,11 @@ export class NodeSDK {
};
}

/**Set configurations needed to register a LoggerProvider */
/**
pichlermarc marked this conversation as resolved.
Show resolved Hide resolved
* @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) {
@@ -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) {
@@ -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;
@@ -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) {