Skip to main content

What changed

The observability surface (Logger, initOtel / init_otel, withSpan / with_span, executeTracedRequest / execute_traced_request, and the rest of the public API) moves from the standalone iii-observability packages into the @iii-dev/helpers package as a new observability submodule.
SubmoduleNodePythonRust
observability@iii-dev/helpers/observabilityiii_helpers.observabilityiii_helpers::observability
Node also exposes an internal-only entry point @iii-dev/helpers/observability/internal that provides getMeter and getTracer. This entry point is not part of the public API; it is reserved for first-party iii packages.

OpenTelemetry dependencies

The OpenTelemetry dependencies are now bundled in @iii-dev/helpers / iii-helpers directly. For SDK users this is net-neutral: the root SDK already depended on iii-observability, which pulled in otel. The dependency now flows through the helpers package instead.

Deprecated shims

The standalone packages remain published but are deprecated. They re-export the public API from the helpers observability submodule. Importing from the old packages continues to work but emits a deprecation signal:
LanguageDeprecated packageDeprecation mechanism
Node@iii-dev/observability@deprecated JSDoc on every re-export
Pythoniii-observability (PyPI)DeprecationWarning at import time
Rustiii-observability (crates.io)#![deprecated] crate-level attribute
The shim covers the public API only. Node’s internal-only getMeter and getTracer symbols are not re-exported by the shim and now live at @iii-dev/helpers/observability/internal (previously @iii-dev/observability/internal before the migration).

Migration

Replace imports of the standalone iii-observability packages with the observability submodule path from helpers. Node:
// Before
import { Logger, initOtel, withSpan } from '@iii-dev/observability'
// After
import { Logger, initOtel, withSpan } from '@iii-dev/helpers/observability'
Python:
# Before
from iii_observability import Logger, init_otel, with_span
# After
from iii_helpers.observability import Logger, init_otel, with_span
Rust:
// Before
use iii_observability::{Logger, init_otel, with_span};
// After
use iii_helpers::observability::{Logger, init_otel, with_span};