Skip to content

v2.1.0 - #471

Open
sjvans wants to merge 33 commits into
mainfrom
develop
Open

v2.1.0#471
sjvans wants to merge 33 commits into
mainfrom
develop

Conversation

@sjvans

@sjvans sjvans commented Aug 7, 2026 •

Copy link
Copy Markdown
Contributor

Release: v2.1.0

Standing release PR — accumulates everything merged into develop for the next minor. Do not squash-merge; review and merge with a team member to satisfy the main review requirement. Description kept current as PRs land on develop.

Changes so far

Follow-ups tracked (not blocking this release)


compiled of:

sjvans added 2 commits August 7, 2026 10:03
Prepare `develop` for the next minor release.

- bump version `2.0.1` → `2.1.0`
- add `## Version 2.1.0 - tbd` changelog skeleton (Added / Changed /
Fixed)

Feature PRs merging into `develop` add their bullet under this section;
the date is set when `develop` → `main` is promoted.
Add `develop` to the CI workflow's `push` and `pull_request` branch
triggers so PRs into `develop` (the new integration branch) get lint +
the test matrix.

`main` triggers unchanged. HANA remains `workflow_dispatch`-only.
@hyperspace-pr-bot

This comment has been minimized.

@hyperspace-pr-bot hyperspace-pr-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a clean, minimal release-preparation PR. The only thing to address before merging to main is trimming the empty changelog sub-sections (### Added, ### Changed, ### Fixed) that have no entries — leaving them in would result in bare headings in the published changelog.

PR Bot Information

Version: 1.29.18

  • LLM: anthropic--claude-4.6-sonnet
  • Correlation ID: fd848e30-9239-11f1-802e-ae2522cdec59
  • Event Trigger: pull_request.opened
  • File Content Strategy: Full file content

Comment thread CHANGELOG.md
sjvans and others added 11 commits August 7, 2026 14:54
## Problem

Cloud SDK v4 exposes `executeHttpRequest` /
`executeHttpRequestWithOrigin` as **getter-only properties**. The plugin
patched them with plain assignment, which silently fails on a getter —
so the Cloud SDK outbound path (CAP's default when
`@sap-cloud-sdk/http-client` is installed) produced **no CLIENT span**
and no `sap.btp.destination`.

## Fix

Patch via `Object.defineProperty(cloudSDK, name, { value, writable:
true, configurable: true })` — `writable`/`configurable` keep the
exports re-patchable. Verified the wrapper now fires end-to-end.

## Tests

- `test/tracing-remote-cloudsdk.test.js` — Cloud SDK path: asserts a
`@cap-js/telemetry` CLIENT span with `sap.btp.destination`, and no
undici span.
- `test/tracing-remote-native.test.js` — native-fetch path: asserts the
span comes from `@opentelemetry/instrumentation-undici` (not `-http`)
with `http.*`/`url.*`/`server.*` attributes.

Both drive a real local HTTP call; gated on `cds.version >= 9`.
Changelog updated.

---------

Co-authored-by: sjvans <sjvans@users.noreply.github.com>
Add `target-branch: 'develop'` to both dependabot update entries (npm +
github-actions) so dependency-bump PRs open against `develop` instead of
the default branch (`main`). They then promote to `main` via the
reviewed `develop → main` PR, like every other change.
…ucture (#465)

## Added

Wraps `cds.Service.prototype.tx()` so the queue worker's two-transaction
structure (tx1: SELECT+UPDATE lock, tx2: handle+DELETE dispatch) appears
as coherent `<service> - tx` spans under the `cds.spawn - run task`
root, instead of each top-level CAP call becoming an orphan root.
Guarded so `$batch` sub-requests (active `EventContext`) are unaffected;
file-based messaging consumer delivery (bare `{}` context) still gets a
root span.

## Test infrastructure

Replaces fragile `cds.test.log()` regex assertions with a structured
in-memory span exporter (`MyInMemorySpanExporter`) and
`groupedByTrace()` / `rootSpans()` helpers. Rewrites the existing
tracing suites and adds coverage for scheduled tasks, outboxed batch
fan-out, and inbox/outbox messaging combinations.

## SQLite note

Queue-worker suites skip on sqlite (published `@sap/cds` uses a
`setTimeout` bypass, not `cds.spawn`) — verified on HANA in CI.
Follow-up #467 removes the skips once the cds queue-spawn fix ships.

Changelog updated. Targets `develop`.
Supersedes the #437 stash. Migrates the test runner jest → vitest.

## Why it's a clean win
Vitest with `pool: 'forks'` + per-file isolation tears each test file's
child process down when the file finishes — so the OTLP exporter's
lingering handles die with the child, and **the suite exits cleanly with
no `--forceExit`**. This is the same open-handle class that hangs jest
(see #472/#466). Verified: exit 0, ~8s, no hang across repeated runs.

## Config (`vitest.config.mjs`)
- `globals: true` — `describe/test/beforeEach/...` stay available, test
bodies unchanged.
- `pool: 'forks'`, `isolate: true`, `teardownTimeout: 1000` — the
clean-exit mechanism (documented inline).
- Ports the old `jest.config.js` HANA logic faithfully: default
`testTimeout: 42000`; under `CI && HANA_DRIVER` → `include` restricted
to `tracing-attributes` + `passport`, timeout ×10,
`cds_requires_telemetry_tracing` set when `HANA_PROM`. Verified the
subset selection.

## Changes
- `package.json`: `test` → `vitest run --silent`; jest removed, vitest
added. `jest.config.js` deleted.
- 8 `jest.spyOn`/`jest.fn` → `vi.spyOn`/`vi.fn`.
- 5 `beforeAll(done => …)` hooks → promise-returning (vitest treats a
hook arg as a fixture).
- `eslint.config.mjs`: test-files override declaring `vi` global. Lint
clean.
- Lockfile regenerated against public npm (0 internal-registry URLs).

## ⚠️ Behavioral note — HTTP instrumentation disabled in the test app
Under jest, OTel's `require-in-the-middle` http patching was **silently
broken** by jest's module sandbox, so incoming HTTP SERVER spans never
existed in tests (the existing `xtest` skips document this). Under
vitest (real `require`) the instrumentation works and reparents trace
trees, breaking several assertions. To keep this migration
**behavior-neutral**, `test/bookshop/package.json` now sets
`disableIncomingRequestInstrumentation` +
`disableOutgoingRequestInstrumentation` on the http instrumentation —
reproducing jest's effective environment.

Consequence: the HTTP-instrumentation path stays untested (same blind
spot as jest, now explicit config rather than an accident). **Follow-up
issue filed to enable it and assert on the real incoming spans.** The
tracing-attributes client-span assertions still pass because those spans
come via undici / cloud-sdk, not instrumentation-http.

## Coordination
Parallel PR #473 (prettier) touches `package.json` (additive) +
lockfile. Lockfile will conflict — whichever merges second rebases. #473
excludes `jest.config.js` from formatting (this PR deletes it).

## Verified
`npm run test` 53 pass / 14 skip, exit 0, ~8s, clean exit ×3 · `npm run
lint` clean · HANA subset selection confirmed.
Supersedes the #438 oxfmt spike — adopts **oxfmt** (`0.63.0`, pinned)
properly.

## Config (`.oxfmtrc.jsonc`)
Based on the #438 spike, verified against the `lib/*.js` house style:
`singleQuote`, `semi: false`, `printWidth: 120`, `tabWidth: 2`,
`trailingComma: none`, `arrowParens: avoid`. `ignorePatterns` excludes
`*.md`, `node_modules`, `package-lock.json`, `CHANGELOG.md`, and
`jest.config.js` (see coordination).

## Scripts
- `format` → `npx oxfmt` (write is oxfmt's default)
- `format:check` → `npx oxfmt --check`

No git hook / husky / lint-staged — CI `format:check` + scripts only
(the intrusive hook from the #438 spike is intentionally not carried
over).

## Commits (reviewable split)
1. `chore: add oxfmt formatter tooling` — config + scripts + devDep +
lockfile + CI step
2. `chore: apply oxfmt formatting` — repo-wide reformat (11 files,
line-wrapping only; verified non-semantic via `git diff -w`)

## eslint coexistence
`@sap/cds/eslint.config.mjs` is `recommended` +
`no-unused-vars`/`no-console` only (no stylistic rules) → no conflict.
`npm run lint` stays green.

## CI
One line added to the `lint` job in `ci.yml`: `npm run format:check`.

## Verified
`npm run format:check` ✅ (56 files) · `npm run lint` (--max-warnings=0)
✅ · `npm run test` → 53 pass / 14 skip, exit 0 · lockfile resolved from
public npm (0 internal-registry URLs).

## Coordination
Parallel PR #474 (jest→vitest) deletes `jest.config.js` — this PR
excludes it from formatting (0-line diff confirmed) so no collision.
`package.json` change here is additive (scripts + devDep); lockfile will
conflict with #474 — whichever merges second rebases.
… ConsoleMetricExporter (#479)

## What

Consolidates all outbox/metrics test-quality work into one PR (formerly
split as #479 + the stacked #480).

- **In-memory metric reader** —
`test/bookshop/lib/MyInMemoryMetricReader.js`, the metrics counterpart
to `MyInMemorySpanExporter` (#465). Mirrors production **DELTA**
temporality: SUM counters are accumulated across flushes into per-series
running totals; GAUGE datapoints keep the latest absolute value. Wired
via the `metrics-outbox`, `metrics-outbox-disabled`, and `metrics`
profiles in `.cdsrc.json`.
- **Outbox suites off console spying** — the three
`metrics-outbox*.test.js` suites drop the `console.dir` spy and fixed
`wait()` sleeps in favor of the reader + an `expectEventually()`
force-flush polling helper (fails fast if the meter provider isn't
wired). Folds in #445's polling approach.
- **ConsoleMetricExporter unit test** — new
`test/console-metric-exporter.test.js`, a pure unit test of the
exporter's formatting (db.pool table, queue table, other
single-vs-array, tenant variants, host-metrics aggregation,
shutdown→FAILED), mirroring `console-span-exporter.test.js`.
- **`metrics.test.js`** converted from scraping `cds.test.log()` output
to asserting on the in-memory reader's datapoints.

Metrics testing now mirrors the tracing side exactly: a to-console unit
test **plus** in-memory-exporter–based integration tests.

## Why

Follow-up to #465 (span test infra): eliminate console/log spying in the
metrics suite and give `ConsoleMetricExporter` direct unit coverage.

## Review addressed

- Bot review triaged: explicit `COUNTER_METRIC_NAMES` dispatch for
`isCounter`; real wall-clock debounce in the multitenant test; isolation
NOTE on the module-level singletons.
- Dropped the unused debug-log silencer in the multitenant suite (never
asserted). Kept the single-tenant `debugLog` mock — it backs a real
`unknown service` assertion.

Test-only change (no `lib/` change), so no CHANGELOG entry — consistent
with #465/#474/#476.

closes #478

Supersedes #445 and #480 (both folded in here) — I'll close them once
this merges.
…-logs, #482) (#483)

## What

Recreates dependabot #472 against `develop`, bumping the OTLP
dev-dependency group to 0.221:

- `@opentelemetry/exporter-metrics-otlp-grpc`: `^0.219` → `^0.221`
- `@opentelemetry/exporter-metrics-otlp-proto`: `^0.219` → `^0.221`
- `@opentelemetry/exporter-trace-otlp-grpc`: `^0.219` → `^0.221`
- `@opentelemetry/exporter-trace-otlp-proto`: `^0.219` → `^0.221`
- `@opentelemetry/instrumentation-host-metrics`: `^0.2.0` → `^0.4.0`
- `@opentelemetry/instrumentation-runtime-node`: `^0.32.0` → `^0.34.0`

## The pin

Adds a top-level `overrides` block pinning `@opentelemetry/sdk-logs` to
`0.219.0`:

```json
"overrides": {
  "@opentelemetry/sdk-logs": "0.219.0"
}
```

`@opentelemetry/sdk-logs` 0.221 introduces an unbounded memory leak that
OOM-crashes `test/logging.test.js` (heap climbs to ~3.8GB, crash after
~110s). Root-caused and tracked in #482. The pin keeps sdk-logs at 0.219
while everything else moves to 0.221, so `logging.test.js` behaves like
`develop` again (passes in ~5s).

Remove the pin once #482 is fixed.

## Verification

- `test/logging.test.js`: passes in ~4.9s, exits promptly (no OOM/hang)
- Full suite: 63 passed / 14 skipped, exits cleanly in ~7.4s
- Lint (`eslint . --max-warnings=0`) + format (`oxfmt --check`): clean
- Lock resolves sdk-logs to `0.219.0` while `exporter-trace-otlp-proto`
is `0.221.0` — pin is surgical

Supersedes #472.

No CHANGELOG entry (dev-deps only).

Refs #482.
…, §5) (#481)

## What

Started as removing dead test exclusions for #477 (§2 cds<9 guards, §5
HANA CI test-subset). Removing the HANA subset surfaced HANA-only
failures — including **two real production bugs** that the old 2-file
subset had been masking — so this PR also fixes those.

### Production fixes (lib/)
- **fix(tracing):** raw SQL leaked into HANA `INSERT` `prepare` span
names. The name-normalization regex used `.` which doesn't match
newlines, so HANA's multi-line `INSERT … WITH SRC AS (…)` SQL survived
in the span name. Now uses `[\s\S]` so it's stripped to operation +
table (matching SELECT); the SQL stays in `db.query.text`.
- **fix(metrics):** `*_storage_time_in_seconds` gauges were skewed by
the machine's UTC offset on HANA — HANA's `min()`/`max()` aggregates
return timezone-naive timestamps that `new Date()` parsed as local time.
Normalize to UTC before parsing.

Both carry CHANGELOG `### Fixed` entries.

### Test-suite changes (§2/§5 + HANA robustness)
- Remove all 8 dead `cds < 9` guards (§2) and the HANA CI 2-file
test-subset (§5) so the full suite runs on HANA.
- Convert queue/outbox span assertions to force-flush + poll (spans
export after fixed waits on slower HANA); filter the outbox-scan trace
primer out of the logging assertion; fix a lifecycle bug where a retry
handler fired with an undefined counter.
- **HANA CI config** (`vitest.config.mjs`, HANA-only): run files
serially (all files share one HDI container vs sqlite's per-file
in-memory DB), raise `hookTimeout`, HANA-only outbox settle in
`afterAll`, and `retry: 2` for residual shared-remote-container timing
variance. sqlite unchanged (retry:0, full parallelism).

### Skips (deviation from "no skips except passport" — conscious)
- Multitenancy tests (`tracing-mt`, `metrics-outbox-multitenant`) **skip
on HANA** with an explanatory comment: they need a bound BTP Service
Manager for MTX tenant subscription, which the single pre-provisioned
HDI container in CI doesn't provide. They still run fully on sqlite.
This means multitenancy has no HANA coverage — acknowledged; can be
revisited if the CI HANA setup gains MTX.

## Verification
- sqlite: 63 passed / 14 skipped / 0 failed.
- HANA (serial + retry:2): 64 passed / 6 skipped / 0 failed, stable
across repeated runs (the 6 skips = 2 multitenancy + 4 pre-existing
xtest/TODO in tracing.test.js).

Refs #477 (§1 queue-worker sqlite skips remain, gated on the cds
queue-spawn fix; §3 stubs pending).
# Chore: Clean Up Release Workflow

♻️ **Refactor**: Removed an outdated workaround comment from the release
workflow.

### Changes

* `.github/workflows/release.yml`: Removed the `# REVISIT: remove "npm
explore better-sqlite3 -- npm run install" with cds^10` comment that was
no longer relevant, cleaning up the release workflow configuration.

- [ ] 🔄 Regenerate and Update Summary



<details>
<summary>PR Bot Information</summary>

**Version:** `1.29.26`

- Output Template: [Default
Template](https://github.tools.sap/Code-Change-Intelligence/pr-bot/blob/main/src/services/llm/prompts/summary_default_output_template.md)
- Summary Prompt: [Default
Prompt](https://github.tools.sap/Code-Change-Intelligence/pr-bot/blob/main/src/services/llm/prompts/summary_instructions_prompt.md)
- File Content Strategy: Full file content
- Correlation ID: `8ac5e9d0-97bf-11f1-9e0b-c00ff05b9b1b`
- LLM: `anthropic--claude-4.6-sonnet`
- Event Trigger: `pull_request.opened`
</details>
…unpin sdk-logs (#482) (#489)

## Problem

Bumping the OTLP dev-deps to the `0.221` line pulled
`@opentelemetry/sdk-logs` 0.219 → 0.221, which made
`test/logging.test.js` OOM-crash (heap climbed to ~3.8 GB, ~110 s of GC
thrashing before dying). #483 shipped an interim workaround pinning
sdk-logs to `0.219.0` via a top-level `overrides` block. This PR removes
that pin and fixes the actual defect. Closes #482.

## Root cause

Two things combine:

1. **Constructor signature change (the real trigger).** In sdk-logs
0.221 the `SimpleLogRecordProcessor` and `BatchLogRecordProcessor`
constructors changed from positional `(exporter)` to an options object
`({ exporter })`. `lib/logging/index.js` still passed the exporter
positionally (both the built-in path and the custom-processor path in
`_getCustomProcessor`; the test's `MySimpleLogRecordProcessor` extends
the SDK base and forwards its args). So `options.exporter` was
`undefined`, and every emit called `core.internal._export(undefined,
…)`, which throws.

2. **Diag re-entrancy loop.** The thrown export error hits
`.catch(globalErrorHandler)` → `diag.error(...)`. Because `lib/index.js`
wires `diag.setLogger(cds.log('telemetry'), …)`, that diagnostic goes
back through `cds.log('telemetry')` → the overridden `cds.log.format` →
`logger.emit()` → export throws again → … an unbounded loop. Each hop is
a **microtask** (`processTicksAndRejections`), so the recursion is
asynchronous.

## Fix

- Construct the log processors with the `{ exporter }` options object
0.221 expects (built-in + custom-processor paths). This stops the export
from throwing, which removes the source of the diag error loop — the OOM
is gone.
- Add a re-entrancy guard (`let emitting`) around `logger.emit()` in the
`cds.log.format` interception: while inside our own `emit()` we still
run the original format work (log output unchanged) but skip
re-emitting. This is defense-in-depth against any **synchronous**
re-entry through the export/diag path; `try/finally` guarantees the flag
resets even if `emit()` throws.

## Unpin

- Removed the `@opentelemetry/sdk-logs` `overrides` pin; regenerated the
lockfile. sdk-logs now floats to `0.221.0`, matching the other OTLP
deps. This removes the #483 workaround pin.

## Verification

- `vitest run test/logging.test.js` — passes in ~1.3 s (was ~3.8 GB /
~110 s OOM crash on 0.221). The `logging.test.js` OOM was the repro; ran
it repeatedly, stable.
- Full sqlite suite: 63 passed / 14 skipped, no regressions.
- eslint `--max-warnings=0` clean; `oxfmt --check` clean.
- Lockfile: no internal-registry URLs; `npm ci` reproduces cleanly.
…er; drop tracing-attributes profile (#478) (#490)

## What

Group 1 of #478. Converts the three tracing tests that still spied on
`console.dir` to read structured `ReadableSpan` objects directly from
the in-memory span exporter:

- `test/tracing-remote-cloudsdk.test.js`
- `test/tracing-remote-native.test.js`
- `test/tracing-span-names.test.js`

Each now uses `--profile tracing-in-memory` (which wires
`MyInMemorySpanExporter` via `.cdsrc.json`) and reads over `captured`
(the module-level array of `ReadableSpan`s) instead of the `console.dir`
spy. `beforeEach(reset)` clears the buffer per test. All existing
assertions are preserved verbatim — `instrumentationScope.name` filters
(`@cap-js/telemetry`, `@opentelemetry/instrumentation-undici`), span
names, and attributes (`code.function.name`, `db.query.text`,
`sap.btp.destination`, the no-raw-SQL / no-URL-in-span-name checks).
`captured` holds full ReadableSpans with `instrumentationScope`, so the
filters just point at `captured`.

No flush/poll was needed: the spans for these single request/DB ops
appear synchronously in `captured` after the awaited call. In
`tracing-span-names.test.js`, `data.reset()` is itself traced, so the
buffer is cleared *after* reset (mirroring
`tracing-attributes.test.js`).

## Why

No more `console.dir` spying in the tracing tests. With all three files
migrated, the `[tracing-attributes]` profile in
`test/bookshop/.cdsrc.json` has no remaining consumers (verified: only
these 3 used it; `tracing-attributes.test.js` despite its name already
uses `tracing-in-memory`), so it is removed. This also resolves the
deferred "rename tracing-attributes → tracing-console" note — the
profile simply goes away.

Test-only change. No lib change, no CHANGELOG.

Refs #478 (group 1 only; group 2 done via #479, group 3 stays).
sjvans and others added 5 commits August 20, 2026 15:58
…ans + traceparent propagation (#475) (#491)

## What

Re-enables HTTP instrumentation in the test app (disabled by #474 to
stay behavior-neutral under jest) and asserts the incoming-request
tracing behavior it produces.

- **Test-app config** (`test/bookshop/package.json`): removed
`disableIncomingRequestInstrumentation` /
`disableOutgoingRequestInstrumentation` so both default to on; kept
`ignoreIncomingRequestHook`. Incoming HTTP requests now produce a SERVER
span (the root of each request trace) and outgoing requests produce
CLIENT spans.
- **`GET with traceparent is traced`** (was `xtest`): asserts the
incoming SERVER span adopts the W3C context from the `traceparent`
header — trace id `0af7651916cd43dd8448eb211c80319c`, parent span id
`b7ad6b7169203331`.
- **`instrumentation hooks`** (was empty `xtest`): asserts both
suppression mechanisms — the sampler's `ignoreIncomingPaths`
(`/odata/v4/admin/Authors`) and `MyIgnoreIncomingRequestHook`
(`/Books(252)`) — produce NO incoming SERVER span, while a non-ignored
path (`/Books`) does.
- **`$batch is traced`**: updated for reparenting — the single `$batch`
POST now yields ONE incoming SERVER root with both batch sub-operations
(CREATE Genres draft, READ Genres) nested beneath it (was 2 roots).
- **tracing-messaging CHECKs** (`without-outbox`, `inboxed`,
`persistent-outbox`): the producer trace is now rooted at the incoming
SERVER span (`AdminService - tx` nests under it), so the root assertion
was updated from name `AdminService - tx` to `SpanKind.SERVER` while
keeping the same nested-span assertions.

## Why

The test's HTTP client runs in-process; with outgoing instrumentation
now on, it would itself create a CLIENT span (an artificial extra root
that also overwrites a manually-set `traceparent`). A shared
`asExternalClient` helper runs client-side requests under
`suppressTracing` to model a real external, un-instrumented caller — the
outgoing CLIENT artifact is skipped and the genuine incoming SERVER span
is the trace root.

No `lib/` change (config + tests only). No CHANGELOG.

## Verification (sqlite)

- `test/tracing.test.js` — 11 passed / 2 skipped (the 2 formerly-`xtest`
now real + passing; `$batch` fixed; #477 §3 stubs remain skipped)
- `test/tracing-remote-cloudsdk.test.js` +
`test/tracing-remote-native.test.js` — pass (outgoing CLIENT
instrumentation didn't break them)
- Full suite — 65 passed / 12 skipped (was 63 / 14; the 2 newly-enabled
tests moved skipped→passed)
- lint + oxfmt clean; lockfile untouched

## HANA note

`inboxed` and `persistent-outbox` messaging tests are HANA-only (skipped
on sqlite) but share the same reparented producer-root assertion, so
they were updated too — HANA CI must be verified on this PR.

closes #475
## What

Extracts the six test helpers that had been copy-pasted across ~10 test
files into one shared module, `test/bookshop/lib/test-utils.js`:

- `flushSpans()` — unwrap the ProxyTracerProvider → delegate and
`forceFlush()`.
- `eventually(fn, { flush, timeout, interval })` — the unified
state-based poll. The span `eventually` and the metric
`expectEventually` were structurally identical, differing only in the
flush target + defaults, so they are now one function. `flush` defaults
to `flushSpans` (span callers); metric callers pass the reader's
`forceFlush` and their own timeout/interval.
- `clearOutbox(timeout = 5000)` — timeout-bounded `DELETE FROM
cds.outbox.Messages`.
- `asExternalClient(fn)` — runs `fn` under `suppressTracing`.
- `isOutboxScanTrace(g)` / `meaningful(groups)` — the outbox-scan-trace
filter, reconciled to a single `meaningful(groups)` signature.

## Why

These helpers landed independently during the HANA / instrumentation
work and drifted into ~10 near-identical copies. Centralizing them
removes the duplication (net -141 lines) and gives one place to maintain
the polling / flush / outbox-scan-filter logic.

## Notes

- **Behavior-preserving refactor** — no assertion changes, no
timeout/interval drift (each call site passes through its original
values), no predicate changes.
- Test-only. No `lib/**` change, no CHANGELOG (test-only), no dependency
change.
- `test-utils.js` stays dependency-light: it only requires
`@opentelemetry/api`, `@opentelemetry/core`, and `node:timers/promises`
— it does **not** `require('@sap/cds')` at module top (same rule that
protects the sibling exporters/reader). `clearOutbox` uses the global
`DELETE` provided by `cds.test()` at call time.

## Verification

- Full sqlite suite: **65 passed / 12 skipped** — matches the develop
baseline exactly.
- Per-file runs (metrics-outbox, metrics-outbox-multitenant, metrics,
tracing, tracing-messaging-without-outbox) all pass; the sqlite-gated
tracing files (outboxed-batch, scheduled) skip as before.
- eslint `--max-warnings=0` clean, `oxfmt --check` clean.

## HANA CI

Several affected files run **only on HANA** and share these helpers, so
they cannot be validated locally — please confirm HANA CI is green for:
- `test/tracing-scheduled.test.js`
- `test/tracing-messaging-inboxed.test.js`
- `test/tracing-messaging-persistent-outbox.test.js`
- `test/tracing-outboxed-batch.test.js`

(`test/tracing-messaging-without-outbox.test.js` does run on sqlite and
exercises the shared `meaningful`/`eventually` path — confirmed
passing.)

closes #488
…#486) (#493)

## What

Replaces the load-order-fragile `process.env.cds_requires_*` /
`process.env.cds_*` string-JSON test config with proper cds config:
`.cdsrc.json` profiles (composed with `--profile`) and `cds.test()`
args. Test-only + test-app-config change; no `lib/` change.

## Why

Setting config via `process.env.cds_*` string-JSON at module top is
load-order-sensitive: it must run before any `@sap/cds` require or it is
silently ignored (the root of the removed `delete cds.env` hack). cds
already supports the same config declaratively via `.cdsrc.json`
profiles.

Root cause of the old `// REVISIT: ... package.json wins` comments (why
some config had to be done via env): cds loads config sources
sequentially, `package.json` **after** `.cdsrc.json`, last-writer-wins.
So a `.cdsrc.json` profile could never override a key that
`package.json` set at its base. Fix: move those base defaults
(`log.cls_custom_fields`, `messaging.kind`/`file`) from
`test/bookshop/package.json` into `test/bookshop/.cdsrc.json` base, so
the `.cdsrc.json` profiles (same source) win as intended.

## Sites moved to profiles (all 8 — zero `process.env.cds_*` remain)

| Site | Was | Now |
|---|---|---|
| `logging.test.js` (cls_custom_fields, tracing.exporter:false) |
`cds_log`, `cds_requires_telemetry_tracing` | `[logging]` profile (+
base moved out of package.json) |
| `tracing.test.js` (sampler ignoreIncomingPaths) |
`cds_requires_telemetry_tracing_sampler` | new
`[sampler-ignore-authors]` profile, `--profile 'tracing-in-memory,
sampler-ignore-authors'` |
| `tracing-remote-native.test.js`, `tracing-attributes.test.js`
(native_fetch) | `cds_remote_native__fetch` | new `[native-fetch]`
profile (`remote.native_fetch: true`), `--profile 'tracing-in-memory,
native-fetch'` |
| `passport.test.js` (scheduling off) | `cds_requires_scheduling` | new
`[no-scheduling]` profile, `cds.test(dir, '--profile', 'no-scheduling')`
|
| `tracing-messaging-{inboxed,persistent-outbox,without-outbox}.test.js`
(messaging kind/file/flags) | `cds_requires_messaging` | existing
`[inboxed]`/`[persistent-outbox]`/`[without-outbox]` profiles now fully
carry it (messaging base moved out of package.json) |

## .cdsrc.json changes

- Added base `requires.messaging` (local-messaging / msg-box) and
`log.cls_custom_fields` (moved from package.json).
- `[logging]`: added `requires.telemetry.tracing.exporter: false`.
- New profiles: `[sampler-ignore-authors]`, `[native-fetch]`,
`[no-scheduling]`.

## Verification

- Full sqlite suite: **65 passed / 12 skipped** (identical to baseline,
same skip set).
- Each converted file passes individually on sqlite.
- `grep -rn "process.env.cds_" test/` → none remain.
- eslint (test/) + oxfmt clean; `grep -c int.repositories.cloud.sap
package-lock.json` = 0.

## HANA CI caveat

Profile changes are DB-agnostic, but these run on HANA and could only be
validated for config equivalence locally (config resolves identically to
the old env), not executed: `logging` (runs on both), and the HANA-only
`tracing-messaging-inboxed` + `tracing-messaging-persistent-outbox`.
HANA CI must validate them.

No lib change. No behavior change.

Closes #486
#494)

## What

Consolidates the hard-won test-suite knowledge that was scattered (and
duplicated) across `test/**` comment blocks into a single, authoritative
top-level **`TESTING.md`**, then trims the duplicated in-file comments
down to short pointers.

**New `TESTING.md`** covers:
- Running the tests (`npm test` / vitest, sqlite default; CI matrix Node
22/24 × cds 9/10; where the bookshop app lives)
- sqlite vs HANA (per-file in-memory DB vs one shared HDI container, and
the implications: serial file execution, raised timeouts, `retry: 2`,
outbox clear/settle; how the HANA path is signalled via
`TELEMETRY_TEST_HANA`; HANA is a separate `workflow_dispatch`-only
workflow, not PR CI)
- Config via `.cdsrc.json` profiles (not env) — the profile table +
compose syntax + the #486 load-order gotcha (don't reintroduce
`process.env.cds_*`)
- In-memory test infrastructure (`MyInMemorySpanExporter` /
`MyInMemoryMetricReader`, DELTA temporality, the
no-`require('@sap/cds')`-at-top rule)
- Shared test helpers (`test/utils.js` from #488) and the flush+poll
pattern
- HTTP instrumentation (#475) and why client requests are wrapped in
`asExternalClient`
- The only two sanctioned skips (#477): SAP Passport on sqlite;
multitenancy on HANA — plus the #477-tracked debt skips
- Known caveats (the `startup > NO_TELEMETRY=true` local-env artifact;
the internal-registry lockfile trap)

**Trimmed duplicated comments to pointers** (comment-only, no logic
change) in: `tracing-scheduled`, `tracing-outboxed-batch`,
`tracing-messaging-inboxed`, `tracing-messaging-persistent-outbox`,
`tracing-messaging.js`, `tracing-mt`, `metrics-outbox-multitenant`. The
repeated `cds.spawn on sqlite` skip rationale, the shared-HANA-container
outbox-bleed explanation, and the multitenancy Service-Manager note now
live in TESTING.md; each site keeps a one-line pointer. Genuinely local
rationale (timezone-bug explanation, per-test tree shapes,
`test/utils.js` own doc comments) is left untouched.

**README** gets a one-line link to TESTING.md under the contributing
section.

## Notes
- No lib/behavior change. Test-file edits are **comment-only**
(verified: every changed line in `test/**` starts with `//`). No change
to test logic, assertions, config, `vitest.config.mjs`, `.cdsrc.json`,
the exporters/reader, or the #477 gated skip logic.
- Full sqlite suite unchanged: **65 passed / 12 skipped**.
- `oxfmt --check` clean; changed files lint clean; `grep -c
int.repositories.cloud.sap package-lock.json` = 0 (lockfile untouched).
- No CHANGELOG entry (docs/test-only, not user-facing lib).

closes #487
…ith 10 updates (#485)

Bumps the dev-dependencies group with 10 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@cap-js/cds-test](https://github.com/cap-js/cds-test) | `1.0.1` |
`1.0.2` |
|
[@opentelemetry/exporter-metrics-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js)
| `0.219.0` | `0.221.0` |
|
[@opentelemetry/exporter-metrics-otlp-proto](https://github.com/open-telemetry/opentelemetry-js)
| `0.219.0` | `0.221.0` |
|
[@opentelemetry/exporter-trace-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js)
| `0.219.0` | `0.221.0` |
|
[@opentelemetry/exporter-trace-otlp-proto](https://github.com/open-telemetry/opentelemetry-js)
| `0.219.0` | `0.221.0` |
|
[@opentelemetry/instrumentation-host-metrics](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-host-metrics)
| `0.2.0` | `0.4.0` |
|
[@opentelemetry/instrumentation-runtime-node](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-runtime-node)
| `0.32.0` | `0.34.0` |
| [@sap/cds-mtxs](https://cap.cloud.sap/) | `4.0.1` | `4.0.2` |
| [axios](https://github.com/axios/axios) | `1.18.1` | `1.19.0` |
| [eslint](https://github.com/eslint/eslint) | `10.6.0` | `10.9.1` |


Updates `@cap-js/cds-test` from 1.0.1 to 1.0.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cap-js/cds-test/releases">@​cap-js/cds-test's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.2</h2>
<h3>Fixed</h3>
<ul>
<li><code>Buffer</code> request bodies are no longer serialized via
<code>JSON.stringify()</code></li>
<li>In <code>chest</code>-powered tests, <code>inspectPort</code>
configuration will be passed to <code>node:test.run(...)</code> when
debugging</li>
<li>In <code>chest</code>-powered tests, <code>concurrency</code> of
<code>node:test.run(...)</code> will be limitted to <code>1</code> to
enable debugging</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/cap-js/cds-test/blob/main/CHANGELOG.md">@​cap-js/cds-test's
changelog</a>.</em></p>
<blockquote>
<h2>[1.0.2] - 2026-08-04</h2>
<h3>Fixed</h3>
<ul>
<li><code>Buffer</code> request bodies are no longer serialized via
<code>JSON.stringify()</code></li>
<li>In <code>chest</code>-powered tests, <code>inspectPort</code>
configuration will be passed to <code>node:test.run(...)</code> when
debugging</li>
<li>In <code>chest</code>-powered tests, <code>concurrency</code> of
<code>node:test.run(...)</code> will be limitted to <code>1</code> to
enable debugging</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/cap-js/cds-test/commit/1304e9dcf0b1e59682cbb423ae2f6f2f268bf69a"><code>1304e9d</code></a>
fix: pass debug flag to runner (<a
href="https://redirect.github.com/cap-js/cds-test/issues/96">#96</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/540bc36058ad48dc29b66395eca49903b4adc84a"><code>540bc36</code></a>
Bump <code>@​cap-js/sqlite</code> from 2.4.0 to 3.0.2 (<a
href="https://redirect.github.com/cap-js/cds-test/issues/102">#102</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/4f150dfa04bbb96ce1d5cafbba499cfa0159b7a2"><code>4f150df</code></a>
fix(naxios): send Buffer request bodies as raw bytes (<a
href="https://redirect.github.com/cap-js/cds-test/issues/103">#103</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/4d6ca38e165d2f338b433a262d252f2412a04812"><code>4d6ca38</code></a>
feat: remove <code>sleep</code> API (<a
href="https://redirect.github.com/cap-js/cds-test/issues/98">#98</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/6d8eac954c61f0e6e56d06281212e12f826300e3"><code>6d8eac9</code></a>
chore: open dependency to cap-js/sqlite 3 (<a
href="https://redirect.github.com/cap-js/cds-test/issues/94">#94</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/7456cb5194babf19ca82add11f4cea6e10adcf15"><code>7456cb5</code></a>
fix: fulfilled and rejected can be awaited (<a
href="https://redirect.github.com/cap-js/cds-test/issues/93">#93</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/fa7721a04feb304839bbf2ade9e459196575d01e"><code>fa7721a</code></a>
Bump qs from 6.15.1 to 6.15.2 in the npm_and_yarn group across 1
directory (<a
href="https://redirect.github.com/cap-js/cds-test/issues/91">#91</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/7c833de09ad800a2502cfc73c96a6531cc8b5598"><code>7c833de</code></a>
fix: .to.be.fullfilled/rejected must return this (<a
href="https://redirect.github.com/cap-js/cds-test/issues/92">#92</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/0f1a65c82c24ff6c499f9cd50dba220441bf63b5"><code>0f1a65c</code></a>
Bump <code>@​cap-js/sqlite</code> from 2.2.0 to 2.4.0 (<a
href="https://redirect.github.com/cap-js/cds-test/issues/88">#88</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/90e6cf560bd54c8c223836d9349cecef86c48348"><code>90e6cf5</code></a>
Temporarily reverting cds.test --with-mocks</li>
<li>Additional commits viewable in <a
href="https://github.com/cap-js/cds-test/compare/v1.0.1...v1.0.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/exporter-metrics-otlp-grpc` from 0.219.0 to
0.221.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/exporter-metrics-otlp-grpc's
releases</a>.</em></p>
<blockquote>
<h2>experimental/v0.221.0</h2>
<h2>0.221.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>feat(sdk-logs)!: configure the force flush timeout per call <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6931">#6931</a>
<a href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a>
<ul>
<li>(user-facing):
<code>LoggerProviderOptions.forceFlushTimeoutMillis</code> has been
removed; pass <code>timeoutMillis</code> to
<code>LoggerProvider.forceFlush()</code> instead.</li>
</ul>
</li>
<li>feat(instrumentation-http)!: emit only stable HTTP semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes HTTP attribute or metric emission — old
(v1.7.0) and duplicate (<code>http</code>/<code>http/dup</code>) semconv
outputs have been removed. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-fetch)!: emit only stable HTTP semantic
conventions. The <code>semconvStabilityOptIn</code> instrumentation
config option has been removed; old (v1.7.0) and duplicate semconv
outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-xml-http-request)!: emit only stable HTTP
semantic conventions. The <code>semconvStabilityOptIn</code>
instrumentation config option has been removed; old (v1.7.0) and
duplicate semconv outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-grpc)!: emit only stable network semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes attribute emission —
<code>net.peer.name</code> and <code>net.peer.port</code> (old) are no
longer set; only <code>server.address</code> and
<code>server.port</code> (stable). <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): allow modifying ReadWriteLogRecord properties
(including hrTime, hrTimeObserved, and spanContext) in accordance with
the OpenTelemetry Logs specification <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6923">#6923</a>
<a href="https://github.com/Babul422"><code>@​Babul422</code></a></li>
<li>feat(sdk-node): emit a deprecation warning when the
<code>JaegerPropagator</code> is selected via
<code>OTEL_PROPAGATORS</code> or declarative config; use
<code>tracecontext</code> instead. <a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>feat(instrumentation-http): set <code>error.type</code> to status
code in metrics for error requests. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6919">#6919</a>
<a
href="https://github.com/raphael-theriault-swi"><code>@​raphael-theriault-swi</code></a></li>
</ul>
<h2>experimental/v0.220.0</h2>
<h2>0.220.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>refactor(sdk-logs)!: refactor BatchLogRecordProcessor constructor
signature <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6817">#6817</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>(user-facing): <code>BatchLogRecordProcessor</code> now takes a
single <code>options</code> object with all possible properties, instead
of two separate arguments. For example, before <code>new
BatchLogRecordProcessor(exporter, { maxQueueSize: 1000 })</code>, after
<code>new BatchLogRecordProcessor({ exporter, maxQueueSize: 1000
})</code>.</li>
<li><code>interface BufferConfig</code> -&gt; <code>interface
BatchLogRecordProcessorOptions</code>, and now includes the
<code>exporter</code> property</li>
<li><code>interface BatchLogRecordProcessorBrowserConfig</code> -&gt;
<code>interface BatchLogRecordProcessorBrowserOptions</code></li>
<li>(user-facing): <code>SimpleLogRecordProcessor</code> now takes a
single <code>options</code> object with all possible properties. For
example, before <code>new SimpleLogRecordProcessor(exporter)</code>,
after <code>new SimpleLogRecordProcessor({ exporter })</code>. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6836">#6836</a></li>
</ul>
</li>
<li>refactor(configuration)!: change config file parsing to <em>not</em>
add default values, nor merge <code>*_list</code> fields <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6765">#6765</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>Responsibility for handling <a
href="https://opentelemetry.io/docs/specs/otel/configuration/sdk/#create">declarative
config &quot;nullBehavior&quot; and &quot;defaultBehavior&quot;</a>
belongs in the &quot;create&quot; handling, currently in the
&quot;sdk-node&quot; package.</li>
</ul>
</li>
<li>docs(shim-opencensus): <em>Notice</em>: The
<code>@opentracing/shim-opencensus</code> package will be removed in SDK
3.x, planned for approximately September 2026.
<ul>
<li>The <a
href="https://opentelemetry.io/blog/2026/deprecating-opencensus-compatibility/">OpenCensus</a>
and <a
href="https://opentelemetry.io/blog/2026/deprecating-opentracing-compatibility/">OpenTracing</a>
compatibility requirements in the OpenTelemetry specification have been
deprecated.</li>
</ul>
</li>
<li>chore(sdk-node)!: Drop support for deprecated
OpenCensusMetricProducer from declarative config</li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(configuration): bump config schema to v1.1.0; rename
<code>without_scope_info</code> → <code>scope_info_enabled</code> and
<code>without_target_info/development</code> →
<code>target_info_enabled/development</code> on the Prometheus pull
exporter (semantics inverted), rename
<code>with_resource_constant_labels</code> →
<code>resource_constant_labels</code>. Validate <code>file_format</code>
per the configuration versioning spec: accept any minor version of major
<code>1</code> (e.g. <code>1.0</code>, <code>1.1</code>), warn when the
minor version is newer than supported, and reject other major versions.
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6781">#6781</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(sdk-node): wire up <code>id_generator</code> from declarative
config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6782">#6782</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(sdk-node): wire up <code>tracer_provider.sampler</code> from
declarative config (always_on, always_off, trace_id_ratio_based,
parent_based); unrecognized variants warn and fall back to
ParentBased(AlwaysOn) <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6506">#6506</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(propagator-env-carrier): empty name normalization <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6827">#6827</a>
<a href="https://github.com/pellared"><code>@​pellared</code></a></li>
<li>feat(propagator-env-carrier): make <code>EnvironmentGetter</code>
read the current <code>process.env</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6853">#6853</a>
<a href="https://github.com/pellared"><code>@​pellared</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-logs): stop <code>Logger.emit()</code> doing work (record
construction, metrics, processor <code>onEmit</code>) after the
<code>LoggerProvider</code> has shut down <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6826">#6826</a>
<a
href="https://github.com/anneheartrecord"><code>@​anneheartrecord</code></a></li>
<li>fix(sdk-node): pass all config properties (endpoint, headers,
timeout, TLS, compression, temporality preference, default histogram
aggregation) to OTLP metric exporters in declarative config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6814">#6814</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>fix(sdk-logs): default BatchLogRecordProcessor
<code>scheduleDelayMillis</code> is 1000 <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6796">#6796</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(configuration): percent-decode keys and values in
<code>resource.attributes_list</code> per spec <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6787">#6787</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>fix(configuration): default <code>log_level</code> to
<code>info</code> in env-based config initialization for consistency
with file-based config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6788">#6788</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/76fa6b509e2b48d9cbee31cb37a2efc61dc4d384"><code>76fa6b5</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6942">#6942</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/37878969526151bcda4449d92b0e69e913e0081e"><code>3787896</code></a>
chore(deps): update dependency webpack-cli to v7.2.1 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6934">#6934</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/be5f757aeea424130834183df8e1726b5797c636"><code>be5f757</code></a>
fix(deps): update dependency body-parser to v2.3.0 [security] (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6941">#6941</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f6d8fbe74242dbce7cd5c79ec4fca8617b9936bb"><code>f6d8fbe</code></a>
chore(deps): lock file maintenance (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6559">#6559</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/96127325ad0f158d55c19830aa20216eef65cf49"><code>9612732</code></a>
chore: remove examples/dice from workspaces (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6937">#6937</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/7107906d0ad48fb4c3b4c161de0e195cbe2b9059"><code>7107906</code></a>
chore: start using min-release-age in .npmrc, disable minimumReleaseAge
for r...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a7e5d11a3987427f61c7e51a5e0f55f057945d3d"><code>a7e5d11</code></a>
chore(deps): update dependency webpack to v5.108.4 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6933">#6933</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/af7a82de767f87e30c2871fe88526c528e06b84d"><code>af7a82d</code></a>
chore(deps): update dependency msw to v2.15.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6831">#6831</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b9f57c622f244ed7d7f671b02159e6c1c378a3c4"><code>b9f57c6</code></a>
chore(deps): update dependency <code>@​types/webpack-env</code> to
v1.18.8 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6877">#6877</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/cbb4abf849e40b154144ec35dfa20b597b2edc0a"><code>cbb4abf</code></a>
chore(deps): update ubuntu docker tag to v26 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6635">#6635</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.219.0...experimental/v0.221.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/exporter-metrics-otlp-proto` from 0.219.0 to
0.221.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/exporter-metrics-otlp-proto's
releases</a>.</em></p>
<blockquote>
<h2>experimental/v0.221.0</h2>
<h2>0.221.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>feat(sdk-logs)!: configure the force flush timeout per call <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6931">#6931</a>
<a href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a>
<ul>
<li>(user-facing):
<code>LoggerProviderOptions.forceFlushTimeoutMillis</code> has been
removed; pass <code>timeoutMillis</code> to
<code>LoggerProvider.forceFlush()</code> instead.</li>
</ul>
</li>
<li>feat(instrumentation-http)!: emit only stable HTTP semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes HTTP attribute or metric emission — old
(v1.7.0) and duplicate (<code>http</code>/<code>http/dup</code>) semconv
outputs have been removed. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-fetch)!: emit only stable HTTP semantic
conventions. The <code>semconvStabilityOptIn</code> instrumentation
config option has been removed; old (v1.7.0) and duplicate semconv
outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-xml-http-request)!: emit only stable HTTP
semantic conventions. The <code>semconvStabilityOptIn</code>
instrumentation config option has been removed; old (v1.7.0) and
duplicate semconv outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-grpc)!: emit only stable network semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes attribute emission —
<code>net.peer.name</code> and <code>net.peer.port</code> (old) are no
longer set; only <code>server.address</code> and
<code>server.port</code> (stable). <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): allow modifying ReadWriteLogRecord properties
(including hrTime, hrTimeObserved, and spanContext) in accordance with
the OpenTelemetry Logs specification <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6923">#6923</a>
<a href="https://github.com/Babul422"><code>@​Babul422</code></a></li>
<li>feat(sdk-node): emit a deprecation warning when the
<code>JaegerPropagator</code> is selected via
<code>OTEL_PROPAGATORS</code> or declarative config; use
<code>tracecontext</code> instead. <a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>feat(instrumentation-http): set <code>error.type</code> to status
code in metrics for error requests. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6919">#6919</a>
<a
href="https://github.com/raphael-theriault-swi"><code>@​raphael-theriault-swi</code></a></li>
</ul>
<h2>experimental/v0.220.0</h2>
<h2>0.220.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>refactor(sdk-logs)!: refactor BatchLogRecordProcessor constructor
signature <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6817">#6817</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>(user-facing): <code>BatchLogRecordProcessor</code> now takes a
single <code>options</code> object with all possible properties, instead
of two separate arguments. For example, before <code>new
BatchLogRecordProcessor(exporter, { maxQueueSize: 1000 })</code>, after
<code>new BatchLogRecordProcessor({ exporter, maxQueueSize: 1000
})</code>.</li>
<li><code>interface BufferConfig</code> -&gt; <code>interface
BatchLogRecordProcessorOptions</code>, and now includes the
<code>exporter</code> property</li>
<li><code>interface BatchLogRecordProcessorBrowserConfig</code> -&gt;
<code>interface BatchLogRecordProcessorBrowserOptions</code></li>
<li>(user-facing): <code>SimpleLogRecordProcessor</code> now takes a
single <code>options</code> object with all possible properties. For
example, before <code>new SimpleLogRecordProcessor(exporter)</code>,
after <code>new SimpleLogRecordProcessor({ exporter })</code>. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6836">#6836</a></li>
</ul>
</li>
<li>refactor(configuration)!: change config file parsing to <em>not</em>
add default values, nor merge <code>*_list</code> fields <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6765">#6765</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>Responsibility for handling <a
href="https://opentelemetry.io/docs/specs/otel/configuration/sdk/#create">declarative
config &quot;nullBehavior&quot; and &quot;defaultBehavior&quot;</a>
belongs in the &quot;create&quot; handling, currently in the
&quot;sdk-node&quot; package.</li>
</ul>
</li>
<li>docs(shim-opencensus): <em>Notice</em>: The
<code>@opentracing/shim-opencensus</code> package will be removed in SDK
3.x, planned for approximately September 2026.
<ul>
<li>The <a
href="https://opentelemetry.io/blog/2026/deprecating-opencensus-compatibility/">OpenCensus</a>
and <a
href="https://opentelemetry.io/blog/2026/deprecating-opentracing-compatibility/">OpenTracing</a>
compatibility requirements in the OpenTelemetry specification have been
deprecated.</li>
</ul>
</li>
<li>chore(sdk-node)!: Drop support for deprecated
OpenCensusMetricProducer from declarative config</li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(configuration): bump config schema to v1.1.0; rename
<code>without_scope_info</code> → <code>scope_info_enabled</code> and
<code>without_target_info/development</code> →
<code>target_info_enabled/development</code> on the Prometheus pull
exporter (semantics inverted), rename
<code>with_resource_constant_labels</code> →
<code>resource_constant_labels</code>. Validate <code>file_format</code>
per the configuration versioning spec: accept any minor version of major
<code>1</code> (e.g. <code>1.0</code>, <code>1.1</code>), warn when the
minor version is newer than supported, and reject other major versions.
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6781">#6781</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(sdk-node): wire up <code>id_generator</code> from declarative
config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6782">#6782</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(sdk-node): wire up <code>tracer_provider.sampler</code> from
declarative config (always_on, always_off, trace_id_ratio_based,
parent_based); unrecognized variants warn and fall back to
ParentBased(AlwaysOn) <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6506">#6506</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(propagator-env-carrier): empty name normalization <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6827">#6827</a>
<a href="https://github.com/pellared"><code>@​pellared</code></a></li>
<li>feat(propagator-env-carrier): make <code>EnvironmentGetter</code>
read the current <code>process.env</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6853">#6853</a>
<a href="https://github.com/pellared"><code>@​pellared</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-logs): stop <code>Logger.emit()</code> doing work (record
construction, metrics, processor <code>onEmit</code>) after the
<code>LoggerProvider</code> has shut down <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6826">#6826</a>
<a
href="https://github.com/anneheartrecord"><code>@​anneheartrecord</code></a></li>
<li>fix(sdk-node): pass all config properties (endpoint, headers,
timeout, TLS, compression, temporality preference, default histogram
aggregation) to OTLP metric exporters in declarative config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6814">#6814</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>fix(sdk-logs): default BatchLogRecordProcessor
<code>scheduleDelayMillis</code> is 1000 <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6796">#6796</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(configuration): percent-decode keys and values in
<code>resource.attributes_list</code> per spec <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6787">#6787</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>fix(configuration): default <code>log_level</code> to
<code>info</code> in env-based config initialization for consistency
with file-based config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6788">#6788</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/76fa6b509e2b48d9cbee31cb37a2efc61dc4d384"><code>76fa6b5</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6942">#6942</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/37878969526151bcda4449d92b0e69e913e0081e"><code>3787896</code></a>
chore(deps): update dependency webpack-cli to v7.2.1 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6934">#6934</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/be5f757aeea424130834183df8e1726b5797c636"><code>be5f757</code></a>
fix(deps): update dependency body-parser to v2.3.0 [security] (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6941">#6941</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f6d8fbe74242dbce7cd5c79ec4fca8617b9936bb"><code>f6d8fbe</code></a>
chore(deps): lock file maintenance (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6559">#6559</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/96127325ad0f158d55c19830aa20216eef65cf49"><code>9612732</code></a>
chore: remove examples/dice from workspaces (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6937">#6937</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/7107906d0ad48fb4c3b4c161de0e195cbe2b9059"><code>7107906</code></a>
chore: start using min-release-age in .npmrc, disable minimumReleaseAge
for r...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a7e5d11a3987427f61c7e51a5e0f55f057945d3d"><code>a7e5d11</code></a>
chore(deps): update dependency webpack to v5.108.4 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6933">#6933</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/af7a82de767f87e30c2871fe88526c528e06b84d"><code>af7a82d</code></a>
chore(deps): update dependency msw to v2.15.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6831">#6831</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b9f57c622f244ed7d7f671b02159e6c1c378a3c4"><code>b9f57c6</code></a>
chore(deps): update dependency <code>@​types/webpack-env</code> to
v1.18.8 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6877">#6877</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/cbb4abf849e40b154144ec35dfa20b597b2edc0a"><code>cbb4abf</code></a>
chore(deps): update ubuntu docker tag to v26 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6635">#6635</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.219.0...experimental/v0.221.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/exporter-trace-otlp-grpc` from 0.219.0 to
0.221.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/exporter-trace-otlp-grpc's
releases</a>.</em></p>
<blockquote>
<h2>experimental/v0.221.0</h2>
<h2>0.221.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>feat(sdk-logs)!: configure the force flush timeout per call <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6931">#6931</a>
<a href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a>
<ul>
<li>(user-facing):
<code>LoggerProviderOptions.forceFlushTimeoutMillis</code> has been
removed; pass <code>timeoutMillis</code> to
<code>LoggerProvider.forceFlush()</code> instead.</li>
</ul>
</li>
<li>feat(instrumentation-http)!: emit only stable HTTP semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes HTTP attribute or metric emission — old
(v1.7.0) and duplicate (<code>http</code>/<code>http/dup</code>) semconv
outputs have been removed. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-fetch)!: emit only stable HTTP semantic
conventions. The <code>semconvStabilityOptIn</code> instrumentation
config option has been removed; old (v1.7.0) and duplicate semconv
outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-xml-http-request)!: emit only stable HTTP
semantic conventions. The <code>semconvStabilityOptIn</code>
instrumentation config option has been removed; old (v1.7.0) and
duplicate semconv outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-grpc)!: emit only stable network semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes attribute emission —
<code>net.peer.name</code> and <code>net.peer.port</code> (old) are no
longer set; only <code>server.address</code> and
<code>server.port</code> (stable). <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): allow modifying ReadWriteLogRecord properties
(including hrTime, hrTimeObserved, and spanContext) in accordance with
the OpenTelemetry Logs specification <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6923">#6923</a>
<a href="https://github.com/Babul422"><code>@​Babul422</code></a></li>
<li>feat(sdk-node): emit a deprecation warning when the
<code>JaegerPropagator</code> is selected via
<code>OTEL_PROPAGATORS</code> or declarative config; use
<code>tracecontext</code> instead. <a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>feat(instrumentation-http): set <code>error.type</code> to status
code in metrics for error requests. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6919">#6919</a>
<a
href="https://github.com/raphael-theriault-swi"><code>@​raphael-theriault-swi</code></a></li>
</ul>
<h2>experimental/v0.220.0</h2>
<h2>0.220.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>refactor(sdk-logs)!: refactor BatchLogRecordProcessor constructor
signature <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6817">#6817</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>(user-facing): <code>BatchLogRecordProcessor</code> now takes a
single <code>options</code> object with all possible properties, instead
of two separate arguments. For example, before <code>new
BatchLogRecordProcessor(exporter, { maxQueueSize: 1000 })</code>, after
<code>new BatchLogRecordProcessor({ exporter, maxQueueSize: 1000
})</code>.</li>
<li><code>interface BufferConfig</code> -&gt; <code>interface
BatchLogRecordProcessorOptions</code>, and now includes the
<code>exporter</code> property</li>
<li><code>interface BatchLogRecordProcessorBrowserConfig</code> -&gt;
<code>interface BatchLogRecordProcessorBrowserOptions</code></li>
<li>(user-facing): <code>SimpleLogRecordProcessor</code> now takes a
single <code>options</code> object with all possible properties. For
example, before <code>new SimpleLogRecordProcessor(exporter)</code>,
after <code>new SimpleLogRecordProcessor({ exporter })</code>. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6836">#6836</a></li>
</ul>
</li>
<li>refactor(configuration)!: change config file parsing to <em>not</em>
add default values, nor merge <code>*_list</code> fields <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6765">#6765</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>Responsibility for handling <a
href="https://opentelemetry.io/docs/specs/otel/configuration/sdk/#create">declarative
config &quot;nullBehavior&quot; and &quot;defaultBehavior&quot;</a>
belongs in the &quot;create&quot; handling, currently in the
&quot;sdk-node&quot; package.</li>
</ul>
</li>
<li>docs(shim-opencensus): <em>Notice</em>: The
<code>@opentracing/shim-opencensus</code> package will be removed in SDK
3.x, planned for approximately September 2026.
<ul>
<li>The <a
href="https://opentelemetry.io/blog/2026/deprecating-opencensus-compatibility/">OpenCensus</a>
and <a
href="https://opentelemetry.io/blog/2026/deprecating-opentracing-compatibility/">OpenTracing</a>
compatibility requirements in the OpenTelemetry specification have been
deprecated.</li>
</ul>
</li>
<li>chore(sdk-node)!: Drop support for deprecated
OpenCensusMetricProducer from declarative config</li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(configuration): bump config schema to v1.1.0; rename
<code>without_scope_info</code> → <code>scope_info_enabled</code> and
<code>without_target_info/development</code> →
<code>target_info_enabled/development</code> on the Prometheus pull
exporter (semantics inverted), rename
<code>with_resource_constant_labels</code> →
<code>resource_constant_labels</code>. Validate <code>file_format</code>
per the configuration versioning spec: accept any minor version of major
<code>1</code> (e.g. <code>1.0</code>, <code>1.1</code>), warn when the
minor version is newer than supported, and reject other major versions.
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6781">#6781</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(sdk-node): wire up <code>id_generator</code> from declarative
config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6782">#6782</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(sdk-node): wire up <code>tracer_provider.sampler</code> from
declarative config (always_on, always_off, trace_id_ratio_based,
parent_based); unrecognized variants warn and fall back to
ParentBased(AlwaysOn) <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6506">#6506</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(propagator-env-carrier): empty name normalization <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6827">#6827</a>
<a href="https://github.com/pellared"><code>@​pellared</code></a></li>
<li>feat(propagator-env-carrier): make <code>EnvironmentGetter</code>
read the current <code>process.env</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6853">#6853</a>
<a href="https://github.com/pellared"><code>@​pellared</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-logs): stop <code>Logger.emit()</code> doing work (record
construction, metrics, processor <code>onEmit</code>) after the
<code>LoggerProvider</code> has shut down <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6826">#6826</a>
<a
href="https://github.com/anneheartrecord"><code>@​anneheartrecord</code></a></li>
<li>fix(sdk-node): pass all config properties (endpoint, headers,
timeout, TLS, compression, temporality preference, default histogram
aggregation) to OTLP metric exporters in declarative config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6814">#6814</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>fix(sdk-logs): default BatchLogRecordProcessor
<code>scheduleDelayMillis</code> is 1000 <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6796">#6796</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(configuration): percent-decode keys and values in
<code>resource.attributes_list</code> per spec <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6787">#6787</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>fix(configuration): default <code>log_level</code> to
<code>info</code> in env-based config initialization for consistency
with file-based config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6788">#6788</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/76fa6b509e2b48d9cbee31cb37a2efc61dc4d384"><code>76fa6b5</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6942">#6942</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/37878969526151bcda4449d92b0e69e913e0081e"><code>3787896</code></a>
chore(deps): update dependency webpack-cli to v7.2.1 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6934">#6934</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/be5f757aeea424130834183df8e1726b5797c636"><code>be5f757</code></a>
fix(deps): update dependency body-parser to v2.3.0 [security] (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6941">#6941</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f6d8fbe74242dbce7cd5c79ec4fca8617b9936bb"><code>f6d8fbe</code></a>
chore(deps): lock file maintenance (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6559">#6559</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/96127325ad0f158d55c19830aa20216eef65cf49"><code>9612732</code></a>
chore: remove examples/dice from workspaces (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6937">#6937</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/7107906d0ad48fb4c3b4c161de0e195cbe2b9059"><code>7107906</code></a>
chore: start using min-release-age in .npmrc, disable minimumReleaseAge
for r...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a7e5d11a3987427f61c7e51a5e0f55f057945d3d"><code>a7e5d11</code></a>
chore(deps): update dependency webpack to v5.108.4 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6933">#6933</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/af7a82de767f87e30c2871fe88526c528e06b84d"><code>af7a82d</code></a>
chore(deps): update dependency msw to v2.15.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6831">#6831</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b9f57c622f244ed7d7f671b02159e6c1c378a3c4"><code>b9f57c6</code></a>
chore(deps): update dependency <code>@​types/webpack-env</code> to
v1.18.8 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6877">#6877</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/cbb4abf849e40b154144ec35dfa20b597b2edc0a"><code>cbb4abf</code></a>
chore(deps): update ubuntu docker tag to v26 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6635">#6635</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.219.0...experimental/v0.221.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/exporter-trace-otlp-proto` from 0.219.0 to
0.221.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/exporter-trace-otlp-proto's
releases</a>.</em></p>
<blockquote>
<h2>experimental/v0.221.0</h2>
<h2>0.221.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>feat(sdk-logs)!: configure the force flush timeout per call <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6931">#6931</a>
<a href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a>
<ul>
<li>(user-facing):
<code>LoggerProviderOptions.forceFlushTimeoutMillis</code> has been
removed; pass <code>timeoutMillis</code> to
<code>LoggerProvider.forceFlush()</code> instead.</li>
</ul>
</li>
<li>feat(instrumentation-http)!: emit only stable HTTP semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes HTTP attribute or metric emission — old
(v1.7.0) and duplicate (<code>http</code>/<code>http/dup</code>) semconv
outputs have been removed. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-fetch)!: emit only stable HTTP semantic
conventions. The <code>semconvStabilityOptIn</code> instrumentation
config option has been removed; old (v1.7.0) and duplicate semconv
outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-xml-http-request)!: emit only stable HTTP
semantic conventions. The <code>semconvStabilityOptIn</code>
instrumentation config option has been removed; old (v1.7.0) and
duplicate semconv outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-grpc)!: emit only stable network semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes attribute emission —
<code>net.peer.name</code> and <code>net.peer.port</code> (old) are no
longer set; only <code>server.address</code> and
<code>server.port</code> (stable). <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): allow modifying ReadWriteLogRecord properties
(including hrTime, hrTimeObserved, and spanContext) in accordance with
the OpenTelemetry Logs specification <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6923">#6923</a>
<a href="https://github.com/Babul422"><code>@​Babul422</code></a></li>
<li>feat(sdk-node): emit a deprecation warning when the
<code>JaegerPropagator</code> is selected via
<code>OTEL_PROPAGATORS</code> or declarative config; use
<code>tracecontext</code> instead. <a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>feat(instrumentation-http): set <code>error.type</code> to status
code in metrics for error requests. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6919">#6919</a>
<a
href="https://github.com/raphael-theriault-swi"><code>@​raphael-theriault-swi</code></a></li>
</ul>
<h2>experimental/v0.220.0</h2>
<h2>0.220.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>refactor(sdk-logs)!: refactor BatchLogRecordProcessor constructor
signature <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6817">#6817</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>(user-facing): <code>BatchLogRecordProcessor</code> now takes a
single <code>options</code> object with all possible properties, instead
of two separate arguments. For example, before <code>new
BatchLogRecordProcessor(exporter, { maxQueueSize: 1000 })</code>, after
<code>new BatchLogRecordProcessor({ exporter, maxQueueSize: 1000
})</code>.</li>
<li><code>interface BufferConfig</code> -&gt; <code>interface
BatchLogRecordProcessorOptions</code>, and now includes the
<code>exporter</code> property</li>
<li><code>interface BatchLogRecordProcessorBrowserConfig</code> -&gt;
<code>interface BatchLogRecordProcessorBrowserOptions</code></li>
<li>(user-facing): <code>SimpleLogRecordProcessor</code> now takes a
single <code>options</code> object with all possible properties. For
example, before <code>new SimpleLogRecordProcessor(exporter)</code>,
after <code>new SimpleLogRecordProcessor({ exporter })</code>. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6836">#6836</a></li>
</ul>
</li>
<li>refactor(configuration)!: change config file parsing to <em>not</em>
add default values, nor merge <code>*_list</code> fields <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6765">#6765</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>Responsibility for handling <a
href="https://opentelemetry.io/docs/specs/otel/configuration/sdk/#create">declarative
config &quot;nullBehavior&quot; and &quot;defaultBehavior&quot;</a>
belongs in the &quot;create&quot; handling, currently in the
&quot;sdk-node&quot; package.</li>
</ul>
</li>
<li>docs(shim-opencensus): <em>Notice</em>: The
<code>@opentracing/shim-opencensus</code> package will be removed in SDK
3.x, planned for approximately September 2026.
<ul>
<li>The <a
href="https://opentelemetry.io/blog/2026/deprecating-opencensus-compatibility/">OpenCensus</a>
and <a
href="https://opentelemetry.io/blog/2026/deprecating-opentracing-compatibility/">OpenTracing</a>
compatibility requirements in the OpenTelemetry specification have been
deprecated.</li>
</ul>
</li>
<li>chore(sdk-node)!: Drop support for deprecated
OpenCensusMetricProducer from declarative config</li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(configuration): bump config schema to v1.1.0; rename
<code>without_scope_info</code> → <code>scope_info_enabled</code> and
<code>without_target_info/development</code> →
<code>target_info_enabled/development</code> on the Prometheus pull
exporter (semantics inverted), rename
<code>with_resource_constant_labels</code> →
<code>resource_constant_labels</code>. Validate <code>file_format</code>
per the configuration versioning spec: accept any minor version of major
<code>1</code> (e.g. <code>1.0</code>, <code>1.1</code>), warn when the
minor version is newer than supported, and reject other major versions.
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6781">#6781</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(sdk-node): wire up <code>id_generator</code> from declarative
config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6782">#6782</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(sdk-node): wire up <code>tracer_provider.sampler</code> from
declarative config (always_on, always_off, trace_id_ratio_based,
parent_based); unrecognized variants warn and fall back to
ParentBased(AlwaysOn) <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6506">#6506</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>feat(propagator-env-carrier): empty name normalization <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6827">#6827</a>
<a href="https://github.com/pellared"><code>@​pellared</code></a></li>
<li>feat(propagator-env-carrier): make <code>EnvironmentGetter</code>
read the current <code>process.env</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6853">#6853</a>
<a href="https://github.com/pellared"><code>@​pellared</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-logs): stop <code>Logger.emit()</code> doing work (record
construction, metrics, processor <code>onEmit</code>) after the
<code>LoggerProvider</code> has shut down <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6826">#6826</a>
<a
href="https://github.com/anneheartrecord"><code>@​anneheartrecord</code></a></li>
<li>fix(sdk-node): pass all config properties (endpoint, headers,
timeout, TLS, compression, temporality preference, default histogram
aggregation) to OTLP metric exporters in declarative config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6814">#6814</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>fix(sdk-logs): default BatchLogRecordProcessor
<code>scheduleDelayMillis</code> is 1000 <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6796">#6796</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(configuration): percent-decode keys and values in
<code>resource.attributes_list</code> per spec <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6787">#6787</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
<li>fix(configuration): default <code>log_level</code> to
<code>info</code> in env-based config initialization for consistency
with file-based config <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6788">#6788</a>
<a
href="https://github.com/MikeGoldsmith"><code>@​MikeGoldsmith</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/76fa6b509e2b48d9cbee31cb37a2efc61dc4d384"><code>76fa6b5</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6942">#6942</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/37878969526151bcda4449d92b0e69e913e0081e"><code>3787896</code></a>
chore(deps): update dependency webpack-cli to v7.2.1 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6934">#6934</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/be5f757aeea424130834183df8e1726b5797c636"><code>be5f757</code></a>
fix(deps): update dependency body-parser to v2.3.0 [security] (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6941">#6941</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f6d8fbe74242dbce7cd5c79ec4fca8617b9936bb"><code>f6d8fbe</code></a>
chore(deps): lock file maintenance (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6559">#6559</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/96127325ad0f158d55c19830aa20216eef65cf49"><code>9612732</code></a>
chore: remove examples/dice from workspaces (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6937">#6937</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/7107906d0ad48fb4c3b4c161de0e195cbe2b9059"><code>7107906</code></a>
chore: start using min-release-age in .npmrc, disable minimumReleaseAge
for r...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a7e5d11a3987427f61c7e51a5e0f55f057945d3d"><code>a7e5d11</code></a>
chore(deps): update dependency webpack to v5.108.4 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6933">#6933</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/af7a82de767f87e30c2871fe88526c528e06b84d"><code>af7a82d</code></a>
chore(deps): update dependency msw to v2.15.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6831">#6831</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b9f57c622f244ed7d7f671b02159e6c1c378a3c4"><code>b9f57c6</code></a>
chore(deps): update dependency <code>@​types/webpack-env</code> to
v1.18.8 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6877">#6877</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/cbb4abf849e40b154144ec35dfa20b597b2edc0a"><code>cbb4abf</code></a>
chore(deps): update ubuntu docker tag to v26 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6635">#6635</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.219.0...experimental/v0.221.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/instrumentation-host-metrics` from 0.2.0 to
0.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/releases">@​opentelemetry/instrumentation-host-metrics's
releases</a>.</em></p>
<blockquote>
<h2>instrumentation-host-metrics: v0.4.0</h2>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-host-metrics-v0.3.0...instrumentation-host-metrics-v0.4.0">0.4.0</a>
(2026-07-23)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3629">#3629</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/466d5def474cf251217881322ed4db13fad96b86">466d5de</a>)</li>
</ul>
<h2>instrumentation-console: v0.3.0</h2>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-console-v0.2.0...instrumentation-console-v0.3.0">0.3.0</a>
(2026-07-23)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3629">#3629</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/466d5def474cf251217881322ed4db13fad96b86">466d5de</a>)</li>
</ul>
<h2>sampler-aws-xray: v0.3.0</h2>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/sampler-aws-xray-v0.2.0...sampler-aws-xray-v0.3.0">0.3.0</a>
(2026-07-23)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>only emit stable http, network and database attributes (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3585">#3585</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>only emit stable http, network and database attributes (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3585">#3585</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/5b7dd0e102e940d653e04b08b5a1b721a8271037">5b7dd0e</a>)</li>
</ul>
<h2>instrumentation-host-metrics: v0.3.0</h2>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-host-metrics-v0.2.0...instrumentation-host-metrics-v0.3.0">0.3.0</a>
(2026-07-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3593">#3593</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/6dfb532ac16889c2f8656f2d9132a290e68cb570">6dfb532</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/packages/instrumentation-host-metrics/CHANGELOG.md">@​opentelemetry/instrumentation-host-metrics's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-host-metrics-v0.3.0...instrumentation-host-metrics-v0.4.0">0.4.0</a>
(2026-07-23)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3629">#3629</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/466d5def474cf251217881322ed4db13fad96b86">466d5de</a>)</li>
</ul>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-host-metrics-v0.2.0...instrumentation-host-metrics-v0.3.0">0.3.0</a>
(2026-07-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3593">#3593</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/6dfb532ac16889c2f8656f2d9132a290e68cb570">6dfb532</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commits/v0.4.0/packages/instrumentation-host-metrics">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for <code>@​opentelemetry/instrumentation-host-metrics</code>
since your current version.</p>
</details>
<br />

Updates `@opentelemetry/instrumentation-runtime-node` from 0.32.0 to
0.34.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/releases">@​opentelemetry/instrumentation-runtime-node's
releases</a>.</em></p>
<blockquote>
<h2>instrumentation-runtime-node: v0.34.0</h2>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-runtime-node-v0.33.0...instrumentation-runtime-node-v0.34.0">0.34.0</a>
(2026-07-23)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li><strong>instrumentation-runtime-node:</strong> remove deprecated
v8js.memory.heap.limit metric (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3632">#3632</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3629">#3629</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/466d5def474cf251217881322ed4db13fad96b86">466d5de</a>)</li>
<li><strong>instrumentation-runtime-node:</strong> remove deprecated
v8js.memory.heap.limit metric (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3632">#3632</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/f69829245952b95f5d1827b0a6cee67499f85bc6">f698292</a>)</li>
</ul>
<h2>instrumentation-runtime-node: v0.33.0</h2>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-runtime-node-v0.32.0...instrumentation-runtime-node-v0.33.0">0.33.0</a>
(2026-07-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3593">#3593</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/6dfb532ac16889c2f8656f2d9132a290e68cb570">6dfb532</a>)</li>
<li><strong>instrumentation-runtime-node:</strong> add active resource
gauge (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3361">#3361</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/f3d38e25cdb7a158a47c24fc344cb4e9c6f24252">f3d38e2</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/packages/instrumentation-runtime-node/CHANGELOG.md">@​opentelemetry/instrumentation-runtime-node's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-runtime-node-v0.33.0...instrumentation-runtime-node-v0.34.0">0.34.0</a>
(2026-07-23)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li><strong>instrumentation-runtime-node:</strong> remove deprecated
v8js.memory.heap.limit metric (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3632">#3632</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3629">#3629</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/466d5def474cf251217881322ed4db13fad96b86">466d5de</a>)</li>
<li><strong>instrumentation-runtime-node:</strong> remove deprecated
v8js.memory.heap.limit metric (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3632">#3632</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/f69829245952b95f5d1827b0a6cee67499f85bc6">f698292</a>)</li>
</ul>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-runtime-node-v0.32.0...instrumentation-runtime-node-v0.33.0">0.33.0</a>
(2026-07-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3593">#3593</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/6dfb532ac16889c2f8656f2d9132a290e68cb570">6dfb532</a>)</li>
<li><strong>instrumentation-runtime-node:</strong> add active resource
gauge (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3361">#3361</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/f3d38e25cdb7a158a47c24fc344cb4e9c6f24252">f3d38e2</a>)</li>
</ul>
</blockquote>
</details>
<details>
<s…
sjvans added 2 commits August 31, 2026 21:22
# Add CODEOWNERS File to Repository

### Chore

🔧 Added a `CODEOWNERS` file to the repository to define default code
ownership for all files.

### Changes

* `.github/CODEOWNERS`: New file that assigns `@cap-js/node-js-runtime`
as the default owner for all files in the repository (`*`). This ensures
the team is automatically requested for review on any pull request
affecting the codebase.

- [ ] 🔄 Regenerate and Update Summary



<details>
<summary>PR Bot Information</summary>

**Version:** `1.31.2`

- Output Template: [Default
Template](https://github.tools.sap/Code-Change-Intelligence/pr-bot/blob/main/src/services/llm/prompts/summary_default_output_template.md)
- Summary Prompt: [Default
Prompt](https://github.tools.sap/Code-Change-Intelligence/pr-bot/blob/main/src/services/llm/prompts/summary_instructions_prompt.md)
- File Content Strategy: Full file content
- Event Trigger: `pull_request.opened`
- LLM: `anthropic--claude-4.6-sonnet`
- Correlation ID: `d792fa50-a570-11f1-88af-cb6b0d808e90`
</details>
hm23
hm23 previously approved these changes Sep 1, 2026
Closes #411.

### Problem
The span processor was hard-coded off `NODE_ENV`: `BatchSpanProcessor`
in production, `SimpleSpanProcessor` otherwise. There was no way to
override it (e.g. force `SimpleSpanProcessor` in a prod-like env for
immediate export, or tune batching `config`).

### Change
Select the processor from config:
`cds.requires.telemetry.tracing.processor = { kind, config? }`.

- `kind` ∈ { `BatchSpanProcessor` (default), `SimpleSpanProcessor` }
- `config` is passed through to the processor's constructor
- The `[development]` profile defaults to `SimpleSpanProcessor` — so the
previous `NODE_ENV`-based behavior is preserved (production → Batch, dev
→ Simple), just now overridable.
- An unknown `kind` throws `Unknown span processor <kind>`, mirroring
the existing `sampler`/`propagator` kind-validation in
`lib/tracing/index.js`.

### Tests
- `test/tracing-processor-simple.test.js` — dev profile boot activates
`SimpleSpanProcessor`.
- `test/tracing-processor-batch.test.js` — explicit
`[tracing-batch-processor]` override activates `BatchSpanProcessor` (a
true `production` boot isn't feasible in the test app — it requires
`@cap-js/hana`; the production default is covered via this explicit
override).
- `test/tracing-processor-unknown.test.js` — an unknown kind throws via
the real factory (verified non-vacuous: removing the guard makes it
fail).

### Docs
- README: new **Span Processor** config section.
- CHANGELOG: `Added` bullet under 2.1.0.
sjvans and others added 2 commits September 7, 2026 22:24
…436)

- Add telemetry-to-caas kind definition in package.json
- Add getCredsForCaaS() to extract credentials from caas-service binding
- Add augmentCaaSCreds() to configure OTLP endpoint URL
- Handle CaaS in tracing and metrics exporters

Note: CaaS requires mTLS authentication with SAP-signed certificates.
The certificate must be obtained separately via BTP Certificate Service.

---------

Co-authored-by: sjvans <30337871+sjvans@users.noreply.github.com>
Co-authored-by: Sebastian Van Syckel <sebastian.van.syckel@sap.com>
dependabot Bot and others added 6 commits September 17, 2026 00:32
…ith 12 updates (#505)

Bumps the dev-dependencies group with 12 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@cap-js/cds-test](https://github.com/cap-js/cds-test) | `1.0.1` |
`1.0.2` |
| [@cap-js/sqlite](https://github.com/cap-js/cds-dbs) | `3.0.2` |
`3.1.0` |
|
[@opentelemetry/exporter-metrics-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js)
| `0.219.0` | `0.222.0` |
|
[@opentelemetry/exporter-metrics-otlp-proto](https://github.com/open-telemetry/opentelemetry-js)
| `0.219.0` | `0.222.0` |
|
[@opentelemetry/exporter-trace-otlp-grpc](https://github.com/open-telemetry/opentelemetry-js)
| `0.219.0` | `0.222.0` |
|
[@opentelemetry/exporter-trace-otlp-proto](https://github.com/open-telemetry/opentelemetry-js)
| `0.219.0` | `0.222.0` |
|
[@opentelemetry/instrumentation-host-metrics](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-host-metrics)
| `0.2.0` | `0.5.0` |
|
[@opentelemetry/instrumentation-runtime-node](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-runtime-node)
| `0.32.0` | `0.35.0` |
| [@sap/cds-mtxs](https://cap.cloud.sap/) | `4.0.1` | `4.1.0` |
| [axios](https://github.com/axios/axios) | `1.18.1` | `1.20.0` |
| [eslint](https://github.com/eslint/eslint) | `10.6.0` | `10.10.0` |
| [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) |
`30.4.2` | `30.5.1` |


Updates `@cap-js/cds-test` from 1.0.1 to 1.0.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cap-js/cds-test/releases">@​cap-js/cds-test's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.2</h2>
<h3>Fixed</h3>
<ul>
<li><code>Buffer</code> request bodies are no longer serialized via
<code>JSON.stringify()</code></li>
<li>In <code>chest</code>-powered tests, <code>inspectPort</code>
configuration will be passed to <code>node:test.run(...)</code> when
debugging</li>
<li>In <code>chest</code>-powered tests, <code>concurrency</code> of
<code>node:test.run(...)</code> will be limitted to <code>1</code> to
enable debugging</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/cap-js/cds-test/blob/main/CHANGELOG.md">@​cap-js/cds-test's
changelog</a>.</em></p>
<blockquote>
<h2>[1.0.2] - 2026-08-04</h2>
<h3>Fixed</h3>
<ul>
<li><code>Buffer</code> request bodies are no longer serialized via
<code>JSON.stringify()</code></li>
<li>In <code>chest</code>-powered tests, <code>inspectPort</code>
configuration will be passed to <code>node:test.run(...)</code> when
debugging</li>
<li>In <code>chest</code>-powered tests, <code>concurrency</code> of
<code>node:test.run(...)</code> will be limitted to <code>1</code> to
enable debugging</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/cap-js/cds-test/commit/1304e9dcf0b1e59682cbb423ae2f6f2f268bf69a"><code>1304e9d</code></a>
fix: pass debug flag to runner (<a
href="https://redirect.github.com/cap-js/cds-test/issues/96">#96</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/540bc36058ad48dc29b66395eca49903b4adc84a"><code>540bc36</code></a>
Bump <code>@​cap-js/sqlite</code> from 2.4.0 to 3.0.2 (<a
href="https://redirect.github.com/cap-js/cds-test/issues/102">#102</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/4f150dfa04bbb96ce1d5cafbba499cfa0159b7a2"><code>4f150df</code></a>
fix(naxios): send Buffer request bodies as raw bytes (<a
href="https://redirect.github.com/cap-js/cds-test/issues/103">#103</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/4d6ca38e165d2f338b433a262d252f2412a04812"><code>4d6ca38</code></a>
feat: remove <code>sleep</code> API (<a
href="https://redirect.github.com/cap-js/cds-test/issues/98">#98</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/6d8eac954c61f0e6e56d06281212e12f826300e3"><code>6d8eac9</code></a>
chore: open dependency to cap-js/sqlite 3 (<a
href="https://redirect.github.com/cap-js/cds-test/issues/94">#94</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/7456cb5194babf19ca82add11f4cea6e10adcf15"><code>7456cb5</code></a>
fix: fulfilled and rejected can be awaited (<a
href="https://redirect.github.com/cap-js/cds-test/issues/93">#93</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/fa7721a04feb304839bbf2ade9e459196575d01e"><code>fa7721a</code></a>
Bump qs from 6.15.1 to 6.15.2 in the npm_and_yarn group across 1
directory (<a
href="https://redirect.github.com/cap-js/cds-test/issues/91">#91</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/7c833de09ad800a2502cfc73c96a6531cc8b5598"><code>7c833de</code></a>
fix: .to.be.fullfilled/rejected must return this (<a
href="https://redirect.github.com/cap-js/cds-test/issues/92">#92</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/0f1a65c82c24ff6c499f9cd50dba220441bf63b5"><code>0f1a65c</code></a>
Bump <code>@​cap-js/sqlite</code> from 2.2.0 to 2.4.0 (<a
href="https://redirect.github.com/cap-js/cds-test/issues/88">#88</a>)</li>
<li><a
href="https://github.com/cap-js/cds-test/commit/90e6cf560bd54c8c223836d9349cecef86c48348"><code>90e6cf5</code></a>
Temporarily reverting cds.test --with-mocks</li>
<li>Additional commits viewable in <a
href="https://github.com/cap-js/cds-test/compare/v1.0.1...v1.0.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `@cap-js/sqlite` from 3.0.2 to 3.1.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cap-js/cds-dbs/releases">@​cap-js/sqlite's
releases</a>.</em></p>
<blockquote>
<h2>db-service: v3.1.0</h2>
<h2><a
href="https://github.com/cap-js/cds-dbs/compare/db-service-v3.0.1...db-service-v3.1.0">3.1.0</a>
(2026-09-07)</h2>
<h3>Added</h3>
<ul>
<li>rank $search results by relevance (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1725">#1725</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/bc931601a721f7c9e00b89e6844ba064352b541d">bc93160</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li><strong>cqn4sql:</strong> reject overly nested query expressions
instead of crashing (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1712">#1712</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/29a45b7daadbc77433b882148700d73c00efae62">29a45b7</a>)</li>
<li>don't throw when releasing/destroying a resource that's no longer in
the pool (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1696">#1696</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/5d3b277a1cf7cac02e41f2f24975a8e9473e5b5e">5d3b277</a>)</li>
<li>exclude cds.Vector from wildcard select expansion (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1716">#1716</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/398bacc2a74883dcd93acba288deae362570a4c1">398bacc</a>)</li>
<li>INSERT.from(SELECT) used non-existent <code>value</code> (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1565">#1565</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/fd98844c83a78d6cf2b0b71344d3ee1d88528106">fd98844</a>)</li>
<li><strong>pool:</strong> recover lost connection after stale acquire
timeout (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1724">#1724</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/cf6af991d02be7cf5f861e2a424d4d733b8f9238">cf6af99</a>)</li>
<li>pql groupby path expression (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1700">#1700</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/82b5e0385e680321f30c352f0f78ade6d25259a6">82b5e03</a>)</li>
</ul>
<h2>hana: v3.1.0</h2>
<h2><a
href="https://github.com/cap-js/cds-dbs/compare/hana-v3.0.2...hana-v3.1.0">3.1.0</a>
(2026-09-07)</h2>
<h3>Added</h3>
<ul>
<li>cache prepare statement for reuse (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1496">#1496</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/01cb9815bf56836d9ea9ea1f81859d2c63a56b62">01cb981</a>)</li>
<li>rank $search results by relevance (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1725">#1725</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/bc931601a721f7c9e00b89e6844ba064352b541d">bc93160</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li><strong>hana:</strong> propagate error codes (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1695">#1695</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/f0d2fa10b6530b36811028399a3f4a96faf2adc9">f0d2fa1</a>)</li>
<li>INSERT.from(SELECT) used non-existent <code>value</code> (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1565">#1565</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/fd98844c83a78d6cf2b0b71344d3ee1d88528106">fd98844</a>)</li>
<li>usage of expands in object mode streaming (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1705">#1705</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/7a7688f580701872ba8510f5709915e0805cbea0">7a7688f</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​cap-js/db-service</code> bumped from ^3.0.1 to ^3.1.0</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>postgres: v3.1.0</h2>
<h2><a
href="https://github.com/cap-js/cds-dbs/compare/postgres-v3.0.1...postgres-v3.1.0">3.1.0</a>
(2026-09-07)</h2>
<h3>Added</h3>
<ul>
<li>Add support for <code>cds.Vector</code> on SQLite and Postgres (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1676">#1676</a>)
(<a
href="https://github.com/cap-js/cds-dbs/commit/f0d220324e8a1c7489966545000476bfd33f6b17">f0d2203</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/cap-js/cds-dbs/commit/dba03e9348c9298369d7ebf446070177845b8268"><code>dba03e9</code></a>
chore: release main (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1703">#1703</a>)</li>
<li><a
href="https://github.com/cap-js/cds-dbs/commit/bc931601a721f7c9e00b89e6844ba064352b541d"><code>bc93160</code></a>
feat: rank $search results by relevance (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1725">#1725</a>)</li>
<li><a
href="https://github.com/cap-js/cds-dbs/commit/633db11a4db43b44fa72d9fc202c540d75fbdacd"><code>633db11</code></a>
test(<code>cqn4sql</code>): refactor calculated elements test suite (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1643">#1643</a>)</li>
<li><a
href="https://github.com/cap-js/cds-dbs/commit/cf6af991d02be7cf5f861e2a424d4d733b8f9238"><code>cf6af99</code></a>
fix(pool): recover lost connection after stale acquire timeout (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1724">#1724</a>)</li>
<li><a
href="https://github.com/cap-js/cds-dbs/commit/c9228a69cdfb46f51d3e585e0cc097ec1e735255"><code>c9228a6</code></a>
chore(deps-dev): bump <code>@​sap/hana-client</code> from 2.29.25 to
2.29.27 in the depende...</li>
<li><a
href="https://github.com/cap-js/cds-dbs/commit/1443f85963bb93a5f4a74190b75eaf3f4fa26eeb"><code>1443f85</code></a>
chore(deps): bump qs from 6.15.3 to 6.16.0 (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1722">#1722</a>)</li>
<li><a
href="https://github.com/cap-js/cds-dbs/commit/398bacc2a74883dcd93acba288deae362570a4c1"><code>398bacc</code></a>
fix: exclude cds.Vector from wildcard select expansion (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1716">#1716</a>)</li>
<li><a
href="https://github.com/cap-js/cds-dbs/commit/fd98844c83a78d6cf2b0b71344d3ee1d88528106"><code>fd98844</code></a>
fix: INSERT.from(SELECT) used non-existent <code>value</code> (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1565">#1565</a>)</li>
<li><a
href="https://github.com/cap-js/cds-dbs/commit/01cb9815bf56836d9ea9ea1f81859d2c63a56b62"><code>01cb981</code></a>
feat: cache prepare statement for reuse (<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1496">#1496</a>)</li>
<li><a
href="https://github.com/cap-js/cds-dbs/commit/29a45b7daadbc77433b882148700d73c00efae62"><code>29a45b7</code></a>
fix(cqn4sql): reject overly nested query expressions instead of crashing
(<a
href="https://redirect.github.com/cap-js/cds-dbs/issues/1712">#1712</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/cap-js/cds-dbs/compare/hana-v3.0.2...hana-v3.1.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/exporter-metrics-otlp-grpc` from 0.219.0 to
0.222.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/exporter-metrics-otlp-grpc's
releases</a>.</em></p>
<blockquote>
<h2>experimental/v0.222.0</h2>
<h2>0.222.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>fix(sdk-node)!: fail-fast on Propagator creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6930">#6930</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on MeterProvider creation from config file
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6954">#6954</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on TracerProvider creation from config
file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6962">#6962</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on Resource creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6989">#6989</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>
<p>This also breaks some usage of <code>startNodeSDK()</code> for
<em>environment-based</em> config, i.e. when <em>not</em> using a config
file. For example with <code>OTEL_NODE_RESOURCE_DETECTORS=all</code>, it
results in an error message and a no-op SDK.
(This does not impact users of <code>new NodeSDK()</code> -- the
currently recommended mechanism to start an SDK using this package.)</p>
<pre lang="bash"><code>Could not create OpenTelemetry SDK from
configuration, SDK will not be setup: unknown
ExperimentalResourceDetector name in configuration:
&quot;container&quot;
</code></pre>
</li>
</ul>
</li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): deprecate <code>SdkLogRecord</code> in favor of
<code>ReadWriteLogRecord</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6939">#6939</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(instrumentation-http): redact sensitive query parameters on
incoming (server) spans; add <code>redactedQueryParamsServer</code>
config option <a
href="https://github.com/dyladan"><code>@​dyladan</code></a></li>
<li>fix(sdk-node): support <code>headers_list</code> when creating OTLP
exporters from declarative configuration <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6953">#6953</a>
<a
href="https://github.com/JacksonWeber"><code>@​JacksonWeber</code></a></li>
</ul>
<h3>:books: Documentation</h3>
<ul>
<li>docs(sdk-logs): mark logger configuration as experimental <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6996">#6996</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>docs(configuration): document the <code>ConfigModel</code> suffix
naming convention for exported types <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6612">#6612</a>
<a
href="https://github.com/vedantchalke36"><code>@​vedantchalke36</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>refactor(sampler-jaeger-remote): remove <code>axios</code>
dependency and use <code>fetch</code> to get the sampler configuration
from Jaeger API <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6963">#6963</a>
<a
href="https://github.com/david-luna"><code>@​david-luna</code></a></li>
</ul>
<h2>experimental/v0.221.0</h2>
<h2>0.221.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>feat(sdk-logs)!: configure the force flush timeout per call <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6931">#6931</a>
<a href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a>
<ul>
<li>(user-facing):
<code>LoggerProviderOptions.forceFlushTimeoutMillis</code> has been
removed; pass <code>timeoutMillis</code> to
<code>LoggerProvider.forceFlush()</code> instead.</li>
</ul>
</li>
<li>feat(instrumentation-http)!: emit only stable HTTP semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes HTTP attribute or metric emission — old
(v1.7.0) and duplicate (<code>http</code>/<code>http/dup</code>) semconv
outputs have been removed. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-fetch)!: emit only stable HTTP semantic
conventions. The <code>semconvStabilityOptIn</code> instrumentation
config option has been removed; old (v1.7.0) and duplicate semconv
outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-xml-http-request)!: emit only stable HTTP
semantic conventions. The <code>semconvStabilityOptIn</code>
instrumentation config option has been removed; old (v1.7.0) and
duplicate semconv outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-grpc)!: emit only stable network semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes attribute emission —
<code>net.peer.name</code> and <code>net.peer.port</code> (old) are no
longer set; only <code>server.address</code> and
<code>server.port</code> (stable). <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): allow modifying ReadWriteLogRecord properties
(including hrTime, hrTimeObserved, and spanContext) in accordance with
the OpenTelemetry Logs specification <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6923">#6923</a>
<a href="https://github.com/Babul422"><code>@​Babul422</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/0b72a81636fa476e8f1f1afd2ae0c90a1362194c"><code>0b72a81</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7044">#7044</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a9c5338a9f485f1433df9308f24bd7397a4a0321"><code>a9c5338</code></a>
ci: roll prerelease changelog into one final release changelog (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7045">#7045</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f41805e769ba10fb6dae72a4b7a5a3dc67cca82e"><code>f41805e</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7042">#7042</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b85eb28343ff6234e2bb4d46b7b4a3d360e5ea2f"><code>b85eb28</code></a>
chore(instrumentation-http): fix lint errors (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7039">#7039</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/3f9253009be2ae48419432e79a597ead7be8be6a"><code>3f92530</code></a>
ci: support pre-releases and major version bumps in release workflow (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7035">#7035</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/82a58316a63b6fde62afd268e145b82222d328cf"><code>82a5831</code></a>
docs(otlp-exporter-base): document HTTP exporter options (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6735">#6735</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/e086dec7f9304107ef6d50b5877be88895c06aa7"><code>e086dec</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/59dac70d00d46fa56b2b921cf721fd922730f23d"><code>59dac70</code></a>
chore(deps): update jamesives/github-pages-deploy-action action to
v4.9.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7">#7</a>...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/d0ce7532b058631ec9eec111c04fefe7fd873e1f"><code>d0ce753</code></a>
chore: add <a
href="https://github.com/maryliag"><code>@​maryliag</code></a> to
maintainers (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7024">#7024</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/03469a129f97265c8eec93d566e9e00d4f741db3"><code>03469a1</code></a>
chore(deps): update open-telemetry/shared-workflows action to v0.10.0
(<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7032">#7032</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.219.0...experimental/v0.222.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/exporter-metrics-otlp-proto` from 0.219.0 to
0.222.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/exporter-metrics-otlp-proto's
releases</a>.</em></p>
<blockquote>
<h2>experimental/v0.222.0</h2>
<h2>0.222.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>fix(sdk-node)!: fail-fast on Propagator creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6930">#6930</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on MeterProvider creation from config file
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6954">#6954</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on TracerProvider creation from config
file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6962">#6962</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on Resource creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6989">#6989</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>
<p>This also breaks some usage of <code>startNodeSDK()</code> for
<em>environment-based</em> config, i.e. when <em>not</em> using a config
file. For example with <code>OTEL_NODE_RESOURCE_DETECTORS=all</code>, it
results in an error message and a no-op SDK.
(This does not impact users of <code>new NodeSDK()</code> -- the
currently recommended mechanism to start an SDK using this package.)</p>
<pre lang="bash"><code>Could not create OpenTelemetry SDK from
configuration, SDK will not be setup: unknown
ExperimentalResourceDetector name in configuration:
&quot;container&quot;
</code></pre>
</li>
</ul>
</li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): deprecate <code>SdkLogRecord</code> in favor of
<code>ReadWriteLogRecord</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6939">#6939</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(instrumentation-http): redact sensitive query parameters on
incoming (server) spans; add <code>redactedQueryParamsServer</code>
config option <a
href="https://github.com/dyladan"><code>@​dyladan</code></a></li>
<li>fix(sdk-node): support <code>headers_list</code> when creating OTLP
exporters from declarative configuration <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6953">#6953</a>
<a
href="https://github.com/JacksonWeber"><code>@​JacksonWeber</code></a></li>
</ul>
<h3>:books: Documentation</h3>
<ul>
<li>docs(sdk-logs): mark logger configuration as experimental <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6996">#6996</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>docs(configuration): document the <code>ConfigModel</code> suffix
naming convention for exported types <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6612">#6612</a>
<a
href="https://github.com/vedantchalke36"><code>@​vedantchalke36</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>refactor(sampler-jaeger-remote): remove <code>axios</code>
dependency and use <code>fetch</code> to get the sampler configuration
from Jaeger API <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6963">#6963</a>
<a
href="https://github.com/david-luna"><code>@​david-luna</code></a></li>
</ul>
<h2>experimental/v0.221.0</h2>
<h2>0.221.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>feat(sdk-logs)!: configure the force flush timeout per call <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6931">#6931</a>
<a href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a>
<ul>
<li>(user-facing):
<code>LoggerProviderOptions.forceFlushTimeoutMillis</code> has been
removed; pass <code>timeoutMillis</code> to
<code>LoggerProvider.forceFlush()</code> instead.</li>
</ul>
</li>
<li>feat(instrumentation-http)!: emit only stable HTTP semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes HTTP attribute or metric emission — old
(v1.7.0) and duplicate (<code>http</code>/<code>http/dup</code>) semconv
outputs have been removed. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-fetch)!: emit only stable HTTP semantic
conventions. The <code>semconvStabilityOptIn</code> instrumentation
config option has been removed; old (v1.7.0) and duplicate semconv
outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-xml-http-request)!: emit only stable HTTP
semantic conventions. The <code>semconvStabilityOptIn</code>
instrumentation config option has been removed; old (v1.7.0) and
duplicate semconv outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-grpc)!: emit only stable network semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes attribute emission —
<code>net.peer.name</code> and <code>net.peer.port</code> (old) are no
longer set; only <code>server.address</code> and
<code>server.port</code> (stable). <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): allow modifying ReadWriteLogRecord properties
(including hrTime, hrTimeObserved, and spanContext) in accordance with
the OpenTelemetry Logs specification <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6923">#6923</a>
<a href="https://github.com/Babul422"><code>@​Babul422</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/0b72a81636fa476e8f1f1afd2ae0c90a1362194c"><code>0b72a81</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7044">#7044</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a9c5338a9f485f1433df9308f24bd7397a4a0321"><code>a9c5338</code></a>
ci: roll prerelease changelog into one final release changelog (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7045">#7045</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f41805e769ba10fb6dae72a4b7a5a3dc67cca82e"><code>f41805e</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7042">#7042</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b85eb28343ff6234e2bb4d46b7b4a3d360e5ea2f"><code>b85eb28</code></a>
chore(instrumentation-http): fix lint errors (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7039">#7039</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/3f9253009be2ae48419432e79a597ead7be8be6a"><code>3f92530</code></a>
ci: support pre-releases and major version bumps in release workflow (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7035">#7035</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/82a58316a63b6fde62afd268e145b82222d328cf"><code>82a5831</code></a>
docs(otlp-exporter-base): document HTTP exporter options (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6735">#6735</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/e086dec7f9304107ef6d50b5877be88895c06aa7"><code>e086dec</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/59dac70d00d46fa56b2b921cf721fd922730f23d"><code>59dac70</code></a>
chore(deps): update jamesives/github-pages-deploy-action action to
v4.9.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7">#7</a>...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/d0ce7532b058631ec9eec111c04fefe7fd873e1f"><code>d0ce753</code></a>
chore: add <a
href="https://github.com/maryliag"><code>@​maryliag</code></a> to
maintainers (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7024">#7024</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/03469a129f97265c8eec93d566e9e00d4f741db3"><code>03469a1</code></a>
chore(deps): update open-telemetry/shared-workflows action to v0.10.0
(<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7032">#7032</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.219.0...experimental/v0.222.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/exporter-trace-otlp-grpc` from 0.219.0 to
0.222.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/exporter-trace-otlp-grpc's
releases</a>.</em></p>
<blockquote>
<h2>experimental/v0.222.0</h2>
<h2>0.222.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>fix(sdk-node)!: fail-fast on Propagator creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6930">#6930</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on MeterProvider creation from config file
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6954">#6954</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on TracerProvider creation from config
file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6962">#6962</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on Resource creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6989">#6989</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>
<p>This also breaks some usage of <code>startNodeSDK()</code> for
<em>environment-based</em> config, i.e. when <em>not</em> using a config
file. For example with <code>OTEL_NODE_RESOURCE_DETECTORS=all</code>, it
results in an error message and a no-op SDK.
(This does not impact users of <code>new NodeSDK()</code> -- the
currently recommended mechanism to start an SDK using this package.)</p>
<pre lang="bash"><code>Could not create OpenTelemetry SDK from
configuration, SDK will not be setup: unknown
ExperimentalResourceDetector name in configuration:
&quot;container&quot;
</code></pre>
</li>
</ul>
</li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): deprecate <code>SdkLogRecord</code> in favor of
<code>ReadWriteLogRecord</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6939">#6939</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(instrumentation-http): redact sensitive query parameters on
incoming (server) spans; add <code>redactedQueryParamsServer</code>
config option <a
href="https://github.com/dyladan"><code>@​dyladan</code></a></li>
<li>fix(sdk-node): support <code>headers_list</code> when creating OTLP
exporters from declarative configuration <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6953">#6953</a>
<a
href="https://github.com/JacksonWeber"><code>@​JacksonWeber</code></a></li>
</ul>
<h3>:books: Documentation</h3>
<ul>
<li>docs(sdk-logs): mark logger configuration as experimental <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6996">#6996</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>docs(configuration): document the <code>ConfigModel</code> suffix
naming convention for exported types <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6612">#6612</a>
<a
href="https://github.com/vedantchalke36"><code>@​vedantchalke36</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>refactor(sampler-jaeger-remote): remove <code>axios</code>
dependency and use <code>fetch</code> to get the sampler configuration
from Jaeger API <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6963">#6963</a>
<a
href="https://github.com/david-luna"><code>@​david-luna</code></a></li>
</ul>
<h2>experimental/v0.221.0</h2>
<h2>0.221.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>feat(sdk-logs)!: configure the force flush timeout per call <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6931">#6931</a>
<a href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a>
<ul>
<li>(user-facing):
<code>LoggerProviderOptions.forceFlushTimeoutMillis</code> has been
removed; pass <code>timeoutMillis</code> to
<code>LoggerProvider.forceFlush()</code> instead.</li>
</ul>
</li>
<li>feat(instrumentation-http)!: emit only stable HTTP semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes HTTP attribute or metric emission — old
(v1.7.0) and duplicate (<code>http</code>/<code>http/dup</code>) semconv
outputs have been removed. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-fetch)!: emit only stable HTTP semantic
conventions. The <code>semconvStabilityOptIn</code> instrumentation
config option has been removed; old (v1.7.0) and duplicate semconv
outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-xml-http-request)!: emit only stable HTTP
semantic conventions. The <code>semconvStabilityOptIn</code>
instrumentation config option has been removed; old (v1.7.0) and
duplicate semconv outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-grpc)!: emit only stable network semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes attribute emission —
<code>net.peer.name</code> and <code>net.peer.port</code> (old) are no
longer set; only <code>server.address</code> and
<code>server.port</code> (stable). <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): allow modifying ReadWriteLogRecord properties
(including hrTime, hrTimeObserved, and spanContext) in accordance with
the OpenTelemetry Logs specification <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6923">#6923</a>
<a href="https://github.com/Babul422"><code>@​Babul422</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/0b72a81636fa476e8f1f1afd2ae0c90a1362194c"><code>0b72a81</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7044">#7044</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a9c5338a9f485f1433df9308f24bd7397a4a0321"><code>a9c5338</code></a>
ci: roll prerelease changelog into one final release changelog (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7045">#7045</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f41805e769ba10fb6dae72a4b7a5a3dc67cca82e"><code>f41805e</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7042">#7042</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b85eb28343ff6234e2bb4d46b7b4a3d360e5ea2f"><code>b85eb28</code></a>
chore(instrumentation-http): fix lint errors (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7039">#7039</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/3f9253009be2ae48419432e79a597ead7be8be6a"><code>3f92530</code></a>
ci: support pre-releases and major version bumps in release workflow (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7035">#7035</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/82a58316a63b6fde62afd268e145b82222d328cf"><code>82a5831</code></a>
docs(otlp-exporter-base): document HTTP exporter options (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6735">#6735</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/e086dec7f9304107ef6d50b5877be88895c06aa7"><code>e086dec</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/59dac70d00d46fa56b2b921cf721fd922730f23d"><code>59dac70</code></a>
chore(deps): update jamesives/github-pages-deploy-action action to
v4.9.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7">#7</a>...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/d0ce7532b058631ec9eec111c04fefe7fd873e1f"><code>d0ce753</code></a>
chore: add <a
href="https://github.com/maryliag"><code>@​maryliag</code></a> to
maintainers (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7024">#7024</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/03469a129f97265c8eec93d566e9e00d4f741db3"><code>03469a1</code></a>
chore(deps): update open-telemetry/shared-workflows action to v0.10.0
(<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7032">#7032</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.219.0...experimental/v0.222.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/exporter-trace-otlp-proto` from 0.219.0 to
0.222.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/exporter-trace-otlp-proto's
releases</a>.</em></p>
<blockquote>
<h2>experimental/v0.222.0</h2>
<h2>0.222.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>fix(sdk-node)!: fail-fast on Propagator creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6930">#6930</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on MeterProvider creation from config file
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6954">#6954</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on TracerProvider creation from config
file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6962">#6962</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on Resource creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6989">#6989</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>
<p>This also breaks some usage of <code>startNodeSDK()</code> for
<em>environment-based</em> config, i.e. when <em>not</em> using a config
file. For example with <code>OTEL_NODE_RESOURCE_DETECTORS=all</code>, it
results in an error message and a no-op SDK.
(This does not impact users of <code>new NodeSDK()</code> -- the
currently recommended mechanism to start an SDK using this package.)</p>
<pre lang="bash"><code>Could not create OpenTelemetry SDK from
configuration, SDK will not be setup: unknown
ExperimentalResourceDetector name in configuration:
&quot;container&quot;
</code></pre>
</li>
</ul>
</li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): deprecate <code>SdkLogRecord</code> in favor of
<code>ReadWriteLogRecord</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6939">#6939</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(instrumentation-http): redact sensitive query parameters on
incoming (server) spans; add <code>redactedQueryParamsServer</code>
config option <a
href="https://github.com/dyladan"><code>@​dyladan</code></a></li>
<li>fix(sdk-node): support <code>headers_list</code> when creating OTLP
exporters from declarative configuration <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6953">#6953</a>
<a
href="https://github.com/JacksonWeber"><code>@​JacksonWeber</code></a></li>
</ul>
<h3>:books: Documentation</h3>
<ul>
<li>docs(sdk-logs): mark logger configuration as experimental <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6996">#6996</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>docs(configuration): document the <code>ConfigModel</code> suffix
naming convention for exported types <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6612">#6612</a>
<a
href="https://github.com/vedantchalke36"><code>@​vedantchalke36</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>refactor(sampler-jaeger-remote): remove <code>axios</code>
dependency and use <code>fetch</code> to get the sampler configuration
from Jaeger API <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6963">#6963</a>
<a
href="https://github.com/david-luna"><code>@​david-luna</code></a></li>
</ul>
<h2>experimental/v0.221.0</h2>
<h2>0.221.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>feat(sdk-logs)!: configure the force flush timeout per call <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6931">#6931</a>
<a href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a>
<ul>
<li>(user-facing):
<code>LoggerProviderOptions.forceFlushTimeoutMillis</code> has been
removed; pass <code>timeoutMillis</code> to
<code>LoggerProvider.forceFlush()</code> instead.</li>
</ul>
</li>
<li>feat(instrumentation-http)!: emit only stable HTTP semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes HTTP attribute or metric emission — old
(v1.7.0) and duplicate (<code>http</code>/<code>http/dup</code>) semconv
outputs have been removed. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-fetch)!: emit only stable HTTP semantic
conventions. The <code>semconvStabilityOptIn</code> instrumentation
config option has been removed; old (v1.7.0) and duplicate semconv
outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-xml-http-request)!: emit only stable HTTP
semantic conventions. The <code>semconvStabilityOptIn</code>
instrumentation config option has been removed; old (v1.7.0) and
duplicate semconv outputs are no longer emitted. <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
<li>feat(instrumentation-grpc)!: emit only stable network semantic
conventions. The <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment
variable no longer changes attribute emission —
<code>net.peer.name</code> and <code>net.peer.port</code> (old) are no
longer set; only <code>server.address</code> and
<code>server.port</code> (stable). <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6819">#6819</a>
<a href="https://github.com/maryliag"><code>@​maryliag</code></a></li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): allow modifying ReadWriteLogRecord properties
(including hrTime, hrTimeObserved, and spanContext) in accordance with
the OpenTelemetry Logs specification <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6923">#6923</a>
<a href="https://github.com/Babul422"><code>@​Babul422</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/0b72a81636fa476e8f1f1afd2ae0c90a1362194c"><code>0b72a81</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7044">#7044</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a9c5338a9f485f1433df9308f24bd7397a4a0321"><code>a9c5338</code></a>
ci: roll prerelease changelog into one final release changelog (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7045">#7045</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f41805e769ba10fb6dae72a4b7a5a3dc67cca82e"><code>f41805e</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7042">#7042</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b85eb28343ff6234e2bb4d46b7b4a3d360e5ea2f"><code>b85eb28</code></a>
chore(instrumentation-http): fix lint errors (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7039">#7039</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/3f9253009be2ae48419432e79a597ead7be8be6a"><code>3f92530</code></a>
ci: support pre-releases and major version bumps in release workflow (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7035">#7035</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/82a58316a63b6fde62afd268e145b82222d328cf"><code>82a5831</code></a>
docs(otlp-exporter-base): document HTTP exporter options (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6735">#6735</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/e086dec7f9304107ef6d50b5877be88895c06aa7"><code>e086dec</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/59dac70d00d46fa56b2b921cf721fd922730f23d"><code>59dac70</code></a>
chore(deps): update jamesives/github-pages-deploy-action action to
v4.9.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7">#7</a>...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/d0ce7532b058631ec9eec111c04fefe7fd873e1f"><code>d0ce753</code></a>
chore: add <a
href="https://github.com/maryliag"><code>@​maryliag</code></a> to
maintainers (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7024">#7024</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/03469a129f97265c8eec93d566e9e00d4f741db3"><code>03469a1</code></a>
chore(deps): update open-telemetry/shared-workflows action to v0.10.0
(<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7032">#7032</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.219.0...experimental/v0.222.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/instrumentation-host-metrics` from 0.2.0 to
0.5.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/releases">@​opentelemetry/instrumentation-host-metrics's
releases</a>.</em></p>
<blockquote>
<h2>instrumentation-host-metrics: v0.5.0</h2>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-host-metrics-v0.4.0...instrumentation-host-metrics-v0.5.0">0.5.0</a>
(2026-08-31)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3716">#3716</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/015582a5b839b942c7a6a0aa8a60d1665b16663f">015582a</a>)</li>
</ul>
<h2>instrumentation-console: v0.4.0</h2>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-console-v0.3.0...instrumentation-console-v0.4.0">0.4.0</a>
(2026-08-31)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3716">#3716</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/015582a5b839b942c7a6a0aa8a60d1665b16663f">015582a</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>instrumentation-console:</strong> restore console methods on
disable when constructed with { enabled: true } (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3641">#3641</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/97c7f216886d331473dda34496b4be66e5ba2e52">97c7f21</a>)</li>
</ul>
<h2>instrumentation-host-metrics: v0.4.0</h2>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-host-metrics-v0.3.0...instrumentation-host-metrics-v0.4.0">0.4.0</a>
(2026-07-23)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3629">#3629</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/466d5def474cf251217881322ed4db13fad96b86">466d5de</a>)</li>
</ul>
<h2>sampler-aws-xray: v0.3.0</h2>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/sampler-aws-xray-v0.2.0...sampler-aws-xray-v0.3.0">0.3.0</a>
(2026-07-23)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>only emit stable http, network and database attributes (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3585">#3585</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>only emit stable http, network and database attributes (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3585">#3585</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/5b7dd0e102e940d653e04b08b5a1b721a8271037">5b7dd0e</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/packages/instrumentation-host-metrics/CHANGELOG.md">@​opentelemetry/instrumentation-host-metrics's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-host-metrics-v0.4.0...instrumentation-host-metrics-v0.5.0">0.5.0</a>
(2026-08-31)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3716">#3716</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/015582a5b839b942c7a6a0aa8a60d1665b16663f">015582a</a>)</li>
</ul>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-host-metrics-v0.3.0...instrumentation-host-metrics-v0.4.0">0.4.0</a>
(2026-07-23)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3629">#3629</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/466d5def474cf251217881322ed4db13fad96b86">466d5de</a>)</li>
</ul>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-host-metrics-v0.2.0...instrumentation-host-metrics-v0.3.0">0.3.0</a>
(2026-07-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3593">#3593</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/6dfb532ac16889c2f8656f2d9132a290e68cb570">6dfb532</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commits/v0.5.0/packages/instrumentation-host-metrics">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for <code>@​opentelemetry/instrumentation-host-metrics</code>
since your current version.</p>
</details>
<br />

Updates `@opentelemetry/instrumentation-runtime-node` from 0.32.0 to
0.35.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/packages/instrumentation-runtime-node/CHANGELOG.md">@​opentelemetry/instrumentation-runtime-node's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-runtime-node-v0.34.0...instrumentation-runtime-node-v0.35.0">0.35.0</a>
(2026-08-31)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3716">#3716</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/015582a5b839b942c7a6a0aa8a60d1665b16663f">015582a</a>)</li>
</ul>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-runtime-node-v0.33.0...instrumentation-runtime-node-v0.34.0">0.34.0</a>
(2026-07-23)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li><strong>instrumentation-runtime-node:</strong> remove deprecated
v8js.memory.heap.limit metric (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3632">#3632</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3629">#3629</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/466d5def474cf251217881322ed4db13fad96b86">466d5de</a>)</li>
<li><strong>instrumentation-runtime-node:</strong> remove deprecated
v8js.memory.heap.limit metric (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3632">#3632</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/f69829245952b95f5d1827b0a6cee67499f85bc6">f698292</a>)</li>
</ul>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-runtime-node-v0.32.0...instrumentation-runtime-node-v0.33.0">0.33.0</a>
(2026-07-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3593">#3593</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/6dfb532ac16889c2f8656f2d9132a290e68cb570">6dfb532</a>)</li>
<li><strong>instrumentation-runtime-node:</strong> add active resource
gauge (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3361">#3361</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/f3d38e25cdb7a158a47c24fc344cb4e9c6f24252">f3d38e2</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commits/host-metrics-v0.35.0/packages/instrumentation-runtime-node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@sap/cds-mtxs` from 4.0.1 to 4.1.0

Updates `axios` from 1.18.1 to 1.20.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/axios/axios/releases">axios's
releases</a>.</em></p>
<blockquote>
<h2>v1.20.0 — August 19, 2026</h2>
<p>This release hardens runtime option handling, adds RFC 9110
status-code aliases, fixes Node.js and XHR reliability issues, and
refreshes project tooling and documentation.</p>
<h2>⚠️ Breaking Changes &amp; Deprecations</h2>
<ul>
<li>HTTP Status Naming: Added ContentTooLarge (413) and
UnprocessableContent (422), while retaining PayloadTooLarge and
UnprocessableEntity as backward-compatible deprecated aliases. (<a
href="https://redirect.github.com/axios/axios/issues/11082">#11082</a>)</li>
</ul>
<h2>🔒 Security Fixes</h2>
<ul>
<li>Runtime Option Handling: Hardened behavioral configuration reads
against shared and foreign prototype pollution and normalized unsafe
interceptor replacement objects. This also clarifies Fetch redirect and
custom implementation behavior, HTTP/2 DNS and proxy handling,
CIDR-based NO_PROXY matching, and malformed data URI rejection; see the
PR for documented compatibility effects. (<a
href="https://redirect.github.com/axios/axios/issues/11141">#11141</a>)</li>
</ul>
<h2>🐛 Bug Fixes</h2>
<ul>
<li>Interceptor Lifecycle: Prevented unbounded handler-array growth by
trimming trailing ejected interceptors without changing iteration
semantics, and kept interceptor operations safe when the public handlers
field is nullish. (<a
href="https://redirect.github.com/axios/axios/issues/11087">#11087</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11118">#11118</a>)</li>
<li>Request Error Preservation: Prevented custom Error.prepareStackTrace
implementations that return non-string values from replacing the
original request failure with an unrelated TypeError. (<a
href="https://redirect.github.com/axios/axios/issues/11109">#11109</a>)</li>
<li>XHR Reliability: Navigation-canceled requests now reject with
ECONNABORTED instead of resolving with status 0, while successful
downloads flush their final progress callback during the live loadend
dispatch. (<a
href="https://redirect.github.com/axios/axios/issues/11094">#11094</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11121">#11121</a>)</li>
<li>Node.js Socket Memory: Removed request-context retention from
per-socket error listeners, preventing completed response data from
being pinned for the lifetime of pooled keep-alive sockets. (<a
href="https://redirect.github.com/axios/axios/issues/11091">#11091</a>)</li>
<li>Core Methods and HTTP Errors: Prevented structural method-header
buckets from leaking into outgoing headers, standardized invalid DNS
lookup and httpVersion failures as AxiosError.ERR_BAD_OPTION_VALUE, and
corrected the timeoutErrorMessage merge strategy. (<a
href="https://redirect.github.com/axios/axios/issues/11096">#11096</a>)</li>
</ul>
<h2>🔧 Maintenance &amp; Chores</h2>
<ul>
<li>Dependencies: Updated fast-uri, postcss, js-yaml, mocha,
development-tooling groups, and GitHub Actions dependencies. (<a
href="https://redirect.github.com/axios/axios/issues/11092">#11092</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11098">#11098</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11099">#11099</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11106">#11106</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11107">#11107</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11122">#11122</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11123">#11123</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11126">#11126</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11127">#11127</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11133">#11133</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11140">#11140</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11143">#11143</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11144">#11144</a>)</li>
<li>Documentation: Applied the v1.19.0 documentation updates, added the
missing fs import to the README stream example, introduced localized
global search, and repaired the interceptor test link. (<a
href="https://redirect.github.com/axios/axios/issues/11101">#11101</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11113">#11113</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11097">#11097</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11119">#11119</a>)</li>
<li>Sponsorship: Updated sponsorship links and data and added
ScrapingBee as a sponsor. (<a
href="https://redirect.github.com/axios/axios/issues/11124">#11124</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11136">#11136</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11137">#11137</a>)</li>
<li>CI and Release: Switched ESM smoke tests to locked dependencies and
synchronized package and runtime version metadata for v1.20.0. (<a
href="https://redirect.github.com/axios/axios/issues/11128">#11128</a>,
<a
href="https://redirect.github.com/axios/axios/issues/11152">#11152</a>)</li>
</ul>
<h2>🌟 New Contributors</h2>
<p>We are thrilled to welcome our new contributors. Thank you for
helping improve axios:</p>
<ul>
<li><a href="https://github.com/yens1"><code>@​yens1</code></a> (<a
href="https://redirect.github.com/axios/axios/issues/11109">#11109</a>)</li>
<li><a
href="https://github.com/Sasireddy001"><code>@​Sasireddy001</code></a>
(<a
href="https://redirect.github.com/axios/axios/issues/11113">#11113</a>)</li>
<li><a
href="https://github.com/ari-token-security"><code>@​ari-token-security</code></a>
(<a
href="https://redirect.github.com/axios/axios/issues/11094">#11094</a>)</li>
<li><a
href="https://github.com/timothyokooboh"><code>@​timothyokooboh</code></a>
(<a
href="https://redirect.github.com/axios/axios/issues/11097">#11097</a>)</li>
<li><a
href="https://github.com/gi9439041-png"><code>@​gi9439041-png</code></a>
(<a
href="https://redirect.github.com/axios/axios/issues/11119">#11119</a>)</li>
<li><a
href="https://github.com/Hashim1999164"><code>@​Hashim1999164</code></a>
(<a
href="https://redirect.github.com/axios/axios/issues/11082">#11082</a>)</li>
<li><a href="https://github.com/v-dev-cl"><code>@​v-dev-cl</code></a>
(<a
href="https://redirect.github.com/axios/axios/issues/11091">#11091</a>)</li>
<li><a href="https://github.com/r0h1tb"><code>@​r0h1tb</code></a> (<a
href="https:/…
… 8 updates (#499)

Bumps the prod-dependencies group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
|
[@opentelemetry/core](https://github.com/open-telemetry/opentelemetry-js)
| `2.10.0` | `2.11.0` |
|
[@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js)
| `0.221.0` | `0.222.0` |
|
[@opentelemetry/instrumentation-http](https://github.com/open-telemetry/opentelemetry-js)
| `0.221.0` | `0.222.0` |
|
[@opentelemetry/instrumentation-undici](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-undici)
| `0.31.0` | `0.32.0` |
|
[@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js)
| `2.10.0` | `2.11.0` |
|
[@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelemetry-js)
| `2.10.0` | `2.11.0` |
|
[@opentelemetry/sdk-trace-base](https://github.com/open-telemetry/opentelemetry-js)
| `2.10.0` | `2.11.0` |
|
[@opentelemetry/sdk-trace-node](https://github.com/open-telemetry/opentelemetry-js)
| `2.10.0` | `2.11.0` |


Updates `@opentelemetry/core` from 2.10.0 to 2.11.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/core's
releases</a>.</em></p>
<blockquote>
<h2>v2.11.0</h2>
<h2>2.11.0</h2>
<h3>:rocket: Features</h3>
<ul>
<li>feat(context-async-hooks): implement <code>attach()</code> on
<code>AsyncLocalStorageContextManager</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6845">#6845</a>
<a href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a>
<ul>
<li>On Node.js 25.9+, delegates to
<code>AsyncLocalStorage.withScope()</code> returning a native
<code>RunScope</code>. On older Node.js, falls back to
<code>enterWith()</code> with a manual disposable wrapper.</li>
</ul>
</li>
<li>feat(sdk-trace): allow configuring the force flush timeout per call
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6929">#6929</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-metrics): ignore <code>Infinity</code> in exponential
histograms <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7015">#7015</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>perf(sdk-metrics): reuse a single DataView for exponential histogram
bit reads <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6998">#6998</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
<li>chore(ci): run documentation tests on a weekly schedule <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6920">#6920</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>feat(ci): support pre-releases and major version bumps in the
release workflow <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6768">#6768</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>chore(resources): Ensure that multiple uses of
serviceInstanceIdDetector.detect() return the <em>same</em> value for
<code>service.instance.id</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md">@​opentelemetry/core's
changelog</a>.</em></p>
<blockquote>
<h2>2.11.0</h2>
<h3>:rocket: Features</h3>
<ul>
<li>feat(context-async-hooks): implement <code>attach()</code> on
<code>AsyncLocalStorageContextManager</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6845">#6845</a>
<a href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a>
<ul>
<li>On Node.js 25.9+, delegates to
<code>AsyncLocalStorage.withScope()</code> returning a native
<code>RunScope</code>. On older Node.js, falls back to
<code>enterWith()</code> with a manual disposable wrapper.</li>
</ul>
</li>
<li>feat(sdk-trace): allow configuring the force flush timeout per call
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6929">#6929</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-trace-base): avoid a Webpack self-reference error in
CommonJS output <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6981">#6981</a>
<a href="https://github.com/sansynx"><code>@​sansynx</code></a></li>
<li>fix(sdk-metrics): ignore <code>Infinity</code> in exponential
histograms <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7015">#7015</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>perf(sdk-metrics): reuse a single DataView for exponential histogram
bit reads <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6998">#6998</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
<li>chore(ci): run documentation tests on a weekly schedule <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6920">#6920</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>feat(ci): support pre-releases and major version bumps in the
release workflow <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6768">#6768</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>chore(resources): Ensure that multiple uses of
serviceInstanceIdDetector.detect() return the <em>same</em> value for
<code>service.instance.id</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/0b72a81636fa476e8f1f1afd2ae0c90a1362194c"><code>0b72a81</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7044">#7044</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a9c5338a9f485f1433df9308f24bd7397a4a0321"><code>a9c5338</code></a>
ci: roll prerelease changelog into one final release changelog (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7045">#7045</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f41805e769ba10fb6dae72a4b7a5a3dc67cca82e"><code>f41805e</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7042">#7042</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b85eb28343ff6234e2bb4d46b7b4a3d360e5ea2f"><code>b85eb28</code></a>
chore(instrumentation-http): fix lint errors (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7039">#7039</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/3f9253009be2ae48419432e79a597ead7be8be6a"><code>3f92530</code></a>
ci: support pre-releases and major version bumps in release workflow (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7035">#7035</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/82a58316a63b6fde62afd268e145b82222d328cf"><code>82a5831</code></a>
docs(otlp-exporter-base): document HTTP exporter options (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6735">#6735</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/e086dec7f9304107ef6d50b5877be88895c06aa7"><code>e086dec</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/59dac70d00d46fa56b2b921cf721fd922730f23d"><code>59dac70</code></a>
chore(deps): update jamesives/github-pages-deploy-action action to
v4.9.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7">#7</a>...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/d0ce7532b058631ec9eec111c04fefe7fd873e1f"><code>d0ce753</code></a>
chore: add <a
href="https://github.com/maryliag"><code>@​maryliag</code></a> to
maintainers (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7024">#7024</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/03469a129f97265c8eec93d566e9e00d4f741db3"><code>03469a1</code></a>
chore(deps): update open-telemetry/shared-workflows action to v0.10.0
(<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7032">#7032</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/v2.10.0...v2.11.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/instrumentation` from 0.221.0 to 0.222.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/instrumentation's
releases</a>.</em></p>
<blockquote>
<h2>experimental/v0.222.0</h2>
<h2>0.222.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>fix(sdk-node)!: fail-fast on Propagator creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6930">#6930</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on MeterProvider creation from config file
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6954">#6954</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on TracerProvider creation from config
file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6962">#6962</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on Resource creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6989">#6989</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>
<p>This also breaks some usage of <code>startNodeSDK()</code> for
<em>environment-based</em> config, i.e. when <em>not</em> using a config
file. For example with <code>OTEL_NODE_RESOURCE_DETECTORS=all</code>, it
results in an error message and a no-op SDK.
(This does not impact users of <code>new NodeSDK()</code> -- the
currently recommended mechanism to start an SDK using this package.)</p>
<pre lang="bash"><code>Could not create OpenTelemetry SDK from
configuration, SDK will not be setup: unknown
ExperimentalResourceDetector name in configuration:
&quot;container&quot;
</code></pre>
</li>
</ul>
</li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): deprecate <code>SdkLogRecord</code> in favor of
<code>ReadWriteLogRecord</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6939">#6939</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(instrumentation-http): redact sensitive query parameters on
incoming (server) spans; add <code>redactedQueryParamsServer</code>
config option <a
href="https://github.com/dyladan"><code>@​dyladan</code></a></li>
<li>fix(sdk-node): support <code>headers_list</code> when creating OTLP
exporters from declarative configuration <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6953">#6953</a>
<a
href="https://github.com/JacksonWeber"><code>@​JacksonWeber</code></a></li>
</ul>
<h3>:books: Documentation</h3>
<ul>
<li>docs(sdk-logs): mark logger configuration as experimental <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6996">#6996</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>docs(configuration): document the <code>ConfigModel</code> suffix
naming convention for exported types <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6612">#6612</a>
<a
href="https://github.com/vedantchalke36"><code>@​vedantchalke36</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>refactor(sampler-jaeger-remote): remove <code>axios</code>
dependency and use <code>fetch</code> to get the sampler configuration
from Jaeger API <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6963">#6963</a>
<a
href="https://github.com/david-luna"><code>@​david-luna</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/0b72a81636fa476e8f1f1afd2ae0c90a1362194c"><code>0b72a81</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7044">#7044</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a9c5338a9f485f1433df9308f24bd7397a4a0321"><code>a9c5338</code></a>
ci: roll prerelease changelog into one final release changelog (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7045">#7045</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f41805e769ba10fb6dae72a4b7a5a3dc67cca82e"><code>f41805e</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7042">#7042</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b85eb28343ff6234e2bb4d46b7b4a3d360e5ea2f"><code>b85eb28</code></a>
chore(instrumentation-http): fix lint errors (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7039">#7039</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/3f9253009be2ae48419432e79a597ead7be8be6a"><code>3f92530</code></a>
ci: support pre-releases and major version bumps in release workflow (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7035">#7035</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/82a58316a63b6fde62afd268e145b82222d328cf"><code>82a5831</code></a>
docs(otlp-exporter-base): document HTTP exporter options (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6735">#6735</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/e086dec7f9304107ef6d50b5877be88895c06aa7"><code>e086dec</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/59dac70d00d46fa56b2b921cf721fd922730f23d"><code>59dac70</code></a>
chore(deps): update jamesives/github-pages-deploy-action action to
v4.9.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7">#7</a>...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/d0ce7532b058631ec9eec111c04fefe7fd873e1f"><code>d0ce753</code></a>
chore: add <a
href="https://github.com/maryliag"><code>@​maryliag</code></a> to
maintainers (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7024">#7024</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/03469a129f97265c8eec93d566e9e00d4f741db3"><code>03469a1</code></a>
chore(deps): update open-telemetry/shared-workflows action to v0.10.0
(<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7032">#7032</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.221.0...experimental/v0.222.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/instrumentation-http` from 0.221.0 to 0.222.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/instrumentation-http's
releases</a>.</em></p>
<blockquote>
<h2>experimental/v0.222.0</h2>
<h2>0.222.0</h2>
<h3>:boom: Breaking Changes</h3>
<ul>
<li>fix(sdk-node)!: fail-fast on Propagator creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6930">#6930</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on MeterProvider creation from config file
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6954">#6954</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on TracerProvider creation from config
file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6962">#6962</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a></li>
<li>fix(sdk-node)!: fail-fast on Resource creation from config file <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6989">#6989</a>
<a href="https://github.com/trentm"><code>@​trentm</code></a>
<ul>
<li>
<p>This also breaks some usage of <code>startNodeSDK()</code> for
<em>environment-based</em> config, i.e. when <em>not</em> using a config
file. For example with <code>OTEL_NODE_RESOURCE_DETECTORS=all</code>, it
results in an error message and a no-op SDK.
(This does not impact users of <code>new NodeSDK()</code> -- the
currently recommended mechanism to start an SDK using this package.)</p>
<pre lang="bash"><code>Could not create OpenTelemetry SDK from
configuration, SDK will not be setup: unknown
ExperimentalResourceDetector name in configuration:
&quot;container&quot;
</code></pre>
</li>
</ul>
</li>
</ul>
<h3>:rocket: Features</h3>
<ul>
<li>feat(sdk-logs): deprecate <code>SdkLogRecord</code> in favor of
<code>ReadWriteLogRecord</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6939">#6939</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(instrumentation-http): redact sensitive query parameters on
incoming (server) spans; add <code>redactedQueryParamsServer</code>
config option <a
href="https://github.com/dyladan"><code>@​dyladan</code></a></li>
<li>fix(sdk-node): support <code>headers_list</code> when creating OTLP
exporters from declarative configuration <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6953">#6953</a>
<a
href="https://github.com/JacksonWeber"><code>@​JacksonWeber</code></a></li>
</ul>
<h3>:books: Documentation</h3>
<ul>
<li>docs(sdk-logs): mark logger configuration as experimental <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6996">#6996</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>docs(configuration): document the <code>ConfigModel</code> suffix
naming convention for exported types <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6612">#6612</a>
<a
href="https://github.com/vedantchalke36"><code>@​vedantchalke36</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>refactor(sampler-jaeger-remote): remove <code>axios</code>
dependency and use <code>fetch</code> to get the sampler configuration
from Jaeger API <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6963">#6963</a>
<a
href="https://github.com/david-luna"><code>@​david-luna</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/0b72a81636fa476e8f1f1afd2ae0c90a1362194c"><code>0b72a81</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7044">#7044</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a9c5338a9f485f1433df9308f24bd7397a4a0321"><code>a9c5338</code></a>
ci: roll prerelease changelog into one final release changelog (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7045">#7045</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f41805e769ba10fb6dae72a4b7a5a3dc67cca82e"><code>f41805e</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7042">#7042</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b85eb28343ff6234e2bb4d46b7b4a3d360e5ea2f"><code>b85eb28</code></a>
chore(instrumentation-http): fix lint errors (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7039">#7039</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/3f9253009be2ae48419432e79a597ead7be8be6a"><code>3f92530</code></a>
ci: support pre-releases and major version bumps in release workflow (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7035">#7035</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/82a58316a63b6fde62afd268e145b82222d328cf"><code>82a5831</code></a>
docs(otlp-exporter-base): document HTTP exporter options (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6735">#6735</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/e086dec7f9304107ef6d50b5877be88895c06aa7"><code>e086dec</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/59dac70d00d46fa56b2b921cf721fd922730f23d"><code>59dac70</code></a>
chore(deps): update jamesives/github-pages-deploy-action action to
v4.9.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7">#7</a>...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/d0ce7532b058631ec9eec111c04fefe7fd873e1f"><code>d0ce753</code></a>
chore: add <a
href="https://github.com/maryliag"><code>@​maryliag</code></a> to
maintainers (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7024">#7024</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/03469a129f97265c8eec93d566e9e00d4f741db3"><code>03469a1</code></a>
chore(deps): update open-telemetry/shared-workflows action to v0.10.0
(<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7032">#7032</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.221.0...experimental/v0.222.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/instrumentation-undici` from 0.31.0 to 0.32.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/releases">@​opentelemetry/instrumentation-undici's
releases</a>.</em></p>
<blockquote>
<h2>instrumentation-undici: v0.32.0</h2>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-undici-v0.31.0...instrumentation-undici-v0.32.0">0.32.0</a>
(2026-08-31)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3716">#3716</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/015582a5b839b942c7a6a0aa8a60d1665b16663f">015582a</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>instrumentation-undici:</strong> use low-cardinality
error.type (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3659">#3659</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/3756dfa6b084f90ce81cf6be45d9deb8c72a9db6">3756dfa</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/packages/instrumentation-undici/CHANGELOG.md">@​opentelemetry/instrumentation-undici's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/compare/instrumentation-undici-v0.31.0...instrumentation-undici-v0.32.0">0.32.0</a>
(2026-08-31)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> update deps matching '@opentelemetry/*' (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3716">#3716</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/015582a5b839b942c7a6a0aa8a60d1665b16663f">015582a</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>instrumentation-undici:</strong> use low-cardinality
error.type (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3659">#3659</a>)
(<a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commit/3756dfa6b084f90ce81cf6be45d9deb8c72a9db6">3756dfa</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/open-telemetry/opentelemetry-js-contrib/commits/host-metrics-v0.32.0/packages/instrumentation-undici">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/resources` from 2.10.0 to 2.11.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/resources's
releases</a>.</em></p>
<blockquote>
<h2>v2.11.0</h2>
<h2>2.11.0</h2>
<h3>:rocket: Features</h3>
<ul>
<li>feat(context-async-hooks): implement <code>attach()</code> on
<code>AsyncLocalStorageContextManager</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6845">#6845</a>
<a href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a>
<ul>
<li>On Node.js 25.9+, delegates to
<code>AsyncLocalStorage.withScope()</code> returning a native
<code>RunScope</code>. On older Node.js, falls back to
<code>enterWith()</code> with a manual disposable wrapper.</li>
</ul>
</li>
<li>feat(sdk-trace): allow configuring the force flush timeout per call
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6929">#6929</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-metrics): ignore <code>Infinity</code> in exponential
histograms <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7015">#7015</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>perf(sdk-metrics): reuse a single DataView for exponential histogram
bit reads <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6998">#6998</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
<li>chore(ci): run documentation tests on a weekly schedule <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6920">#6920</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>feat(ci): support pre-releases and major version bumps in the
release workflow <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6768">#6768</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>chore(resources): Ensure that multiple uses of
serviceInstanceIdDetector.detect() return the <em>same</em> value for
<code>service.instance.id</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md">@​opentelemetry/resources's
changelog</a>.</em></p>
<blockquote>
<h2>2.11.0</h2>
<h3>:rocket: Features</h3>
<ul>
<li>feat(context-async-hooks): implement <code>attach()</code> on
<code>AsyncLocalStorageContextManager</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6845">#6845</a>
<a href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a>
<ul>
<li>On Node.js 25.9+, delegates to
<code>AsyncLocalStorage.withScope()</code> returning a native
<code>RunScope</code>. On older Node.js, falls back to
<code>enterWith()</code> with a manual disposable wrapper.</li>
</ul>
</li>
<li>feat(sdk-trace): allow configuring the force flush timeout per call
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6929">#6929</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-trace-base): avoid a Webpack self-reference error in
CommonJS output <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6981">#6981</a>
<a href="https://github.com/sansynx"><code>@​sansynx</code></a></li>
<li>fix(sdk-metrics): ignore <code>Infinity</code> in exponential
histograms <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7015">#7015</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>perf(sdk-metrics): reuse a single DataView for exponential histogram
bit reads <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6998">#6998</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
<li>chore(ci): run documentation tests on a weekly schedule <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6920">#6920</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>feat(ci): support pre-releases and major version bumps in the
release workflow <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6768">#6768</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>chore(resources): Ensure that multiple uses of
serviceInstanceIdDetector.detect() return the <em>same</em> value for
<code>service.instance.id</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/0b72a81636fa476e8f1f1afd2ae0c90a1362194c"><code>0b72a81</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7044">#7044</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a9c5338a9f485f1433df9308f24bd7397a4a0321"><code>a9c5338</code></a>
ci: roll prerelease changelog into one final release changelog (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7045">#7045</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f41805e769ba10fb6dae72a4b7a5a3dc67cca82e"><code>f41805e</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7042">#7042</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b85eb28343ff6234e2bb4d46b7b4a3d360e5ea2f"><code>b85eb28</code></a>
chore(instrumentation-http): fix lint errors (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7039">#7039</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/3f9253009be2ae48419432e79a597ead7be8be6a"><code>3f92530</code></a>
ci: support pre-releases and major version bumps in release workflow (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7035">#7035</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/82a58316a63b6fde62afd268e145b82222d328cf"><code>82a5831</code></a>
docs(otlp-exporter-base): document HTTP exporter options (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6735">#6735</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/e086dec7f9304107ef6d50b5877be88895c06aa7"><code>e086dec</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/59dac70d00d46fa56b2b921cf721fd922730f23d"><code>59dac70</code></a>
chore(deps): update jamesives/github-pages-deploy-action action to
v4.9.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7">#7</a>...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/d0ce7532b058631ec9eec111c04fefe7fd873e1f"><code>d0ce753</code></a>
chore: add <a
href="https://github.com/maryliag"><code>@​maryliag</code></a> to
maintainers (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7024">#7024</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/03469a129f97265c8eec93d566e9e00d4f741db3"><code>03469a1</code></a>
chore(deps): update open-telemetry/shared-workflows action to v0.10.0
(<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7032">#7032</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/v2.10.0...v2.11.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/sdk-metrics` from 2.10.0 to 2.11.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/sdk-metrics's
releases</a>.</em></p>
<blockquote>
<h2>v2.11.0</h2>
<h2>2.11.0</h2>
<h3>:rocket: Features</h3>
<ul>
<li>feat(context-async-hooks): implement <code>attach()</code> on
<code>AsyncLocalStorageContextManager</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6845">#6845</a>
<a href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a>
<ul>
<li>On Node.js 25.9+, delegates to
<code>AsyncLocalStorage.withScope()</code> returning a native
<code>RunScope</code>. On older Node.js, falls back to
<code>enterWith()</code> with a manual disposable wrapper.</li>
</ul>
</li>
<li>feat(sdk-trace): allow configuring the force flush timeout per call
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6929">#6929</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-metrics): ignore <code>Infinity</code> in exponential
histograms <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7015">#7015</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>perf(sdk-metrics): reuse a single DataView for exponential histogram
bit reads <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6998">#6998</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
<li>chore(ci): run documentation tests on a weekly schedule <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6920">#6920</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>feat(ci): support pre-releases and major version bumps in the
release workflow <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6768">#6768</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>chore(resources): Ensure that multiple uses of
serviceInstanceIdDetector.detect() return the <em>same</em> value for
<code>service.instance.id</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md">@​opentelemetry/sdk-metrics's
changelog</a>.</em></p>
<blockquote>
<h2>2.11.0</h2>
<h3>:rocket: Features</h3>
<ul>
<li>feat(context-async-hooks): implement <code>attach()</code> on
<code>AsyncLocalStorageContextManager</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6845">#6845</a>
<a href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a>
<ul>
<li>On Node.js 25.9+, delegates to
<code>AsyncLocalStorage.withScope()</code> returning a native
<code>RunScope</code>. On older Node.js, falls back to
<code>enterWith()</code> with a manual disposable wrapper.</li>
</ul>
</li>
<li>feat(sdk-trace): allow configuring the force flush timeout per call
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6929">#6929</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-trace-base): avoid a Webpack self-reference error in
CommonJS output <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6981">#6981</a>
<a href="https://github.com/sansynx"><code>@​sansynx</code></a></li>
<li>fix(sdk-metrics): ignore <code>Infinity</code> in exponential
histograms <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7015">#7015</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>perf(sdk-metrics): reuse a single DataView for exponential histogram
bit reads <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6998">#6998</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
<li>chore(ci): run documentation tests on a weekly schedule <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6920">#6920</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>feat(ci): support pre-releases and major version bumps in the
release workflow <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6768">#6768</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>chore(resources): Ensure that multiple uses of
serviceInstanceIdDetector.detect() return the <em>same</em> value for
<code>service.instance.id</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/0b72a81636fa476e8f1f1afd2ae0c90a1362194c"><code>0b72a81</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7044">#7044</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a9c5338a9f485f1433df9308f24bd7397a4a0321"><code>a9c5338</code></a>
ci: roll prerelease changelog into one final release changelog (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7045">#7045</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f41805e769ba10fb6dae72a4b7a5a3dc67cca82e"><code>f41805e</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7042">#7042</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b85eb28343ff6234e2bb4d46b7b4a3d360e5ea2f"><code>b85eb28</code></a>
chore(instrumentation-http): fix lint errors (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7039">#7039</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/3f9253009be2ae48419432e79a597ead7be8be6a"><code>3f92530</code></a>
ci: support pre-releases and major version bumps in release workflow (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7035">#7035</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/82a58316a63b6fde62afd268e145b82222d328cf"><code>82a5831</code></a>
docs(otlp-exporter-base): document HTTP exporter options (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6735">#6735</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/e086dec7f9304107ef6d50b5877be88895c06aa7"><code>e086dec</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/59dac70d00d46fa56b2b921cf721fd922730f23d"><code>59dac70</code></a>
chore(deps): update jamesives/github-pages-deploy-action action to
v4.9.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7">#7</a>...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/d0ce7532b058631ec9eec111c04fefe7fd873e1f"><code>d0ce753</code></a>
chore: add <a
href="https://github.com/maryliag"><code>@​maryliag</code></a> to
maintainers (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7024">#7024</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/03469a129f97265c8eec93d566e9e00d4f741db3"><code>03469a1</code></a>
chore(deps): update open-telemetry/shared-workflows action to v0.10.0
(<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7032">#7032</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/v2.10.0...v2.11.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/sdk-trace-base` from 2.10.0 to 2.11.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/sdk-trace-base's
releases</a>.</em></p>
<blockquote>
<h2>v2.11.0</h2>
<h2>2.11.0</h2>
<h3>:rocket: Features</h3>
<ul>
<li>feat(context-async-hooks): implement <code>attach()</code> on
<code>AsyncLocalStorageContextManager</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6845">#6845</a>
<a href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a>
<ul>
<li>On Node.js 25.9+, delegates to
<code>AsyncLocalStorage.withScope()</code> returning a native
<code>RunScope</code>. On older Node.js, falls back to
<code>enterWith()</code> with a manual disposable wrapper.</li>
</ul>
</li>
<li>feat(sdk-trace): allow configuring the force flush timeout per call
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6929">#6929</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-metrics): ignore <code>Infinity</code> in exponential
histograms <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7015">#7015</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>perf(sdk-metrics): reuse a single DataView for exponential histogram
bit reads <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6998">#6998</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
<li>chore(ci): run documentation tests on a weekly schedule <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6920">#6920</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>feat(ci): support pre-releases and major version bumps in the
release workflow <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6768">#6768</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>chore(resources): Ensure that multiple uses of
serviceInstanceIdDetector.detect() return the <em>same</em> value for
<code>service.instance.id</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md">@​opentelemetry/sdk-trace-base's
changelog</a>.</em></p>
<blockquote>
<h2>2.11.0</h2>
<h3>:rocket: Features</h3>
<ul>
<li>feat(context-async-hooks): implement <code>attach()</code> on
<code>AsyncLocalStorageContextManager</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6845">#6845</a>
<a href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a>
<ul>
<li>On Node.js 25.9+, delegates to
<code>AsyncLocalStorage.withScope()</code> returning a native
<code>RunScope</code>. On older Node.js, falls back to
<code>enterWith()</code> with a manual disposable wrapper.</li>
</ul>
</li>
<li>feat(sdk-trace): allow configuring the force flush timeout per call
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6929">#6929</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-trace-base): avoid a Webpack self-reference error in
CommonJS output <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6981">#6981</a>
<a href="https://github.com/sansynx"><code>@​sansynx</code></a></li>
<li>fix(sdk-metrics): ignore <code>Infinity</code> in exponential
histograms <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7015">#7015</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>perf(sdk-metrics): reuse a single DataView for exponential histogram
bit reads <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6998">#6998</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
<li>chore(ci): run documentation tests on a weekly schedule <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6920">#6920</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>feat(ci): support pre-releases and major version bumps in the
release workflow <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6768">#6768</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>chore(resources): Ensure that multiple uses of
serviceInstanceIdDetector.detect() return the <em>same</em> value for
<code>service.instance.id</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/0b72a81636fa476e8f1f1afd2ae0c90a1362194c"><code>0b72a81</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7044">#7044</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a9c5338a9f485f1433df9308f24bd7397a4a0321"><code>a9c5338</code></a>
ci: roll prerelease changelog into one final release changelog (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7045">#7045</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f41805e769ba10fb6dae72a4b7a5a3dc67cca82e"><code>f41805e</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7042">#7042</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b85eb28343ff6234e2bb4d46b7b4a3d360e5ea2f"><code>b85eb28</code></a>
chore(instrumentation-http): fix lint errors (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7039">#7039</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/3f9253009be2ae48419432e79a597ead7be8be6a"><code>3f92530</code></a>
ci: support pre-releases and major version bumps in release workflow (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7035">#7035</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/82a58316a63b6fde62afd268e145b82222d328cf"><code>82a5831</code></a>
docs(otlp-exporter-base): document HTTP exporter options (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6735">#6735</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/e086dec7f9304107ef6d50b5877be88895c06aa7"><code>e086dec</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/59dac70d00d46fa56b2b921cf721fd922730f23d"><code>59dac70</code></a>
chore(deps): update jamesives/github-pages-deploy-action action to
v4.9.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7">#7</a>...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/d0ce7532b058631ec9eec111c04fefe7fd873e1f"><code>d0ce753</code></a>
chore: add <a
href="https://github.com/maryliag"><code>@​maryliag</code></a> to
maintainers (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7024">#7024</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/03469a129f97265c8eec93d566e9e00d4f741db3"><code>03469a1</code></a>
chore(deps): update open-telemetry/shared-workflows action to v0.10.0
(<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7032">#7032</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/v2.10.0...v2.11.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@opentelemetry/sdk-trace-node` from 2.10.0 to 2.11.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/releases">@​opentelemetry/sdk-trace-node's
releases</a>.</em></p>
<blockquote>
<h2>v2.11.0</h2>
<h2>2.11.0</h2>
<h3>:rocket: Features</h3>
<ul>
<li>feat(context-async-hooks): implement <code>attach()</code> on
<code>AsyncLocalStorageContextManager</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6845">#6845</a>
<a href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a>
<ul>
<li>On Node.js 25.9+, delegates to
<code>AsyncLocalStorage.withScope()</code> returning a native
<code>RunScope</code>. On older Node.js, falls back to
<code>enterWith()</code> with a manual disposable wrapper.</li>
</ul>
</li>
<li>feat(sdk-trace): allow configuring the force flush timeout per call
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6929">#6929</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-metrics): ignore <code>Infinity</code> in exponential
histograms <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7015">#7015</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>perf(sdk-metrics): reuse a single DataView for exponential histogram
bit reads <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6998">#6998</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
<li>chore(ci): run documentation tests on a weekly schedule <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6920">#6920</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>feat(ci): support pre-releases and major version bumps in the
release workflow <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6768">#6768</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>chore(resources): Ensure that multiple uses of
serviceInstanceIdDetector.detect() return the <em>same</em> value for
<code>service.instance.id</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md">@​opentelemetry/sdk-trace-node's
changelog</a>.</em></p>
<blockquote>
<h2>2.11.0</h2>
<h3>:rocket: Features</h3>
<ul>
<li>feat(context-async-hooks): implement <code>attach()</code> on
<code>AsyncLocalStorageContextManager</code> <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6845">#6845</a>
<a href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a>
<ul>
<li>On Node.js 25.9+, delegates to
<code>AsyncLocalStorage.withScope()</code> returning a native
<code>RunScope</code>. On older Node.js, falls back to
<code>enterWith()</code> with a manual disposable wrapper.</li>
</ul>
</li>
<li>feat(sdk-trace): allow configuring the force flush timeout per call
<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6929">#6929</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
</ul>
<h3>:bug: Bug Fixes</h3>
<ul>
<li>fix(sdk-trace-base): avoid a Webpack self-reference error in
CommonJS output <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6981">#6981</a>
<a href="https://github.com/sansynx"><code>@​sansynx</code></a></li>
<li>fix(sdk-metrics): ignore <code>Infinity</code> in exponential
histograms <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7015">#7015</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
</ul>
<h3>:house: Internal</h3>
<ul>
<li>perf(sdk-metrics): reuse a single DataView for exponential histogram
bit reads <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6998">#6998</a>
<a href="https://github.com/mwear"><code>@​mwear</code></a></li>
<li>chore(ci): run documentation tests on a weekly schedule <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6920">#6920</a>
<a
href="https://github.com/LarryHu0217"><code>@​LarryHu0217</code></a></li>
<li>feat(ci): support pre-releases and major version bumps in the
release workflow <a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6768">#6768</a>
<a
href="https://github.com/pichlermarc"><code>@​pichlermarc</code></a></li>
<li>chore(resources): Ensure that multiple uses of
serviceInstanceIdDetector.detect() return the <em>same</em> value for
<code>service.instance.id</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/0b72a81636fa476e8f1f1afd2ae0c90a1362194c"><code>0b72a81</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7044">#7044</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/a9c5338a9f485f1433df9308f24bd7397a4a0321"><code>a9c5338</code></a>
ci: roll prerelease changelog into one final release changelog (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7045">#7045</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/f41805e769ba10fb6dae72a4b7a5a3dc67cca82e"><code>f41805e</code></a>
chore: prepare next release (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7042">#7042</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/b85eb28343ff6234e2bb4d46b7b4a3d360e5ea2f"><code>b85eb28</code></a>
chore(instrumentation-http): fix lint errors (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7039">#7039</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/3f9253009be2ae48419432e79a597ead7be8be6a"><code>3f92530</code></a>
ci: support pre-releases and major version bumps in release workflow (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7035">#7035</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/82a58316a63b6fde62afd268e145b82222d328cf"><code>82a5831</code></a>
docs(otlp-exporter-base): document HTTP exporter options (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6735">#6735</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/e086dec7f9304107ef6d50b5877be88895c06aa7"><code>e086dec</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/59dac70d00d46fa56b2b921cf721fd922730f23d"><code>59dac70</code></a>
chore(deps): update jamesives/github-pages-deploy-action action to
v4.9.0 (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7">#7</a>...</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/d0ce7532b058631ec9eec111c04fefe7fd873e1f"><code>d0ce753</code></a>
chore: add <a
href="https://github.com/maryliag"><code>@​maryliag</code></a> to
maintainers (<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7024">#7024</a>)</li>
<li><a
href="https://github.com/open-telemetry/opentelemetry-js/commit/03469a129f97265c8eec93d566e9e00d4f741db3"><code>03469a1</code></a>
chore(deps): update open-telemetry/shared-workflows action to v0.10.0
(<a
href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7032">#7032</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-telemetry/opentelemetry-js/compare/v2.10.0...v2.11.0">compare
view</a></li>
</ul>
</details>
<br />

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sebastian Van Syckel <sebastian.van.syckel@sap.com>
# Add Tenant and Correlation IDs to Log Attributes

### New Features

✨ Enhances log records with tenant and correlation context to improve
observability and align logging metadata with spans and metrics.

### Changes

* `lib/logging/index.js`: Adds `sap.tenancy.tenant_id` and
`sap.cds.correlation_id` attributes to structured log records when
available from `cds.context`, enabling easier tracing and tenant-aware
log analysis.

- [ ] 🔄 Regenerate and Update Summary



<details>
<summary>PR Bot Information</summary>

**Version:** `1.31.30`

- File Content Strategy: Full file content
- Event Trigger: `pull_request.opened`
- LLM: `gpt-5.5`
- Summary Prompt: [Default
Prompt](https://github.tools.sap/Code-Change-Intelligence/pr-bot/blob/main/src/services/llm/prompts/summary_instructions_prompt.md)
- Output Template: [Default
Template](https://github.tools.sap/Code-Change-Intelligence/pr-bot/blob/main/src/services/llm/prompts/summary_default_output_template.md)
- Correlation ID: `495f5870-ae2e-11f1-951c-19ee13dea867`
</details>

---------

Co-authored-by: sjvans <30337871+sjvans@users.noreply.github.com>
Co-authored-by: Sebastian Van Syckel <sebastian.van.syckel@sap.com>
# Restructure `lib/utils`, decouple mTLS cert sourcing, simplify ZTI
gating

Internal refactor of the CaaS/mTLS machinery that landed in v2.1.0. No
behavioral change to the supported configurations — pure reorganization
plus a simplification of how ZTI is enabled. Base: `develop`.

### Modularize `lib/utils`

The 321-line monolithic `lib/utils.js` is split into cohesive,
single-responsibility modules, each imported directly (no barrel):

* `utils/common.js` — `_require`, `hasDependency`, `getDiagLogLevel`
* `utils/resource.js` — OTel `Resource` / Dynatrace metadata
* `utils/time.js` — timestamp helpers
* `utils/credentials.js` — binding resolution + creds augmentation
(`getCredsForDTAsUPS`, `getCredsForCLSAsUPS`, `augmentCLCreds`,
`augmentCaaSCreds`)
* `utils/mtls.js` — generic mTLS transport + static x509 cert
provisioning (`certsAvailable`, `setupStaticCerts`, rotating agent)
* `utils/caas.js` — CaaS exporter assembly + boot-race buffering
(`createCaaSExporter`, `wrapExporterWithBuffer`)

### Decouple mTLS cert sourcing

Clear layering: **cert source** (`zti` async SVID / `mtls` static x509)
→ **generic mTLS transport** (`mtls`) → **exporter wiring** (`caas`) →
**signal modules** (tracing/metrics/logging).

* `certsAvailable()` is now a pure predicate over `cds.env`.
* Cert provisioning is an explicit one-shot startup step
(`_provisionCerts` in `lib/index.js`), gated to the `to-caas` kind,
running before exporters are built.

### Simplify ZTI gating

* Dropped the `TELEMETRY_USE_ZTI` opt-out and `isZTIEnabled()` — a bound
`zero-trust-identity` service is now the **sole** trigger for ZTI as the
cert source.
* Renamed the `_useZTI` handoff flag to `_asyncCerts` to name what it
signals: ZTI writes SVID files asynchronously and they may arrive after
startup, so a missing cert is transient (buffer until the watcher
delivers) rather than a misconfiguration (fail fast). Static x509 is
present-now-or-never, so the flag stays false.

### Misc

* Trimmed verbose comments in `lib/logging/index.js`.
* Tests reorganized to match the new module boundaries
(`test/buffer.test.js`, `test/caas.test.js`); suite green (97 passed, 8
HANA skips).
… OneAgent path (#504)

## What

Prevents a startup crash on the Dynatrace OneAgent path and clarifies
how to get traces into Dynatrace.

When Dynatrace OneAgent is active (`DT_NODE_PRELOAD_OPTIONS` set), the
kind is `*-to-dynatrace`, and `@opentelemetry/exporter-trace-otlp-proto`
is **not** a dependency, the 2.x tracing factory built a
`NodeTracerProvider` whose only span processor was `undefined` (no
exporter is configured on this path, so `processor` stayed unset). The
provider constructs fine, but `MultiSpanProcessor.onStart` dereferences
the undefined processor on the **first span** → the app crashes on
startup (CF exit 137, crash loop).

## Fix

On the OneAgent path the factory now sets up nothing and returns — no
exporter, no processor, no provider, nothing to crash on. It does
**not** register or clobber a global tracer provider.

`@cap-js/telemetry` does not export traces on this path, and it logs a
warning at startup pointing to the supported route:

> **Until further notice, export traces to Dynatrace via the OTLP
exporter.** Add `@opentelemetry/exporter-trace-otlp-proto` as a
dependency (which flips `via_one_agent` off and takes the normal OTLP
export path). See the [Dynatrace
OneAgent](https://github.com/cap-js/telemetry/blob/develop/README.md#dynatrace-oneagent)
section of the README.

The earlier assumption — that OneAgent's already-registered global
provider would capture `@cap-js/telemetry`'s spans automatically — did
not hold in practice (OneAgent registers no in-process OTel provider on
the tested runtime), so the code comment, README, and CHANGELOG no
longer claim it.

## Changes

- `lib/tracing/index.js`: OneAgent path returns early without building
an exporter/processor/provider; warns.
- `test/tracing-one-agent.test.js`: regression test — an undefined span
processor crashes on the first span; the OneAgent path sets up nothing,
returns `undefined`, leaves the global delegate untouched, and does not
crash on span creation.
- `README.md`: "Dynatrace OneAgent" section rewritten — OTLP export is
required until further notice; dropped the "OneAgent transports the
spans automatically" claim and the stale sampler/propagator caveats.
- `CHANGELOG.md`: crash-fix entry under `### Fixed`.

Closes #502
Comment thread CHANGELOG.md
This project adheres to [Semantic Versioning](http://semver.org/).
The format is based on [Keep a Changelog](http://keepachangelog.com/).

## Version 2.1.0 - tbd

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Version 2.1.0 - tbd
## Version 2.1.0 - 2026-09-XX

)

Fixes #509. Follow-up to #502 / #504.

## What this changes

On the OneAgent path — Dynatrace OneAgent present
(`DT_NODE_PRELOAD_OPTIONS` set), kind `*-to-dynatrace`, and no
`@opentelemetry/exporter-trace-otlp-proto` installed — the tracing
factory now **registers a recording `NodeTracerProvider` with an empty
span-processor list** instead of warning and bailing out.

The provider records spans but exports nothing itself, so the CDS spans
actually come into existence for OneAgent's in-process OpenTelemetry
capture to pick up — without us exporting (and thus duplicating) them.

The factory's branching was refactored around two orthogonal axes —
`via_one_agent` (OneAgent present, no exporter) and `resource` (truthy =
standalone, falsy = CALM under `@sap/xotel-agent-ext-js`):

| | standalone (`resource`) | CALM (no `resource`) |
| --- | --- | --- |
| **not OneAgent** | register provider with the configured exporter's
processor | delegate the processor to `@sap/xotel-agent-ext-js` |
| **OneAgent** | register recording provider, no processor (in-process
capture) | rejected — `throw` |

The **CALM + OneAgent** combination is now rejected fail-fast: two
agents owning tracing at once is a contradictory, unverified setup, so
the factory throws rather than silently doing nothing.

This is the plugin-side prerequisite for OneAgent in-process capture. It
is correct and necessary — but, as the analysis below shows, it is **not
sufficient on its own** with current OneAgent versions.

## Analysis / findings

I live-verified this against a OneAgent-injected app on SAP BTP CF
(classic-managed Dynatrace tenant, OneAgent 1.339). Findings:

**OneAgent's in-process OTel capture is version-sensitive to the
OpenTelemetry JS SDK layout.** OneAgent instruments OTel-JS by wrapping
`getTracer` on the class defined in `@opentelemetry/sdk-trace-base`'s
`BasicTracerProvider.js`, then applying its span transformer to the
returned tracer. (Its other, deeper `Tracer`/`Span` patch is
version-gated to SDK `^1.0.0` and is skipped on 2.x.)

**OpenTelemetry JS SDK `sdk-trace-base` 2.9.0 restructured the
packages:** `getTracer` moved out of `sdk-trace-base` into a new package
`@opentelemetry/sdk-trace` (`TracerProvider.js`), and
`BasicTracerProvider.js` became a thin re-export
`BasicTracerProvider-shim.js`. On ≥2.9 there is no
`BasicTracerProvider.js` for OneAgent to match, and it has no rule for
the new `@opentelemetry/sdk-trace` package — so the `getTracer` wrap
never attaches and the CDS `INTERNAL` spans are never captured.

Exact, empirically confirmed boundary:

| `@opentelemetry/sdk-trace-base` | Provider layout | OneAgent 1.339
in-process capture |
| --- | --- | --- |
| ≤ 2.8.0 | real `BasicTracerProvider.js` with `getTracer` | ✅ captures
the full CDS span tree |
| ≥ 2.9.0 | `BasicTracerProvider-shim.js` + split into
`@opentelemetry/sdk-trace` | ❌ only the HTTP entry point (OneAgent's
native sensor) |

**Clean A/B on the same app + same OneAgent:**
- With this fix and the plugin's declared `@opentelemetry/sdk-trace-*
^2.8` floating to **2.11.0** (post-split): only the HTTP PurePath
appears — no CDS spans.
- Pinning the trace SDK to **2.8.0** (last pre-split): the full CDS tree
nests under the HTTP request — `CatalogService - tx` → `CatalogService -
READ …` → `db - READ …` → `@cap-js/sqlite - prepare/stmt.all SELECT …`
(scope `@cap-js/telemetry`, `SpanKind.INTERNAL`).

The HTTP entry point is captured in both cases because that is
OneAgent's own HTTP sensor, not OTel.

**Conclusion.** This is an **OneAgent-side gap**: OneAgent has not yet
been updated for the OTel-JS SDK 2.9 package restructure. The full fix
is on the Dynatrace side (OneAgent needs to instrument the current
layout — `@opentelemetry/sdk-trace`'s `TracerProvider.js` / `Tracer.js`
/ `Span.js`, or relax the deep-patch version gate to `^2.0.0`). A
support ticket with Dynatrace references this PR.

Dependencies are kept at `^2.8` (floating to 2.x latest) — pinning the
plugin to the last pre-split patch to work around a OneAgent bug would
freeze the OTel SDK and is not a maintainable trade-off. Once OneAgent
adds support for the current layout, in-process capture works with no
further change here.

## Docs

- **README** (Dynatrace OneAgent section): documents in-process capture
as the supported path — no exporter needed when OneAgent is present, or
install the OTLP exporter to have the plugin export the spans itself
(which takes precedence).
- **CHANGELOG**: unreleased 2.1.0 entry describes the recording-provider
behavior.

The temporary pin that works around the current OneAgent gap is posted
as a workaround comment on #509 rather than baked into the README, so it
can simply be dropped once OneAgent catches up.

## Tests

`test/tracing-one-agent.test.js` asserts, without a live tenant:
- the illustrative crash mode — a provider whose only processor is
`undefined` throws on the first span (why the OneAgent path uses `[]`,
not `[processor]`);
- `@opentelemetry/exporter-trace-otlp-proto` is not a production
dependency (precondition for `via_one_agent`);
- standalone + OneAgent — the factory returns a real
`NodeTracerProvider` whose spans are **recording** (not
`NonRecordingSpan`) and whose creation/end never crashes;
- CALM + OneAgent — rejected as an unsupported combination (throws).
Adds the missing CHANGELOG entry for #506, which shipped to \`develop\`
without one.

#506 adds the \`sap.tenancy.tenant_id\` attribute to exported log
records (from \`cds.context\`), aligning log metadata with traces and
metrics.

Note: #506's title/description also mentions \`sap.cds.correlation_id\`,
but the merged code only adds \`sap.tenancy.tenant_id\` — the entry
reflects what actually shipped.
…516)

## What

- **New section: Running with SAP Cloud ALM (beta).** Documents that
when `@sap/xotel-agent-ext-js` is present, the plugin detects it and
contributes its CDS spans to the agent's tracing pipeline (delegate on
the shared span processor) instead of standing up its own tracer
provider — the OTel-2.0-compatible coexistence tracked in #99. Marked
beta; refers to SAP Cloud ALM's own docs for agent onboarding; notes the
CALM + Dynatrace OneAgent combination is unsupported.
- **Carve out `telemetry-to-caas`.** The heavy CaaS deployment recipe
(collector instance creation, ZTI sidecar `mta.yaml`,
certificate-identity workaround, manual mTLS) is removed from the public
README and moved to the internal golden-path docs, where the audience
and internal links belong. The kind's TOC entry is removed too.

## Why

- CALM coexistence is now demand-driven (#99) and works on OTel 2.0 via
the delegate path; documenting it (beta) gives users a supported story.
- The CaaS recipe is deployment/onboarding content for an internal
offering — it fits golden-path, not the plugin's public API reference.

Net: README is +11 / −101 lines.

## Requirements

CALM coexistence requires `@sap/xotel-agent-ext-js` 2.0.4 or later.

Closes #99
@sebastien-savalle

Copy link
Copy Markdown
Contributor

Hi @sjvans: when do you plan to release this version ?

Comment thread package.json Outdated
Comment thread package.json Outdated
Comment thread .oxfmtrc.jsonc Outdated
Comment thread test/tracing.test.js Outdated
Comment thread eslint.config.mjs Outdated
Comment thread lib/utils/caas.js Outdated
# Polish CaaS Exporter Buffering and Tooling Cleanup

### Bug Fix

🐛 Refines CaaS exporter buffering so telemetry batches are buffered only
while certificates are unavailable, flushed once certificates arrive,
and then exported directly for all future calls. Also includes small
documentation and tooling cleanup.

### Changes

* `lib/utils/caas.js`: Simplified buffering logic by removing the
separate readiness state and relying on certificate availability.
Buffered batches are flushed once certificates are present, the original
exporter is restored, and pre-certificate batches are acknowledged while
buffered.
* `README.md`: Corrected the documented number of predefined telemetry
kinds from six to five.
* `package.json`: Updated lint and format scripts to call local binaries
directly instead of using `npx`.
* `.oxfmtrc.jsonc`: Reduced formatter ignore patterns so `CHANGELOG.md`
and `jest.config.js` are no longer excluded.
* `eslint.config.mjs`: Removed the custom Vitest `vi` global override
and now exports the recommended CDS ESLint config directly.
* `lib/tracing/locate.js`: Clarified the comment explaining why locate
failures stay quiet during tests.
* `test/tracing.test.js`: Removed an outdated Jest-related revisit
comment.

- [ ] 🔄 Regenerate and Update Summary



<details>
<summary>PR Bot Information</summary>

**Version:** `1.31.51`

- Correlation ID: `c1d5d860-b8d8-11f1-994e-9f11a17ac661`
- Output Template: [Default
Template](https://github.tools.sap/Code-Change-Intelligence/pr-bot/blob/main/src/services/llm/prompts/summary_default_output_template.md)
- File Content Strategy: Full file content
- LLM: `gpt-5.5`
- Summary Prompt: [Default
Prompt](https://github.tools.sap/Code-Change-Intelligence/pr-bot/blob/main/src/services/llm/prompts/summary_instructions_prompt.md)
- Event Trigger: `pull_request.edited`
</details>

This branch had an error being deployed

1 failed deployment
hana — be2c6aee Deployed Sep 25, 2026 by sjvans via hana (hana-client, false) #428
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

5 participants