This library contains the generated code for OpenTelemetry protobuf data model.
The code in the current package was generated using the v1.9.0 release_ of
opentelemetry-proto.
Provides
Requires
License
Apache-2.0
Changelog
* Sun Nov 01 2026 Martin Pluskal <mpluskal@suse.com>
- Update to 1.45.1: lockstep release with
opentelemetry-api 1.45.1, no functional changes in this
package.
* Tue Sep 29 2026 Nico Krapp <nico.krapp@suse.com>
- Update to 1.45.0
* ### Added
* opentelemetry-exporter-prometheus: add support to configure
Resource attributes as metric labels (#5122)
* infra: add renovate (#5202)
* opentelemetry-api, opentelemetry-sdk: add support for extended
attribute values everywhere. (#5266)
* opentelemetry-sdk: wire the top-level log_level field in
declarative configuration — when set, maps the OTel
SeverityNumber value to a Python logging level and applies it
to the opentelemetry logger so SDK internal diagnostics respect
the configured severity. (#5351)
* opentelemetry-sdk: add the new stable AlwaysRecordSampler
* opentelemetry-configuration, opentelemetry-sdk: wire top-level
attribute_limits into per-signal providers via declarative
config; add log_record_limits support to LoggerProvider (#5365)
* opentelemetry-exporter-otlp-json-http: add OTLP JSON HTTP
exporter package (#5374)
* opentelemetry-api, opentelemetry-sdk: add enabled() support to
the Logger API, SDK, and LogRecordProcessor to let
instrumentation skip expensive work when logging is disabled
* opentelemetry-exporter-otlp-json-file: add OTLP JSON file
Docker tests (#5412)
* opentelemetry-configuration: wire the experimental
tracer_configurator/development, meter_configurator/development
and logger_configurator/development fields into
create_tracer_provider, create_meter_provider and
create_logger_provider, so per-instrumentation-scope enabled
overrides declared in the config file are applied to the
provider (previously these fields were parsed but silently
discarded). The logger minimum_severity/trace_based fields are
not supported by the Python SDK and are ignored with a warning.
* docs/examples: add example on how to manually setup the SDK to
get SDK metrics (#5449)
* opentelemetry-docker-tests: add Prometheus exporter docker
tests (#5457)
* opentelemetry-sdk: count records dropped after shutdown on
otel.sdk.processor.{span,log}.processed with error.type=
already_shutdown (batch span/log and simple log processors),
which the semantic conventions define as a valid value for this
metric. (#5509)
* opentelemetry-semantic-conventions: update semantic conventions
to v1.44.0 (#5511)
* opentelemetry-sdk: add host.id to the host resource detector
* opentelemetry-test-utils: add CapturingSampler to record what
samplers receive in instrumentation tests (#5681)
* ### Changed
* Enable PIE (flake8-pie) ruff rule and fix all violations
* The public opentelemetry.util.types.AttributeValue type in
package opentelemetry-api is being expanded to include None,
heterogeneous sequences of primitive types (and nested
sequences) as opposed to only homogeneous primitive sequences,
and Mappings of strings to any primitive types or sequences/
mappings (which themselves must only contain primitive types or
sequences/mappings validated the same way). If a bytes type is
set as an attribute value in the SDK, it will no longer be
utf-8 decoded to a string, instead it will be passed along as
is in accordance with the OTEL spec, since bytes is a valid
type in the OTLP proto. (#5266)
* opentelemetry-exporter-otlp-proto-http: add a max_request_size
argument to the OTLP HTTP exporters (traces, logs, metrics);
serialized requests larger than the limit are dropped before
sending, measured before compression. Defaults to 64 MiB
(enabled); set to 0 to disable. Mirrors opentelemetry-go#8157.
* [BREAKING] opentelemetry-api: subclasses of Logger need to
implement the enabled method (#5380)
* opentelemetry-exporter-otlp-proto-http: refactor to use shared
opentelemetry-exporter-otlp-common and
opentelemetry-exporter-http-transport packages and switch
default HTTP backend to urllib3 (#5389)
* opentelemetry-sdk: unify logging force_flush timeout defaults
to 30000ms (#5438)
* opentelemetry-python: enable Ruff default ruleset and fix
auto-fixable lint issues (#5491)
* opentelemetry-sdk: SimpleSpanProcessor now drops spans ended
after shutdown() instead of passing them to the exporter, and
counts them on otel.sdk.processor.span.processed with
error.type=already_shutdown. (#5512)
* Bump pytest to 9.0.3 (#5518)
* opentelemetry-exporter-otlp-proto-http: clarify that the
endpoint= kwarg requires the full signal path (#5633)
* opentelemetry-sdk: fix typos in SpanLimits docstring (#5658)
* ### Fixed
* opentelemetry-configuration: perform environment variable
substitution on scalar values after parsing the configuration
file, so ${VAR} references inside comments and mapping keys
are no longer substituted and undefined references in comments
no longer abort loading (#5407)
* opentelemetry-configuration: declarative config environment
variable substitution now replaces an unset variable that has
no default with an empty value instead of raising an error, per
the configuration spec. Resource attributes whose value
resolves to null (an unset ${VAR} with no default) are skipped
with a warning instead of being inserted as a null value.
* 'scripts/build.sh: add
opentelemetry-configurationandopentelemetry-proto-json` to the
package to release (#5425)
* opentelemetry-sdk: fix View instrument-name matching so a view
configured with an instrument's real (mixed-case) name is
applied; matching is now case-insensitive and platform-
independent instead of relying on fnmatch's OS-dependent case
handling (#5430)
* opentelemetry-sdk: fix missing f-prefix in exponential
histogram error messages (#5434)
* opentelemetry-configuration: resolve false-positive warning
logs for newer schema minor version (#5436)
* opentelemetry-sdk: make methods on
FixedSizeExemplarReservoirABC thread safe (#5437)
* opentelemetry-propagator-jaeger: fix typing issues and enable
pyright typechecking for the package opentelemetry-propagator-
jaeger: skip uberctx- baggage headers with an empty value on
extraction instead of raising TypeError (#5440)
* opentelemetry-sdk: fix TypeError when instantiating a
_BaseConfigurator subclass whose __init__ takes arguments
* opentelemetry-sdk: fix TypeError in os.fork() when a
BatchProcessor or PeriodicExportingMetricReader is garbage
collected (#5453)
* opentelemetry-configuration: a declarative config key present
with an empty (null) value on an object-typed node (e.g.
always_on:, a - service: detector, or a metric console:
exporter) is now treated the same as an explicit empty config
(always_on: {}) instead of failing type dispatch or silently
skipping the node. Both dict-typed nodes and dataclasses
constructible with no arguments are covered. (#5454)
* opentelemetry-api: fix copy-pasted log message in
SpanContext.__delattr__ (#5455)
* opentelemetry-sdk: reject views with
ExponentialBucketHistogramAggregation for asynchronous
instruments instead of silently producing no data (#5461)
* opentelemetry-sdk: fill every bucket of
SimpleFixedSizeExemplarReservoir before random sampling (#5462)
* opentelemetry-sdk: Import code_attributes from stable semconv
package (#5465)
* opentelemetry-sdk: for both the simple and batch span/log
processors, count otel.sdk.processor.{span,log}.processed when
the processor submits records to the exporter instead of after
export completes, and stop stamping exporter failures onto
this metric as error.type (#5472)
* opentelemetry-sdk: fix misleading instrument name validation
error message (name max length is 255, not 63). (#5513)
* opentelemetry-configuration: add missing process executable
name to default service name when available in resource
attributes (#5534)
* opentelemetry-sdk: fix values for process.executable.name and
process.executable.path to match semantic conventions. (#5535)
* opentelemetry-api: fix TraceState.update dropping all entries
when adding a new key at the 32-key limit (#5543)
* opentelemetry-sdk: bound get_aggregated_resources() wait to
the timeout (#5545)
* opentelemetry-sdk: don't read process.executable.name resource
attribute when building default service.name (#5547)
* opentelemetry-propagator-jaeger: enforce baggage limits on both
uberctx- extract and inject, borrowing the same limits (180
entries, 4096 bytes per entry, 8192 bytes total) the package's
core W3CBaggagePropagator already uses, so neither an inbound
carrier nor an in-process baggage map can produce unbounded
work or headers. (#5556)
* opentelemetry-sdk: keep metric attribute values that Python
considers equal but the data model does not, such as True, 1
and 1.0, in separate metric streams (#5573)
* opentelemetry-sdk: keep Resource hashable and serialisable
when an attribute value is bytes, instead of raising
TypeError from every OTLP encoder (#5577)
* opentelemetry-sdk: fix instrumentation scope name matching in
the tracer, meter and logger configurators so it is
case-sensitive on every platform instead of relying on
fnmatch's OS-dependent case handling (#5584)
* opentelemetry-sdk: fix TracerProvider() raising ValueError when
OTEL_TRACES_SAMPLER_ARG is a syntactically valid number outside
the [0.0, 1.0] range, instead of logging a warning and falling
back like other invalid values (#5594)
* opentelemetry-sdk: retain values from synchronous instruments
using last-value aggregation across cumulative collections
* opentelemetry-api: Added guard for negative value on
max_value_len (#5647)
* opentelemetry-sdk: fix overriding of the service.instance.id
which has been populated from the user provided values through
the resource detectors (#5660)
* opentelemetry-exporter-otlp-proto-grpc: Fix incorrect default
port for OTLP gRPC exporter self-metrics (#5668)
* opentelemetry-api: update W3CBaggagePropagator to properly
handle whitespace (#5680)
* Tue Jul 07 2026 Dirk Müller <dmueller@suse.com>
- update to 1.43.0:
* ### Added
* `opentelemetry-sdk`: add `add_metric_reader` /
`remove_metric_reader` public APIs to register / unregister
metric readers at runtime.
* `opentelemetry-exporter-prometheus`: add support for
configuring metric scope labels
* `opentelemetry-exporter-otlp-proto-grpc`: Add grpc error
details to the log message that's written when the grpc call
fails.
* `opentelemetry-exporter-http-transport`: add 'opentelemetry-
exporter-http-transport' package for HTTP exporters
* `opentelemetry-sdk`: Add `composite/development` samplers
support to declarative file configuration
* `opentelemetry-exporter-otlp-json-file`: Add OTLP JSON File
exporter implementation
* `opentelemetry-sdk`: add `_resolve_component` shared utility
for declarative config plugin loading, reducing boilerplate
in exporter factory functions
* `opentelemetry-sdk`: add pull metric reader support to
declarative file configuration, including Prometheus metric
reader via the `prometheus_development` config field
* `opentelemetry-proto-json`: update to use opentelemetry-proto
v1.10.0
* `opentelemetry-proto`: bump maximum supported protobuf
version to 7.x.x
* `opentelemetry-sdk`: add `ServiceInstanceIdResourceDetector`
for populating `service.instance.id`
* `opentelemetry-sdk`: declarative config loader now
recursively converts parsed dicts into typed dataclass
instances, including nested dataclasses, lists of
dataclasses, and enum values. End-to-end YAML/JSON → SDK
configuration now works via the factory functions.
* `opentelemetry-sdk`: add `configure_sdk(config)` to the
declarative configuration API. Single entry point that takes
a parsed `OpenTelemetryConfiguration`, builds the resource,
and applies the tracer/meter/logger providers and propagator
globally. Honors the top-level `disabled` flag.
* `opentelemetry-sdk`: the SDK configurator now honors the
`OTEL_CONFIG_FILE` environment variable. When set, the SDK
loads and applies the referenced declarative configuration
file (YAML or JSON) in place of the env-var-based init path.
* `opentelemetry-sdk`: update declarative config to use
`ServiceInstanceIdResourceDetector`
* `opentelemetry-exporter-otlp-proto-common`, `opentelemetry-
exporter-otlp-json-common`: encoders now always accept null,
and encode it as an empty `AnyValue` in accordance with the
spec.
* `opentelemetry-sdk`: validate the declarative config
`file_format` version — reject an unsupported major version
and warn on a newer minor version, per the configuration spec
versioning rules
* `opentelemetry-exporter-http-transport`: enable entry-point
loading of transport implementations
* ### Changed
* `opentelemetry-sdk`: introduce experimental entry points for
OpAMP agent integration
* `opentelemetry-api`: conditionally import entrypoints for
`opentelemetry_context` only if the `OTEL_PYTHON_CONTEXT` env
variable is defined, return `ContextVarsRuntimeContext`
otherwise
* `opentelemetry-sdk`: rename "known/unknown" to "built-
in/user-defined" terminology in declarative config component
loading code
* `opentelemetry-proto`: regenerate protobuf code from
opentelemetry-proto v1.10.0
* `opentelemetry-sdk`: remove unnecessary `copy` in Span
creation
* opentelemetry-sdk: remove unnecessary dict in set_attribute
method
* `opentelemetry-sdk`: inline the method
`_clean_attribute_value`
* Remove typing aliases deprecated in python 3.9 and replace
all usages of `typing.Union` and `typing.Optional` with `|`.
* opentelemetry-sdk: remove generator in the accessor for
links/events
* opentelemetry-api: remove unnecessary copy in iterator
* `opentelemetry-api`: update `EnvironmentGetter` to ignore
non-normalized environment variable names
* opentelemetry-sdk: update iterator for BoundedList
* opentelemetry-sdk: reduce lock contention in attributes
* opentelemetry-sdk: merge doesn't need a copy, dict already
does this
* `opentelemetry-api`: normalize empty environment propagation
names to `_` in `EnvironmentSetter` and `EnvironmentGetter`
* ### Fixed
* Add missing `.rst` files to Sphinx documentation build for
SDK logs, propagators, and exporter submodules.
* Preserve the random trace ID flag when creating child spans
instead of always setting the random trace id bit depending
on the available trace id generator.
* `opentelemetry-api`: fix SelectableGroups deprecation warning
* `opentelemetry-sdk`: make
`SynchronousMeasurementConsumer.consume_measurement` lock
free to avoid deadlocks
* Sat Jun 20 2026 Dirk Müller <dmueller@suse.com>
- update to 1.42.1:
* This is a patch release on the previous 1.42.0/0.63b0
release, fixing the issue(s) below.
* ### Fixed
* Preserve the random trace ID flag when creating child spans
instead of always setting the random trace id bit depending
on the available trace id generator.
- update to 1.42.0:
* ### Added
* `opentelemetry-api`, `opentelemetry-sdk`: add support for
'random-trace-id' flags in W3C traceparent header trace
flags. Implementations of `IdGenerator` that do randomly
generate the 56 least significant bits, should also implement
a `is_trace_id_random` methods that returns `True`.
* logs: add exception support to Logger emit and LogRecord
attributes
* `opentelemetry-exporter-otlp-proto-grpc`: make retryable gRPC
error codes configurable for gRPC exporters
* `opentelemetry-sdk`: Add
`create_logger_provider`/`configure_logger_provider` to
declarative file configuration, enabling LoggerProvider
instantiation from config files without reading env vars
* `opentelemetry-exporter-otlp-json-common`: add
'opentelemetry-exporter-otlp-json-common' package for OTLP
JSON exporters
* `opentelemetry-sdk`: Add `service` resource detector support
to declarative file configuration via
`detection_development.detectors[].service`
* `opentelemetry-docker-tests`: add docker-tests coverage of
`opentelemetry-exporter-otlp-proto-grpc` and `opentelemetry-
exporter-otlp-proto-http` metrics export
* Add `registry` keyword argument to `PrometheusMetricReader`
to allow passing a custom Prometheus registry
* Add WeaverLiveCheck test util
* `opentelemetry-sdk`: add `load_entry_point` shared utility to
declarative file configuration for loading plugins via entry
points; refactor propagator loading to use it
* `opentelemetry-sdk`: add sampler plugin loading to
declarative file configuration via the
`opentelemetry_sampler` entry point group, matching the
spec's PluginComponentProvider mechanism
* `opentelemetry-sdk`: add propagator plugin loading to
declarative file configuration via the
`opentelemetry_propagator` entry point group, matching the
spec's PluginComponentProvider mechanism
* `opentelemetry-sdk`: add exporter plugin loading to
declarative file configuration for all three signals (traces,
metrics, logs) via the `opentelemetry_*_exporter` entry point
groups, matching the spec's PluginComponentProvider mechanism
* `opentelemetry-sdk`: add generic resource detector plugin
loading to declarative file configuration via the
`opentelemetry_resource_detector` entry point group, matching
the spec's PluginComponentProvider mechanism
* `opentelemetry-sdk`: add `additional_properties` support to
generated config models via custom `datamodel-codegen`
template, enabling plugin/custom component names to flow
through typed dataclasses
* Add ability to selectively enable exporting of SDK internal
metrics with the `OTEL_PYTHON_SDK_INTERNAL_METRICS_ENABLED`
environment variable.
* ### Changed
* `opentelemetry-semantic-conventions`: use `X | Y` union
annotation
* `opentelemetry-api`: update `EnvironmentGetter` and
`EnvironmentSetter` to use normalized environment variable
names
* Apply fixes for `UP` ruff rule
* `opentelemetry-sdk`: only load entrypoints for resource
detectors if they are configured via
`OTEL_EXPERIMENTAL_RESOURCE_DETECTORS`
* ci: wait for tracecontext server readiness instead of a fixed
sleep in `scripts/tracecontext-integration-test.sh`
* Switch to SPDX license headers and add CI enforcement
* `opentelemetry-semantic-conventions`: Bump semantic
conventions to 1.41.1, this changes the metrics name of
`K8S_CONTAINER_CPU_LIMIT_UTILIZATION` and
`K8S_CONTAINER_CPU_REQUEST_UTILIZATION`.
* ### Removed
* `opentelemetry-api`: remove third-party importlib-metadata in
favor of standard library since Python >= 3.10 is now
required
* Drop Python 3.9 support
* ### Fixed
* `opentelemetry-sdk`: Allow declarative OTLP HTTP exporters to
map `compression: deflate` instead of rejecting it as
unsupported.
* Fix incorrect code example in `create_tracer()` docstring
* `opentelemetry-sdk`: Fix `ProcessResourceDetector` to use
`sys.orig_argv` so that `process.command`,
`process.command_line`, and `process.command_args` reflect
the original invocation for `python -m ` runs (where
`sys.argv[0]` is rewritten to the module path)
* `opentelemetry-sdk`: fix YAML structure injection via
environment variable substitution in declarative file
configuration; values containing newlines are now emitted as
quoted YAML scalars per spec requirement
* `opentelemetry-sdk`: Fix mutable attributes reference in