Releases: open-telemetry/opentelemetry-js
Releases · open-telemetry/opentelemetry-js
v2.6.1
2.6.1
🐛 Bug Fixes
- fix(opentelemetry-instrumentation): improve
_warnOnPreloadedModulesfunction not to show warning logs when the module is not marked as loaded #6095 @rlj1202 - fix(sdk-trace-base): derive internal
SpanOptionsfrom API type to prevent drift #6478 @overbalance - fix(span): enforce
attributePerEventCountLimit,attributePerLinkCountLimit,linkCountLimit, andattributeValueLengthLimitfor event/link attributes #6479 @overbalance
🏠 Internal
- chore: enforce
import typefor type-only imports via ESLint #6467 @overbalance - perf(sdk-trace-base): avoid Object.entries in Span.setAttributes #6514 @daniellockyer
- perf(sdk-trace-base): optimize
Span.{addEvent,addLink}performance #6516 @daniellockyer - test(bundlers): broaden bundler test coverage and assert known protobuf dynamic-require failures #6482 @overbalance
experimental/v0.214.0
0.214.0
💥 Breaking Changes
- feat(configuration)!: rename OTEL_EXPERIMENTAL_CONFIG_FILE to OTEL_CONFIG_FILE #6486 @maryliag
- refactor!(otlp-grpc-exporter-base): remove
headersfrom gRPC exporter config type, passing headers now results in a compile-time error instead of being silently ignored #6487
🚀 Features
- feat(configuration): add sampler configuration parsing support #6409 @MikeGoldsmith
- feat(configuration): add resource detection parsing #6435 @MikeGoldsmith
- feat(configuration): export interfaces required in other packages #6462 @maryliag
- feat(configuration): set MeterProvider on sdk start #6463 @maryliag
- feat(configuration): export interfaces required in other packages #6507 @maryliag
🐛 Bug Fixes
- fix(opentelemetry-instrumentation): access
requireviaglobalThisto avoid webpack analysis #6481 @overbalance - fix(sdk-logs): fix inflated
droppedAttributesCountwhen updating existing attribute keys #6479 @overbalance - fix(instrumentation-fetch): do not modify the returned type of fetch #6521 @dyladan
- fix(opentelemetry-sdk-node): add missing
@opentelemetry/otlp-exporter-basedependency #6520 @gotgenes
🏠 Internal
- chore: enforce
import typefor type-only imports via ESLint #6467 @overbalance
api/v1.9.1
1.9.1
🐛 (Bug Fix)
- fix(api): prioritize
esnextexport condition as it is more specific #5458 - fix(api): update diag
consoleLoggerto use original console methods to prevent infinite loop when a console instrumentation is present #6395 - fix(api): use
Attributesinstead of deprecatedSpanAttributesinSpanOptions#6478 @overbalance - fix(diag): change types in
DiagComponentLoggerfromanytounknown#5478 @loganrosen - fix(api): re-introduce fallback chain for global utils #6523 @pichlermarc
🏠 (Internal)
- refactor(api): refactor to avoid circular deps by merging observable types into
Metric.ts#6441 @pichlermarc - refactor(api): remove "export *" in favor of explicit named exports #4880 @robbkidd
- chore: enable tsconfig isolatedModules #5697 @legendecas
- chore: disallow constructor parameter property syntax #6187 @legendecas
- refactor(api): remove platform-specific globalThis, use globalThis directly #6208 @overbalance
- chore(api): mark ProxyTracerProvider as deprecated #6328 @cjihrig
- chore: enforce
import typefor type-only imports via ESLint #6467 @overbalance - perf(api): improve isValidSpanId, isValidTraceId performance #5714 @seemk
v2.6.0
2.6.0
💥 Breaking Changes
- fix(resources): update
OTEL_RESOURCE_ATTRIBUTESparsing to match spec changes (open-telemetry/opentelemetry-specification#4856) #6261 @JacksonWeber- Important: This fix is included in the "breaking changes" section because it can be breaking for some edge case usage of
OTEL_RESOURCE_ATTRIBUTES:export OTEL_RESOURCE_ATTRIBUTES=foo=bar,spamwill now be fully ignored, because thespamentry is invalid (missing=). Per spec, any parsing error results in ignoring the entire environment variable.export OTEL_RESOURCE_ATTRIBUTES='wat=" spaces "'will now result in{"wat": "\" spaces \""}with the double-quotes included in the value. Before this change the implementation included brittle double-quoting to allow leading and trailing whitespace in the value. To support leading or trailing whitespace now, you must percent-encode the whitespace. Internal whitespace still works without encoding, e.g.export OTEL_RESOURCE_ATTRIBUTES='green=eggs and ham'.
- Important: This fix is included in the "breaking changes" section because it can be breaking for some edge case usage of
🚀 Features
🐛 Bug Fixes
- fix(sdk-trace-web): propagate
optimisedflag ingetElementXPathrecursion #6335 @akkupratap323
experimental/v0.213.0
0.213.0
💥 Breaking Changes
🚀 Features
- feat(instrumentation-http): provide
http.request.header.<key>at server span creation time #6396 @vitorvasc
🐛 Bug Fixes
- fix(instrumentation-http): guard against double-instrumentation if loaded with
require('http')andimport 'http'#6428 @trentm - fix(otlp-exporter-base): handle response error #6412 @pichlermarc
- Fixes a bug where when the response header was received, but the connection was reset by the server,
an unhandled error would be thrown.
- Fixes a bug where when the response header was received, but the connection was reset by the server,
- fix(otlp-exporter-base): remove sendBeacon in favor of fetch with keepalive #6391 @overbalance
- (user-facing) createOtlpSendBeaconExportDelegate will be removed in a future version
- fix(otlp-transformer): downgrade
protobufjsto version^7.0.0#6418 @vitorvasc - fix(instrumentation-fetch): handle HeadersInit tuple arrays in _addHeaders #6341 @overbalance @imadha
semconv/v1.40.0
1.40.0
🚀 Features
- feat: update semantic conventions to v1.40.0 #6438
- Semantic Conventions v1.40.0: changelog | latest docs
@opentelemetry/semantic-conventions(stable) changes: 2 added exports@opentelemetry/semantic-conventions/incubating(unstable) changes: 11 newly deprecated exports, 56 added exports
Stable changes in v1.40.0
2 added exports
ATTR_SERVICE_INSTANCE_ID // service.instance.id
ATTR_SERVICE_NAMESPACE // service.namespaceUnstable changes in v1.40.0
11 newly deprecated exports
METRIC_RPC_CLIENT_REQUEST_SIZE // rpc.client.request.size: Removed, no replacement at this time.
METRIC_RPC_CLIENT_RESPONSE_SIZE // rpc.client.response.size: Removed, no replacement at this time.
METRIC_RPC_SERVER_REQUEST_SIZE // rpc.server.request.size: Removed, no replacement at this time.
METRIC_RPC_SERVER_RESPONSE_SIZE // rpc.server.response.size: Removed, no replacement at this time.
METRIC_SYSTEM_MEMORY_SHARED // system.memory.shared: Replaced by `system.memory.linux.shared`.
EVENT_RPC_MESSAGE // rpc.message: Deprecated, no replacement at this time.
ATTR_ERROR_MESSAGE // error.message: Use domain-specific error message attribute. For example, use `feature_flag.error.message` for feature flag errors.
ATTR_RPC_MESSAGE_COMPRESSED_SIZE // rpc.message.compressed_size: Deprecated, no replacement at this time.
ATTR_RPC_MESSAGE_ID // rpc.message.id: Deprecated, no replacement at this time.
ATTR_RPC_MESSAGE_TYPE // rpc.message.type: Deprecated, no replacement at this time.
ATTR_RPC_MESSAGE_UNCOMPRESSED_SIZE // rpc.message.uncompressed_size: Deprecated, no replacement at this time.56 added exports
METRIC_JVM_FILE_DESCRIPTOR_LIMIT // jvm.file_descriptor.limit
METRIC_K8S_SERVICE_ENDPOINT_COUNT // k8s.service.endpoint.count
METRIC_K8S_SERVICE_LOAD_BALANCER_INGRESS_COUNT // k8s.service.load_balancer.ingress.count
METRIC_SYSTEM_MEMORY_LINUX_SHARED // system.memory.linux.shared
EVENT_DB_CLIENT_OPERATION_EXCEPTION // db.client.operation.exception
EVENT_HTTP_CLIENT_REQUEST_EXCEPTION // http.client.request.exception
EVENT_HTTP_SERVER_REQUEST_EXCEPTION // http.server.request.exception
EVENT_RPC_CLIENT_CALL_EXCEPTION // rpc.client.call.exception
EVENT_RPC_SERVER_CALL_EXCEPTION // rpc.server.call.exception
ATTR_FEATURE_FLAG_ERROR_MESSAGE // feature_flag.error.message
ATTR_GCP_GCE_INSTANCE_GROUP_MANAGER_NAME // gcp.gce.instance_group_manager.name
ATTR_GCP_GCE_INSTANCE_GROUP_MANAGER_REGION // gcp.gce.instance_group_manager.region
ATTR_GCP_GCE_INSTANCE_GROUP_MANAGER_ZONE // gcp.gce.instance_group_manager.zone
ATTR_GEN_AI_AGENT_VERSION // gen_ai.agent.version
GEN_AI_OPERATION_NAME_VALUE_RETRIEVAL // "retrieval"
ATTR_GEN_AI_RETRIEVAL_DOCUMENTS // gen_ai.retrieval.documents
ATTR_GEN_AI_RETRIEVAL_QUERY_TEXT // gen_ai.retrieval.query.text
ATTR_GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS // gen_ai.usage.cache_creation.input_tokens
ATTR_GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS // gen_ai.usage.cache_read.input_tokens
ATTR_K8S_SERVICE_ANNOTATION // (key) => `k8s.service.annotation.${key}`
ATTR_K8S_SERVICE_ENDPOINT_ADDRESS_TYPE // k8s.service.endpoint.address_type
K8S_SERVICE_ENDPOINT_ADDRESS_TYPE_VALUE_FQDN // "FQDN"
K8S_SERVICE_ENDPOINT_ADDRESS_TYPE_VALUE_IPV4 // "IPv4"
K8S_SERVICE_ENDPOINT_ADDRESS_TYPE_VALUE_IPV6 // "IPv6"
ATTR_K8S_SERVICE_ENDPOINT_CONDITION // k8s.service.endpoint.condition
K8S_SERVICE_ENDPOINT_CONDITION_VALUE_READY // "ready"
K8S_SERVICE_ENDPOINT_CONDITION_VALUE_SERVING // "serving"
K8S_SERVICE_ENDPOINT_CONDITION_VALUE_TERMINATING // "terminating"
ATTR_K8S_SERVICE_ENDPOINT_ZONE // k8s.service.endpoint.zone
ATTR_K8S_SERVICE_LABEL // (key) => `k8s.service.label.${key}`
ATTR_K8S_SERVICE_NAME // k8s.service.name
ATTR_K8S_SERVICE_PUBLISH_NOT_READY_ADDRESSES // k8s.service.publish_not_ready_addresses
ATTR_K8S_SERVICE_SELECTOR // (key) => `k8s.service.selector.${key}`
ATTR_K8S_SERVICE_TRAFFIC_DISTRIBUTION // k8s.service.traffic_distribution
ATTR_K8S_SERVICE_TYPE // k8s.service.type
K8S_SERVICE_TYPE_VALUE_CLUSTER_IP // "ClusterIP"
K8S_SERVICE_TYPE_VALUE_EXTERNAL_NAME // "ExternalName"
K8S_SERVICE_TYPE_VALUE_LOAD_BALANCER // "LoadBalancer"
K8S_SERVICE_TYPE_VALUE_NODE_PORT // "NodePort"
ATTR_K8S_SERVICE_UID // k8s.service.uid
ATTR_OPENAI_API_TYPE // openai.api.type
OPENAI_API_TYPE_VALUE_CHAT_COMPLETIONS // "chat_completions"
OPENAI_API_TYPE_VALUE_RESPONSES // "responses"
ATTR_ORACLE_DB_DOMAIN // oracle.db.domain
ATTR_ORACLE_DB_INSTANCE_NAME // oracle.db.instance.name
ATTR_ORACLE_DB_NAME // oracle.db.name
ATTR_ORACLE_DB_PDB // oracle.db.pdb
ATTR_ORACLE_DB_SERVICE // oracle.db.service
ATTR_ORACLE_CLOUD_REALM // oracle_cloud.realm
ATTR_PPROF_SCOPE_DEFAULT_SAMPLE_TYPE // pprof.scope.default_sample_type
ATTR_PPROF_SCOPE_SAMPLE_TYPE_ORDER // pprof.scope.sample_type_order
ATTR_SERVICE_CRITICALITY // service.criticality
SERVICE_CRITICALITY_VALUE_CRITICAL // "critical"
SERVICE_CRITICALITY_VALUE_HIGH // "high"
SERVICE_CRITICALITY_VALUE_LOW // "low"
SERVICE_CRITICALITY_VALUE_MEDIUM // "medium"v2.5.1
2.5.1
🐛 Bug Fixes
- fix(opentelemetry-sdk-node): the custom value from env variable for service.instance.id should take priority over random uuid as backup #6345 @maryliag
🏠 Internal
- perf(sdk-trace-base): use Uint8Array for browser RandomIdGenerator #6209 @overbalance
- test(sdk-trace-base): remove obsolete TypeScript and platform workarounds #6327 @overbalance
- fix(example-web): update Docker config and deps for collector #6342 @overbalance
- perf(sdk-trace-base): optimize setAttribute performance #6283 @AbhiPrasad
- refactor(core): remove unnecessary closure in _export() #6360 @cjihrig
experimental/v0.212.0
0.212.0
💥 Breaking Changes
- feat(sdk-logs)!: move environment variable configuration to
@opentelemetry/sdk-node#6325 @pichlermarc- (user-facing): environment variable configuration is no longer applied automatically when instantiating SDK components
(LoggerProvider,BatchLogRecordProcessor) directly from@opentelemetry/sdk-logs. Please migrate to using
NodeSDKfrom@opentelemetry/sdk-nodeto get automatic environment variable configuration.
- (user-facing): environment variable configuration is no longer applied automatically when instantiating SDK components
🚀 Features
- feat(configuration): add Prometheus exporter support #6400 @MikeGoldsmith
- feat(sampler-composite): add ComposableAnnotatingSampler and ComposableRuleBasedSampler #6305 @trentm
- feat(configuration): parse config for rc 3 #6304 @maryliag
- feat(instrumentation): use the
internals: trueoption with import-in-the-middle hook, allowing instrumentations to hook internal files in ES modules #6344 @trentm
🐛 Bug Fixes
- fix(configuration): remove default propagator initialization #6399 @MikeGoldsmith
- fix(instrumentation-fetch): preserve Response.url, type, and redirected properties #6243 @AnubhavPurohit691
- The fetch instrumentation now preserves the read-only
url,type, andredirectedproperties from the original Response object when wrapping it with a Proxy. This fixes issues where code relying on these properties (e.g., CORS type detection) would fail with instrumented fetch.
- The fetch instrumentation now preserves the read-only
- fix(exporter-prometheus): add missing
@opentelemetry/semantic-conventionsdependency #6330 @omizha - fix(otlp-transformer): correctly handle Uint8Array attribute values when serializing to JSON #6348 @pichlermarc
- fix(otlp-exporter-base): fix unwanted instrumentation of the fetch exports when context is not propagated #6353 @david-luna
🏠 Internal
- perf(otlp-transformer): optimize toAnyValue performance #6287 @AbhiPrasad
v2.5.0
2.5.0
🐛 Bug Fixes
- refactor(resources): use runtime check for default service name #6257 @overbalance
🏠 Internal
- chore(context-async-hooks): Deprecate
AsyncHooksContextManager#6298 @trentm - chore: fix CODEOWNERS rule ordering #6297 @overbalance
- fix(github): fix CODEOWNERS browser package paths #6303 @overbalance
- fix(build): update @types/node to 18.19.130, remove DOM types from base tsconfig #6280 @overbalance
experimental/v0.211.0
0.211.0
💥 Breaking Changes
- fix(otlp-exporter-base)!: remove xhr transport #6317 @cjihrig
- (user-facing) The deprecated XHR-based transport has been removed and replaced with
fetch(). This change affects users who relied onXmlHttpRequestinstead offetch()for sending headers with OTLP exports. To maintain compatibility on browsers without afetch()implementation, include afetch()polyfill.
- (user-facing) The deprecated XHR-based transport has been removed and replaced with
- chore(api-logs)!: remove
ProxyLoggerProviderexport #6322 @david-luna
🚀 Features
🐛 Bug Fixes
- fix(sdk-logs): allow AnyValue attributes for logs and handle circular references #6210 @david-luna
- fix(browser-detector): use window feature detection to avoid false positives in Node.js 21+ and Bun #6271 @fiyinfoluwa001 @overbalance
🏠 Internal
- fix(build): update @types/node to 18.19.130, remove DOM types from base tsconfig #6280 @overbalance
- refactor(sdk-logs): simplify _export() #6318 @cjihrig