envelop
envelop copied to clipboard
fix(deps): update opentelemetry-js monorepo to v2 (major)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @opentelemetry/context-async-hooks (source) | ^1.20.0 -> ^2.0.0 |
||||
| @opentelemetry/sdk-trace-base (source) | ^1.11.0 -> ^2.0.0 |
Release Notes
open-telemetry/opentelemetry-js (@opentelemetry/context-async-hooks)
v2.0.0
Summary
- The minimum supported Node.js has been raised to
^18.19.0 || >=20.6.0. This means that support for Node.js 14 and 16 has been dropped. - The minimum supported TypeScript version has been raised to 5.0.4.
- The compilation target for transpiled TypeScript has been raised to ES2022 (from ES2017).
- The public interface has changed
- for notes on migrating to 2.x / 0.200.x see the upgrade guide
- Only experimental versions
0.200.0are compatible with this release
:boom: Breaking Change
- feat(sdk-trace-base)!: Add
parentSpanContextand removeparentSpanIdfromSpanandReadableSpan#5450 @JacksonWeber- (user-facing): the SDK's
SpansparentSpanIdwas replaced byparentSpanContext, to migrate to the new property, please replacespan.parentSpanId->span.parentSpanContext?.spanId
- (user-facing): the SDK's
- feat(sdk-metrics)!: drop deprecated
typefield onMetricDescriptor#5291 @chancancode - feat(sdk-metrics)!: drop deprecated
InstrumentDescriptortype; useMetricDescriptorinstead #5277 @chancancode - feat(sdk-metrics)!: bump minimum version of
@opentelemetry/apipeer dependency to 1.9.0 #5254 @chancancode - chore(shim-opentracing): replace deprecated SpanAttributes #4430 @JamieDanielson
- chore(otel-core): replace deprecated SpanAttributes #4408 @JamieDanielson
- feat(sdk-metrics)!: remove MeterProvider.addMetricReader() in favor of constructor option #4419 @pichlermarc
- chore(otel-resources): replace deprecated SpanAttributes #4428 @JamieDanielson
- feat(sdk-metrics)!: remove MeterProvider.addMetricReader() in favor of constructor option #4419 @pichlermarc
- feat(sdk-metrics)!: replace attributeKeys with custom processors option #4532 @pichlermarc
- refactor(sdk-trace-base)!: replace
SpanAttributeswithAttributes#5009 @david-luna - refactor(resources)!: replace
ResourceAttributeswithAttributes#5016 @david-luna - feat(sdk-metrics)!: drop
ViewandAggregationin favor ofViewOptionsandAggregationOption#4931 @pichlermarc - refactor(sdk-trace-base)!: remove
new Spanconstructor in favor ofTracer.startSpanAPI #5048 @david-luna - refactor(sdk-trace-base)!: remove
BasicTracerProvider.addSpanProcessorAPI in favor of constructor options. #5134 @david-luna - refactor(sdk-trace-base)!: make
resourceproperty private inBasicTracerProviderand removegetActiveSpanProcessorAPI. #5192 @david-luna - feat(sdk-metrics)!: extract
IMetricReaderinterface and use it over abstract class #5311- (user-facing):
MeterProviderOptionsnow provides the more generalIMetricReadertype overMetricReader - If you accept
MetricReaderin your public interface, consider accepting the more generalIMetricReaderinstead to avoid unintentional breaking changes
- (user-facing):
- feat(sdk-trace)!: remove ability to have BasicTracerProvider instantiate exporters #5239 @pichlermarc
- When extending
BasicTracerProvider, the class offered multiple methods to facilitate the creation of exporters and auto-pairing withSpanProcessors.- This functionality has been removed - users may now pass
SpanProcessors to the base class constructor when extending - (user-facing):
_registeredExportershas been removed - (user-facing):
_getSpanExporterhas been removed - (user-facing):
_buildExporterFromEnvhas been removed
- This functionality has been removed - users may now pass
- When extending
- feat(core)!: remove deprecated
IdGeneratorandRandomIdGenerator#5309 @pichlermarc - feat(core)!: remove deprecated type
InstrumentationLibrary#5308 @pichlermarc- (user-facing): please use equivalent type
InstrumentationScopeinstead
- (user-facing): please use equivalent type
- feat(sdk-trace-base)!: replace usages fo
InstrumentationLibrarywithInstrumentationScope#5308 @pichlermarc- (user-facing) rename
Tracer.instrumentationLibrary->Tracer.instrumentationScope - (user-facing) rename
ReadableSpan.instrumentationLibrary->ReadableSpan.instrumentationScope- also renames the property in implementations of
ReadableSpan
- also renames the property in implementations of
- (user-facing) rename
- feat(exporter-jaeger): use
ReadableSpan.instrumentationScopeoverReadableSpan.instrumentationLibrary#5308 @pichlermarc - feat(exporter-zipkin): use
ReadableSpan.instrumentationScopeoverReadableSpan.instrumentationLibrary#5308 @pichlermarc - chore!: update typescript to version
5.0.4#5145 @david-luna- (user-facing) dropped support for
typescript@<5.0.4 - (user-facing) all packages published from this repository will from now on drop support for old versions of
typescriptin minor releases. We will only drop support for versions that are older than 2 years.
- (user-facing) dropped support for
- feat(core)!: remove deprecated samplers #5316 @pichlermarc
- (user-facing): deprecated
AlwaysOnSamplerhas moved to@opentelemetry/sdk-trace-base - (user-facing): deprecated
AlwaysOffSamplerhas moved to@opentelemetry/sdk-trace-base - (user-facing): deprecated
ParentBasedSamplerhas moved to@opentelemetry/sdk-trace-base - (user-facing): deprecated
TraceIdRatioSamplerhas moved to@opentelemetry/sdk-trace-base
- (user-facing): deprecated
- feat(resource): Merge sync and async resource interfaces into a single interface #5350 @dyladan
- Resource constructor now takes a single argument which contains an optional
attributesobject - Detected resource attribute values may be a promise or a synchronous value
- Resources are now merged by the order in which their detectors are configured instead of async attributes being last
- Resource detectors now return
DetectedResourceplain objects instead ofnew Resource()
- Resource constructor now takes a single argument which contains an optional
- feat(sdk-trace-base)!: drop ability to instantiate propagators beyond defaults #5355 @pichlermarc
- (user-facing): only a non-env-var based default is now used on
BasicTracerProvider#register().- propagators can now not be configured via
OTEL_PROPAGATORSorwindow.OTEL_PROPAGATORSanymore, please pass the propagator toNodeTracerProvider#register()instead. - if not configured directly via code,
BasicTracerProvider#register()will now fall back to defaults (tracecontextandbaggage)
- propagators can now not be configured via
- (user-facing): only a non-env-var based default is now used on
- feat(sdk-trace-node)!: drop ability to instantiate propagators beyond defaults #5355 @pichlermarc
- (user-facing): only a non-env-var based default is now used on
NodeTracerProvider#register().- propagators can now not be configured via
OTEL_PROPAGATORSanymore, please pass the propagator toNodeTracerProvider#register()instead. - if not configured via code,
NodeTracerProvider#register()will now fall back to the defaults (tracecontextandbaggage) - if autoconfiguration based on enviornment variables is needed, please use
NodeSDKfrom@opentelemetry/sdk-node.
- propagators can now not be configured via
- (user-facing): only a non-env-var based default is now used on
- feat(sdk-trace-web)!: drop ability to instantiate propagators beyond defaults #5355 @pichlermarc
- (user-facing): only a non-env-var based default is now used on
WebTracerProvider#register().- propagators can now not be configured via
window.OTEL_PROPAGATORSanymore, please pass the propagator toWebTracerProvider#register()instead. - if not configured via code,
WebTracerProvider#register()will now fall back to defaults (tracecontextandbaggage)
- propagators can now not be configured via
- (user-facing): only a non-env-var based default is now used on
- feat(sdk-trace)!: drop unnecessary exports #5405 @pichlermarc
- (user-facing):
EXPORTER_FACTORYis not used anymore and has been removed - (user-facing):
PROPAGATOR_FACTORYis not used anymore and has been removed - (user-facing):
ForceFlushStatewas intended for internal use and has been removed - (user-facing): the
Tracerclass was unintentionally exported and has been removed- to obtain a
Tracer, please useBasicTracerProvider#getTracer(),NodeTracerProvider#getTracer()orWebTracerProvider#getTracer() - to reference a
Tracer, please use theTracertype from@opentelemetry/api
- to obtain a
- (user-facing):
- chore!: Raise the minimum supported Node.js version to
^18.19.0 || >=20.6.0. Support for Node.js 14, 16, and early minor versions of 18 and 20 have been dropped. This applies to all packages except the 'api' and 'semantic-conventions' packages. #5395 @trentm - feat(core)!: remove TracesSamplerValues from exports #5406 @pichlermarc
- (user-facing): TracesSamplerValues was only consumed internally and has been removed from exports without replacement
- chore(resources)!: Remove deprecated duplicate browser detector from
@opentelemetry/resourcein favor of@opentelemetry/opentelemetry-browser-detector#5420 - feat(core)!: remove unused and obsolete functions and types #5444 @pichlermarc
- (user-facing):
VERSIONwas an internal constant that was unintentionally exported. It has been removed without replacement. - (user-facing):
isWrappedhas been removed in favor ofisWrappedfrom@opentelemetry/instrumentation - (user-facing):
ShimWrappedhas been removed in favor ofShimWrappedfrom@opentelemetry/instrumentation - (user-facing):
hexToBase64was a utility function that is not used by the SDK anymore. It has been removed without replacement. - (user-facing):
hexToBinarywas a utility function that now internal to@opentelemetry/otlp-tranformer. It has been removed without replacement. - (user-facing):
baggageUtils.getKeyPariswas an internal utility function that was unintentionally exported. It has been removed without replacement. - (user-facing):
baggageUtils.serializeKeyPairswas an internal utility function that was unintentionally exported. It has been removed without replacement. - (user-facing):
baggageUtils.parseKeyPairsIntoRecord,has been removed in favor ofparseKeyPairsIntoRecord - (user-facing):
baggageUtils.parsePairKeyValuewas an internal utility function that was unintentionally exported. It has been removed without replacement. - (user-facing):
TimeOriginLegacyhas been removed without replacement. - (user-facing):
isAttributeKeywas an internal utility function that was unintentionally exported. It has been removed without replacement.
- (user-facing):
- feat(sdk-trace-base)!: do not read environment variables from window in browsers #5445 @pichlermarc
- (user-facing): all configuration previously possible via
window.OTEL_*is now not supported anymore, please pass configuration options to constructors instead. - Note: Node.js environment variable configuration continues to work as-is.
- (user-facing): all configuration previously possible via
- feat(exporter-zipkin)!: do not read environment variables from window in browsers #5465 @pichlermarc
- (user-facing): all configuration previously possible via
window.OTEL_*is now not supported anymore, please pass configuration options to constructors instead. - Note: Node.js environment variable configuration continues to work as-is.
- (user-facing): all configuration previously possible via
- feat(resource)!: Remove resource class export in favor of functions and types only to aid in cross-version compatibility #5421
- Renames
Resourceclass toResourceImpland makes it package-private - Renames
IResourceinterface toResource - Export function
resourceFromAttributesto create aResourcefrom aDetectedAttributesobject - Export function
defaultResourceto create a default resource #5467 @pichlermarc - Export function
emptyResourceto create an empty resource #5467 @pichlermarc - Only export types and functions. This aids in cross-version compatibility and makes it more easily extensible in the future.
- Renames
- feat(resources)!: do not read environment variables from window in browsers #5466 @pichlermarc
- (user-facing): all configuration previously possible via
window.OTEL_*is now not supported anymore- If you have been using the
envDetectorin browser environments, please migrate to manually creating a resource. - Note: Node.js environment variable configuration continues to work as-is.
- If you have been using the
- (user-facing): all configuration previously possible via
- fix(sdk-trace-base)!: use
ParentBasedAlwaysOnSampleroverAlwaysOnSamplerwhen bogus data is supplied toOTEL_TRACES_SAMPLER- this aligns the SDK implementation with the specification
- feat(core)!: drop
getEnv(),getEnvWithoutDefaults()#5481 @pichlermarc- (user-facing):
getEnv()has been replaced bygetStringFromEnv(),getNumberFromEnv(),getBooleanFromEnv(),getStringListFromEnv()- these new functions do not include defaults, please inline any defaults if necessary (example:
getStringFromEnv("OTEL_FOO") ?? "my-default") - to find the previously used defaults, please see here
- these new functions do not include defaults, please inline any defaults if necessary (example:
- (user-facing):
getEnvWithoutDefaults()has been replaced bygetStringFromEnv(),getNumberFromEnv(),getBooleanFromEnv(),getStringListFromEnv() - (user-facing):
DEFAULT_ENVIRONMENThas been removed, please inline any defaults from now on- to find the previously used defaults, please see here
- (user-facing):
ENVIRONMENThas been removed without replacement - (user-facing):
RAW_ENVIRONMENThas been removed without replacement - (user-facing):
parseEnvironmenthas been removed without replacement
- (user-facing):
- feat(sdk-trace-base): remove
BasicTracerProvider#register()to improve tree-shaking #5503 @pichlermarc- (user-facing):
BasicTracerProvider#register()has been removed- to register a global propagator, please use
propagation.setGlobalPropagator()from@opentelemetry/api - to register a global context manager, please use
context.setGlobalContextManager()from@opentelemetry/api
- to register a global propagator, please use
- (user-facing):
- feat!: set compilation target to ES2022 for all packages except
@opentelemetry/api,@opentelemetry/api-logs,@opentelemetry/api-events, and@opentelemetry/semantic-conventions#5456 @david-luna- (user-facing): drops browser runtimes which do not support ES2022 features
- feat(core)! drop unused constants #5504 @pichlermarc
- (user-facing):
DEFAULT_ATTRIBUTE_VALUE_LENTGHT_LIMIThas been removed, please useInfinityinstead - (user-facing):
DEFAULT_ATTRIBUTE_VALUE_COUNT_LIMIThas been removed, please use128instead - (user-facing):
DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIThas been removed, please use128instead - (user-facing):
DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIThas been removed, please use128instead
- (user-facing):
:rocket: (Enhancement)
- feat(sdk-trace-web): do not throw when passing extra options #5357 @pichlermarc
WebTracerProviderconstructor now does not throw anymore whencontextManagerorpropagatorare passed as extra options to the constructor
- feat(sdk-trace-base): add stack trace warning to debug instrumentation #5363 @neilfordyce
- feat(core): add more scalable replacements for getEnv(), getEnvWithoutDefaults() #5443 @pichlermarc
- refactor(exporter-jaeger): migrate away from getEnv() #5464 @pichlermarc
- feat(core): add
diagLogLevelFromStringutility #5475 @pichlermarc
:bug: (Bug Fix)
- fix(exporter-zipkin): remove usages of deprecated
url.parsefromnode:url#5390 @chancancode - fix(sdk-metrics): do not export from
PeriodicExportingMetricReaderwhen there are no metrics to export. #5288 @jacksonweber - fix(sdk-trace-base): always wait on pending export in SimpleSpanProcessor. #5303 @anuraaga
- fix(core): avoid using util in configuration.ts for browser compatibility #5524 @sriraamas
:house: (Internal)
- refactor(sdk-metrics): the internal
InstrumentDescriptortype now extendsMetricDescriptor; moved publicInstrumentTypetype enum into./src/export/MetricData.ts#5277 - refactor(sdk-metrics): remove
GaugeandMetricAdviceworkaround types in favor of the upstream@opentelemetry/apitypes #5254 @chancancode - chore: remove checks for unsupported node versions #4341 @dyladan
- refactor(sdk-trace-base): remove
BasicTracerProvider._registeredSpanProcessorsprivate property. #5134 @david-luna - refactor(sdk-trace-base): rename
BasicTracerProvider.activeSpanProcessorprivate property. #5211 @david-luna - chore(selenium-tests): remove internal selenium-tests/ package, it wasn't being used @trentm
- chore: update typescript
modulecompiler option tonode16. #5347 @david-luna - feat(opentelemetry-instrumentation): replace
semverpackage with internal semantic versioning check implementation to get rid ofsemverpackage initialization overhead especially in the AWS Lambda environment during coldstart #5305 @serkan-ozal - chore: unpin
@opentelemetry/semantic-conventionsdep to allow better de-duplication in installs #5439 @trentm
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.
🦋 Changeset detected
Latest commit: db41d5a9e04d62feccadd8e2de91d01dd590acda
The changes in this PR will be included in the next version bump.
This PR includes changesets to release 1 package
| Name | Type |
|---|---|
| @envelop/opentelemetry | Patch |
Not sure what this means? Click here to learn what changesets are.
Click here if you're a maintainer who wants to add another changeset to this PR
💻 Website Preview
The latest changes are available as preview in:
Any update on this PR?
Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠️ Warning: custom changes will be lost.