Update opentelemetry-python monorepo to v1.45.2 #11

Open
renovate-bot wants to merge 1 commit from renovate/opentelemetry-python-monorepo into main
Collaborator

This PR contains the following updates:

Package Change Age Confidence
opentelemetry-api ==1.35.0 → ==1.45.2 age confidence
opentelemetry-sdk ==1.35.0 → ==1.45.2 age confidence

Release Notes

open-telemetry/opentelemetry-python (opentelemetry-api)

v1.45.2

Compare Source

Added
  • opentelemetry-sdk, opentelemetry-configuration,
    opentelemetry-exporter-prometheus: enforce metric cardinality limits
    (default 2000) with the otel.metric.overflow attribute, configurable
    through View(aggregation_cardinality_limit=...), reader
    cardinality_limits and declarative configuration
    (#​5809)
Fixed
  • opentelemetry-api: limit traceparent header length to 512 characters in
    TraceContextTextMapPropagator during extraction
    (#​5818)

v1.45.1

Compare Source

Fixed
  • opentelemetry-api: make AnyValue and AttributeValue explicit type
    aliases
    (#​5703)
  • opentelemetry-sdk: fix thread leak bug in resource initialization logic for
    long running resource detectors
    (#​5706)
  • opentelemetry-exporter-otlp-proto-http: restore requests as the default
    HTTP transport so proxy environment variables such as HTTPS_PROXY are
    honored again
    (#​5714)
  • opentelemetry-api: fix quadratic time parsing of the tracestate header
    and discard tracestate headers longer than 8192 characters
    (#​5746)

v1.45.0

Compare Source

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
    (#​5354)
  • 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
    (#​5380)
  • 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.
    (#​5418)
  • 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
    (#​5653)
  • 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
    (#​5150)
  • 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.
    (#​5369)
  • [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.
    (#​5408)
  • '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
    (#​5441)
  • 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
    (#​5637)
  • 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)

v1.44.0

Compare Source

Added
  • opentelemetry-docker-tests: Refactor Docker tests to properly validate
    contents of exported telemetry
    (#​5220)
  • opentelemetry-exporter-otlp-common: add shared package for common OTLP
    utilities
    (#​5252)
  • opentelemetry-sdk: add MissingDependencyError exception for declarative
    configuration and use it for missing optional dependency errors
    (#​5265)
  • opentelemetry-sdk: Add ability to refresh process dependent Resource
    attributes
    (#​5280)
  • opentelemetry-sdk: add force_flush method to LogRecordExporter ABC
    (#​5294)
  • opentelemetry-sdk: Make it possible to limit the size of stored spans in
    InMemorySpanExporter
    (#​5296)
  • opentelemetry-sdk: add log record limits environment variables
    OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT and
    OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT
    (#​5300)
  • opentelemetry-sdk: add support for file exporter with declarative config
    (#​5311)
  • opentelemetry-sdk: expose SynchronousMultiLogRecordProcessor and
    ConcurrentMultiLogRecordProcessor publicly
    (#​5327)
  • opentelemetry-sdk: point the declarative configuration package README at
    the shared language support status
    matrix

    in the opentelemetry-configuration repo, so Python conformance status lives
    alongside the other languages instead of being duplicated per language SDK.
    (#​5347)
  • opentelemetry-sdk: document that Python-implementation extensions
    (OTEL_PYTHON_* variables) are bypassed when OTEL_CONFIG_FILE is set. The
    env-var initialisation path is skipped entirely in favour of the declarative
    file; honouring these alongside a config file is tracked as a follow-up.
    (#​5353)
  • opentelemetry-sdk: wire id_generator from declarative configuration to
    TracerProvider
    (#​5363)
  • opentelemetry-sdk: Add support for activating instrumentors from a
    declarative configuration file via the instrumentation/development.python
    section. Instrumentors can declare a configuration attribute to have their
    options validated through the same type-coercion pipeline used for SDK
    component configuration.
    (#​5372)
  • opentelemetry-sdk: add record_min_max option to
    ExponentialBucketHistogramAggregation, matching the option already
    available on ExplicitBucketHistogramAggregation and required by the
    specification
    (#​5377)
Changed
  • opentelemetry-sdk: revert BoundedAttributes RLock back to Lock
    (#​5329)
  • docs: update logs example to use opentelemetry-instrumentation-logging
    (#​5344)
  • opentelemetry-sdk: bump declarative configuration schema to v1.1.0
    (#​5345)
  • opentelemetry-configuration: declarative configuration moves from
    opentelemetry.sdk._configuration into the new public
    opentelemetry-configuration package (opentelemetry.configuration
    namespace), published experimentally. opentelemetry-sdk[file-configuration]
    continues to work as an alias that installs opentelemetry-configuration
    alongside the SDK.
    (#​5356)
  • opentelemetry-api: remove env carrier environment snapshot caching, you now
    have to pass explicitly the mapping where to get the environment variables
    from as the EnvironmentGetter.get first argument.
    (#​5366)
  • opentelemetry-semantic-conventions: bump to 1.42.0
    (#​5410)
  • opentelemetry-semantic-conventions: bump to 1.43.0
    (#​5413)
Removed
  • opentelemetry-api, opentelemetry-sdk: Removed deprecated Events API/SDK.
    Use LogRecord with the event_name field set instead.
    (#​5293)
Fixed
  • opentelemetry-sdk: Optimize LogRecord memory in BatchLogRecordProcessor
    by clearing the Context object before buffering. This is a potentially
    breaking change for custom log exporters that access context from the
    exported ReadableLogRecord, as the context will now be an empty Context()
    instead of the original.
    (#​4977)
  • opentelemetry-sdk: drop non-finite measurements (NaN and Inf) at the
    instrument level to prevent permanent aggregation poisoning
    (#​5336)
  • opentelemetry-sdk: raise ValueError when
    ExplicitBucketHistogramAggregation boundaries are not strictly increasing
    or finite
    (#​5340)
  • opentelemetry-sdk: ProcessResourceDetector no longer collects or emits
    process.command_args and process.command_line by default since the values
    are not sanitized and may contain sensitive information. Users who depend
    on these resource attributes must pass include_command_args=True.
    (#​5364)
  • opentelemetry-exporter-otlp-proto-http: fix the OTLP HTTP metric exporter
    self-observability metrics over-counting data points when
    max_export_batch_size splits a batch; each split now reports its own
    data-point count instead of the whole-batch count.
    (#​5370)
  • opentelemetry-api: Prevent in-place mutation of Context via inherited
    dict methods
    (#​5399)

v1.43.0

Compare Source

Added
  • opentelemetry-sdk: add add_metric_reader / remove_metric_reader public
    APIs to register / unregister metric readers at runtime.
    (#​4863)
  • opentelemetry-exporter-prometheus: add support for configuring metric scope
    labels
    (#​5123)
  • opentelemetry-exporter-otlp-proto-grpc: Add grpc error details to the log
    message that's written when the grpc call fails.
    (#​5143)
  • opentelemetry-exporter-http-transport: add
    'opentelemetry-exporter-http-transport' package for HTTP exporters
    (#​5194)
  • opentelemetry-sdk: Add composite/development samplers support to
    declarative file configuration
    (#​5201)
  • opentelemetry-exporter-otlp-json-file: Add OTLP JSON File exporter
    implementation
    (#​5207)
  • opentelemetry-sdk: add _resolve_component shared utility for declarative
    config plugin loading, reducing boilerplate in exporter factory functions
    (#​5215)
  • opentelemetry-sdk: add pull metric reader support to declarative file
    configuration, including Prometheus metric reader via the
    prometheus_development config field
    (#​5216)
  • opentelemetry-proto-json: update to use opentelemetry-proto v1.10.0
    (#​5224)
  • opentelemetry-proto: bump maximum supported protobuf version to 7.x.x
    (#​5251)
  • opentelemetry-sdk: add ServiceInstanceIdResourceDetector for populating
    service.instance.id
    (#​5259)
  • 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.
    (#​5269)
  • 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.
    (#​5270)
  • 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.
    (#​5271)
  • opentelemetry-sdk: update declarative config to use
    ServiceInstanceIdResourceDetector
    (#​5299)
  • 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.
    (#​5305)
  • 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
    (#​5315)
  • opentelemetry-exporter-http-transport: enable entry-point loading of
    transport implementations
    (#​5320)
Changed
  • opentelemetry-sdk: introduce experimental entry points for OpAMP agent
    integration
    (#​4646)
  • opentelemetry-api: conditionally import entrypoints for
    opentelemetry_context only if the OTEL_PYTHON_CONTEXT env variable is
    defined, return ContextVarsRuntimeContext otherwise
    (#​5144)
  • opentelemetry-sdk: rename "known/unknown" to "built-in/user-defined"
    terminology in declarative config component loading code
    (#​5214)
  • opentelemetry-proto: regenerate protobuf code from opentelemetry-proto
    v1.10.0
    (#​5223)
  • opentelemetry-sdk: remove unnecessary copy in Span creation
    (#​5272)
  • opentelemetry-sdk: remove unnecessary dict in set_attribute method
    (#​5274)
  • opentelemetry-sdk: inline the method _clean_attribute_value
    (#​5275)
  • Remove typing aliases deprecated in python 3.9 and replace all usages of
    typing.Union and typing.Optional with |.
    (#​5277)
  • opentelemetry-sdk: remove generator in the accessor for links/events
    (#​5287)
  • opentelemetry-api: remove unnecessary copy in iterator
    (#​5288)
  • opentelemetry-api: update EnvironmentGetter to ignore non-normalized
    environment variable names
    (#​5289)
  • opentelemetry-sdk: update iterator for BoundedList
    (#​5297)
  • opentelemetry-sdk: reduce lock contention in attributes
    (#​5298)
  • opentelemetry-sdk: merge doesn't need a copy, dict already does this
    (#​5326)
  • opentelemetry-api: normalize empty environment propagation names to _ in
    EnvironmentSetter and EnvironmentGetter
    (#​5328)
Fixed
  • Add missing .rst files to Sphinx documentation build for SDK logs,
    propagators, and exporter submodules.
    (#​5017)
  • 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.
    (#​5241)
  • opentelemetry-api: fix SelectableGroups deprecation warning
    (#​5250)
  • opentelemetry-sdk: make
    SynchronousMeasurementConsumer.consume_measurement lock free to avoid
    deadlocks
    (#​5321)

v1.42.1

Compare Source

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.
    (#​5241)

v1.42.0

Compare Source

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.
    (#​4854)
  • logs: add exception support to Logger emit and LogRecord attributes
    (#​4908)
  • opentelemetry-exporter-otlp-proto-grpc: make retryable gRPC error codes
    configurable for gRPC exporters
    (#​4917)
  • opentelemetry-sdk: Add create_logger_provider/configure_logger_provider
    to declarative file configuration, enabling LoggerProvider instantiation from
    config files without reading env vars
    (#​4990)
  • opentelemetry-exporter-otlp-json-common: add
    'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters
    (#​4996)
  • opentelemetry-sdk: Add service resource detector support to declarative
    file configuration via detection_development.detectors[].service
    (#​5003)
  • opentelemetry-docker-tests: add docker-tests coverage of
    opentelemetry-exporter-otlp-proto-grpc and
    opentelemetry-exporter-otlp-proto-http metrics export
    (#​5030)
  • Add registry keyword argument to PrometheusMetricReader to allow passing
    a custom Prometheus registry
    (#​5055)
  • Add WeaverLiveCheck test util
    (#​5088)
  • opentelemetry-sdk: add load_entry_point shared utility to declarative
    file configuration for loading plugins via entry points; refactor propagator
    loading to use it
    (#​5093)
  • opentelemetry-sdk: add sampler plugin loading to declarative file
    configuration via the opentelemetry_sampler entry point group, matching the
    spec's PluginComponentProvider mechanism
    (#​5095)
  • opentelemetry-sdk: add propagator plugin loading to declarative file
    configuration via the opentelemetry_propagator entry point group, matching
    the spec's PluginComponentProvider mechanism
    (#​5098)
  • 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
    (#​5128)
  • 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
    (#​5129)
  • 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
    (#​5131)
  • Add ability to selectively enable exporting of SDK internal metrics with the
    OTEL_PYTHON_SDK_INTERNAL_METRICS_ENABLED environment variable.
    (#​5151)
Changed
  • opentelemetry-semantic-conventions: use X | Y union annotation
    (#​5096)
  • opentelemetry-api: update EnvironmentGetter and EnvironmentSetter to
    use normalized environment variable names
    (#​5119)
  • Apply fixes for UP ruff rule
    (#​5133)
  • opentelemetry-sdk: only load entrypoints for resource detectors if they are
    configured via OTEL_EXPERIMENTAL_RESOURCE_DETECTORS
    (#​5145)
  • ci: wait for tracecontext server readiness instead of a fixed sleep in
    scripts/tracecontext-integration-test.sh
    (#​5149)
  • Switch to SPDX license headers and add CI enforcement
    (#​5177)
  • 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.
    (#​5200)
Removed
  • opentelemetry-api: remove third-party importlib-metadata in favor of
    standard library since Python >= 3.10 is now required
    (#​3234)
  • Drop Python 3.9 support
    (#​5076)
Fixed
  • opentelemetry-sdk: Allow declarative OTLP HTTP exporters to map
    compression: deflate instead of rejecting it as unsupported.
    (#​5075)
  • Fix incorrect code example in create_tracer() docstring
    (#​5077)
  • 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 <module> runs (where
    sys.argv[0] is rewritten to the module path)
    (#​5083)
  • 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
    (#​5091)
  • opentelemetry-sdk: Fix mutable attributes reference in metrics, attributes
    passed to instrument add/record are now copied so that subsequent
    mutations do not affect recorded data points
    (#​5106)
  • opentelemetry-sdk: make resource detector ordering deterministic
    (#​5120)
  • Fix incorrect type annotation on detectors parameter of
    get_aggregated_resources
    (#​5135)
  • opentelemetry-api: Enforce W3C Baggage size limits on outbound propagation
    in W3CBaggagePropagator.inject(). Previously only inbound extraction
    enforced limits; now inject also caps entries at 180, individual pairs at
    4096 bytes, and total header at 8192 bytes per the W3C Baggage spec. The
    extract path max_pairs limit now counts all size-valid entries rather than
    only successfully parsed ones.
    (#​5163)
  • opentelemetry-sdk: fix multi-processor force_flush skipping remaining
    processors when one returns None
    (#​5179)
  • opentelemetry-test-utils: fix weaver live check hanging when weaver log
    output fills the pipe buffer
    (#​5208)

v1.41.1: Version 1.41.1/0.62b1

Compare Source

This is a patch release on the previous 1.41.0/0.62b0 release, fixing the issue(s) below.

v1.41.0

Compare Source

  • opentelemetry-sdk: Add host resource detector support to declarative file configuration via detection_development.detectors[].host
    (#​5002)
  • opentelemetry-sdk: Add container resource detector support to declarative file configuration via detection_development.detectors[].container, using entry point loading of the opentelemetry-resource-detector-containerid contrib package
    (#​5004)
  • opentelemetry-sdk: Add create_tracer_provider/configure_tracer_provider to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars
    (#​4985)
  • Enabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.
    (#​5019)
  • opentelemetry-sdk: Fix AttributeError in ExplicitBucketHistogramAggregation when applied to non-Histogram instruments without explicit boundaries
    (#​5034)
  • Fix BatchLogRecordProcessor default schedule_delay_millis from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the OTEL_BLRP_SCHEDULE_DELAY env var).
    (#​4998)
  • opentelemetry-sdk: Add process resource detector support to declarative file configuration via detection_development.detectors[].process
    (#​5001)
  • opentelemetry-sdk: Add shared _parse_headers helper for declarative config OTLP exporters
    (#​5021)
  • opentelemetry-api: Replace a broad exception in attribute cleaning tests to satisfy pylint in the lint-opentelemetry-api CI job
  • opentelemetry-sdk: Add create_meter_provider/configure_meter_provider to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars
    (#​4987)
  • opentelemetry-sdk: Add create_resource and create_propagator/configure_propagator to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars
    (#​4979)
  • opentelemetry-sdk: Map Python CRITICAL log level to OTel FATAL severity text per the specification
    (#​4984)
  • opentelemetry-sdk: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema
    (#​4898)
  • Fix intermittent CI failures in getting-started and tracecontext jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone
    (#​4958)
  • opentelemetry-sdk: fix type annotations on MetricReader and related types
    (#​4938)
  • opentelemetry-sdk: implement log creation metric
    (#​4935)
  • opentelemetry-sdk: implement metric reader metrics
    (#​4970)
  • opentelemetry-sdk: implement processor metrics
    (#​5012)
  • opentelemetry-sdk: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0
    (#​4965)
  • opentelemetry-sdk: implement exporter metrics
    (#​4976)
  • improve check-links ci job
    (#​4978)
  • Resolve some Pyright type errors in Span/ReadableSpan and utility stubs
    (#​4973)
  • opentelemetry-exporter-prometheus: Fix metric name prefix
    (#​4895)
  • opentelemetry-api, opentelemetry-sdk: Add deepcopy support for BoundedAttributes and BoundedList
    (#​4934)
  • opentelemetry-proto-json, opentelemetry-codegen-json: Implement custom protoc plugin to generate OTLP JSON class definitions
    (#​4910)
  • Add configurable max_export_batch_size to OTLP HTTP metrics exporter
    (#​4576)
  • opentelemetry-sdk: Implement experimental Meter configurator
    (#​4966)
  • opentelemetry-exporter-otlp-proto-http: use consistent protobuf for export request
    (#​5015)
  • opentelemetry-sdk: cache TracerConfig into the tracer, this changes an internal interface. Only one Tracer with the same instrumentation scope will be created
    (#​5007)
  • Redo OTLPMetricExporter unit tests of max_export_batch_size to use real export
    (#​5036)
  • opentelemetry-sdk: Implement experimental Logger configurator
    (#​4980)

v1.40.0

Compare Source

  • opentelemetry-sdk: deprecate LoggingHandler in favor of opentelemetry-instrumentation-logging, see opentelemetry-instrumentation-logging documentation
    (#​4919)
  • opentelemetry-sdk: Clarify log processor error handling expectations in documentation
    (#​4915)
  • bump semantic-conventions to v1.40.0
    (#​4941)
  • Add stale PR GitHub Action
    (#​4926)
  • opentelemetry-sdk: Drop unused Jaeger exporter environment variables (exporter removed in 1.22.0)
    (#​4918)
  • opentelemetry-sdk: Clarify timeout units in environment variable documentation
    (#​4906)
  • opentelemetry-exporter-otlp-proto-grpc: Fix re-initialization of gRPC channel on UNAVAILABLE error
    (#​4825)
  • opentelemetry-exporter-prometheus: Fix duplicate HELP/TYPE declarations for metrics with different label sets
    (#​4868)
  • Allow loading all resource detectors by setting OTEL_EXPERIMENTAL_RESOURCE_DETECTORS to *
    (#​4819)
  • opentelemetry-sdk: Fix the type hint of the _metrics_data property to allow None
    (#​4837).
  • Regenerate opentelemetry-proto code with v1.9.0 release
    (#​4840)
  • Add python 3.14 support
    (#​4798)
  • Silence events API warnings for internal users
    (#​4847)
  • opentelemetry-sdk: make it possible to override the default processors in the SDK configurator
    (#​4806)
  • Prevent possible endless recursion from happening in SimpleLogRecordProcessor.on_emit,
    (#​4799) and (#​4867).
  • Implement span start/end metrics
    (#​4880)
  • Add environment variable carriers to API
    (#​4609)
  • Add experimental composable rule based sampler
    (#​4882)
  • Make ConcurrentMultiSpanProcessor fork safe
    (#​4862)
  • opentelemetry-exporter-otlp-proto-http: fix retry logic and error handling for connection failures in trace, metric, and log exporters
    (#​4709)
  • opentelemetry-sdk: avoid RuntimeError during iteration of view instrument match dictionary in MetricReaderStorage.collect()
    (#​4891)
  • Implement experimental TracerConfigurator
    (#​4861)
  • opentelemetry-sdk: Fix instrument creation race condition
    (#​4913)
  • bump semantic-conventions to v1.39.0
    (#​4914)
  • opentelemetry-sdk: automatically generate configuration models using OTel config JSON schema
    (#​4879)

v1.39.1: Version 1.39.1/0.60b1

Compare Source

This is a patch release on the previous 1.39.0/0.60b0 release, fixing the issue(s) below.

  • Silence events API warnings for internal users (#​4847)

v1.39.0

Compare Source

  • opentelemetry-api: Convert objects of any type other than AnyValue in attributes to string to be exportable
    (#​4808)

  • docs: Added sqlcommenter example
    (#​4734)

  • build: bump ruff to 0.14.1
    (#​4782)

  • Add opentelemetry-exporter-credential-provider-gcp as an optional dependency to opentelemetry-exporter-otlp-proto-grpc
    and opentelemetry-exporter-otlp-proto-http
    (#​4760)

  • feat: implement on ending in span processor
    (#​4775)

  • semantic-conventions: Bump to 1.38.0
    (#​4791)

  • [BREAKING] Remove LogData and extend SDK LogRecord to have instrumentation scope
    (#​4676)

  • [BREAKING] Rename several classes from Log to LogRecord
    (#​4647)

    Migration Guide:

    LogData has been removed. Users should update their code as follows:

    • For Log Exporters: Change from Sequence[LogData] to Sequence[ReadableLogRecord]

      # Before
      from opentelemetry.sdk._logs import LogData
      
      def export(self, batch: Sequence[LogData]) -> LogRecordExportResult: ...
      
      # After
      from opentelemetry.sdk._logs import ReadableLogRecord
      
      def export(self, batch: Sequence[ReadableLogRecord]) -> LogRecordExportResult: ...
      
    • For Log Processors: Use ReadWriteLogRecord for processing, ReadableLogRecord for exporting

      # Before
      from opentelemetry.sdk._logs import LogData
      
      def on_emit(self, log_data: LogData): ...
      
      # After
      from opentelemetry.sdk._logs import ReadWriteLogRecord, ReadableLogRecord
      
      def on_emit(self, log_record: ReadWriteLogRecord):
          # Convert to ReadableLogRecord before exporting
          readable = ReadableLogRecord(
              log_record=log_record.log_record,
              resource=log_record.resource or Resource.create({}),
              instrumentation_scope=log_record.instrumentation_scope,
              limits=log_record.limits,
          )
          ...
      
    • Accessing log data: Use the same attributes on ReadableLogRecord/ReadWriteLogRecord

      • log_record.log_record - The API LogRecord (contains body, severity, attributes, etc.)
      • log_record.resource - The Resource
      • log_record.instrumentation_scope - The InstrumentationScope (now included, was in LogData before)
      • log_record.limits - The LogRecordLimits
  • Mark the Events API/SDK as deprecated. The Logs API/SDK should be used instead, an event is now a LogRecord with the event_name field set
    (#​4654).

  • Fix type checking for built-in metric exporters
    (#​4820)

v1.38.0

Compare Source

  • Add rstcheck to pre-commit to stop introducing invalid RST
    (#​4755)
  • logs: extend Logger.emit to accept separated keyword arguments
    (#​4737)
  • logs: add warnings for classes that would be deprecated and renamed in 1.39.0
    (#​4771)

v1.37.0

Compare Source

  • Add experimental composite samplers
    (#​4714)
  • Add new environment variables to the SDK OTEL_PYTHON_EXPORTER_OTLP_{HTTP/GRPC}_{METRICS/TRACES/LOGS}_CREDENTIAL_PROVIDER that can be used to
    inject a requests.Session or grpc.ChannelCredentials object into OTLP exporters created during auto instrumentation #​4689.
  • Filter duplicate logs out of some internal logger's logs on the export logs path that might otherwise endlessly log or cause a recursion depth exceeded issue in cases where logging itself results in an exception.
    (#​4695).
  • docs: linked the examples with their github source code location and added Prometheus example
    (#​4728)
  • Permit to override default HTTP OTLP exporters headers
    (#​4634)
  • semantic-conventions: Bump to 1.37.0
    (#​4731)
  • opentelemetry-sdk: fix handling of OTEL_ATTRIBUTE_COUNT_LIMIT in logs
    (#​4677)
  • Performance: Cache importlib_metadata.entry_points
    (#​4735)
  • opentelemetry-sdk: fix calling Logger.emit with an API LogRecord instance
    (#​4741)

v1.36.0

Compare Source

  • Add missing Prometheus exporter documentation
    (#​4485)
  • Overwrite logging.config.fileConfig and logging.config.dictConfig to ensure
    the OTLP LogHandler remains attached to the root logger. Fix a bug that
    can cause a deadlock to occur over logging._lock in some cases (#​4636).
  • otlp-http-exporter: set default value for param timeout_sec in _export method
    (#​4691)
  • Update OTLP gRPC/HTTP exporters: calling shutdown will now interrupt exporters that are sleeping
    before a retry attempt, and cause them to return failure immediately.
    Update BatchSpan/LogRecordProcessors: shutdown will now complete after 30 seconds of trying to finish
    exporting any buffered telemetry, instead of continuing to export until all telemetry was exported.
    (#​4638).

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `==1.35.0` → `==1.45.2` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/opentelemetry-api/1.45.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/opentelemetry-api/1.35.0/1.45.2?slim=true) | | [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `==1.35.0` → `==1.45.2` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/opentelemetry-sdk/1.45.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/opentelemetry-sdk/1.35.0/1.45.2?slim=true) | --- ### Release Notes <details> <summary>open-telemetry/opentelemetry-python (opentelemetry-api)</summary> ### [`v1.45.2`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1452066b2-2026-10-29) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.45.1...v1.45.2) ##### Added - `opentelemetry-sdk`, `opentelemetry-configuration`, `opentelemetry-exporter-prometheus`: enforce metric cardinality limits (default 2000) with the `otel.metric.overflow` attribute, configurable through `View(aggregation_cardinality_limit=...)`, reader `cardinality_limits` and declarative configuration ([#&#8203;5809](https://github.com/open-telemetry/opentelemetry-python/pull/5809)) ##### Fixed - `opentelemetry-api`: limit `traceparent` header length to 512 characters in `TraceContextTextMapPropagator` during extraction ([#&#8203;5818](https://github.com/open-telemetry/opentelemetry-python/pull/5818)) ### [`v1.45.1`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1451066b1-2026-10-06) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.45.0...v1.45.1) ##### Fixed - `opentelemetry-api`: make `AnyValue` and `AttributeValue` explicit type aliases ([#&#8203;5703](https://github.com/open-telemetry/opentelemetry-python/pull/5703)) - `opentelemetry-sdk`: fix thread leak bug in resource initialization logic for long running resource detectors ([#&#8203;5706](https://github.com/open-telemetry/opentelemetry-python/pull/5706)) - `opentelemetry-exporter-otlp-proto-http`: restore `requests` as the default HTTP transport so proxy environment variables such as `HTTPS_PROXY` are honored again ([#&#8203;5714](https://github.com/open-telemetry/opentelemetry-python/pull/5714)) - `opentelemetry-api`: fix quadratic time parsing of the `tracestate` header and discard `tracestate` headers longer than 8192 characters ([#&#8203;5746](https://github.com/open-telemetry/opentelemetry-python/pull/5746)) ### [`v1.45.0`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1450066b0-2026-09-25) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.44.0...v1.45.0) ##### Added - `opentelemetry-exporter-prometheus`: add support to configure Resource attributes as metric labels ([#&#8203;5122](https://github.com/open-telemetry/opentelemetry-python/pull/5122)) - infra: add renovate ([#&#8203;5202](https://github.com/open-telemetry/opentelemetry-python/pull/5202)) - `opentelemetry-api`, `opentelemetry-sdk`: add support for extended attribute values everywhere. ([#&#8203;5266](https://github.com/open-telemetry/opentelemetry-python/pull/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. ([#&#8203;5351](https://github.com/open-telemetry/opentelemetry-python/pull/5351)) - `opentelemetry-sdk`: add the new stable `AlwaysRecordSampler` ([#&#8203;5354](https://github.com/open-telemetry/opentelemetry-python/pull/5354)) - `opentelemetry-configuration`, `opentelemetry-sdk`: wire top-level `attribute_limits` into per-signal providers via declarative config; add `log_record_limits` support to `LoggerProvider` ([#&#8203;5365](https://github.com/open-telemetry/opentelemetry-python/pull/5365)) - `opentelemetry-exporter-otlp-json-http`: add OTLP JSON HTTP exporter package ([#&#8203;5374](https://github.com/open-telemetry/opentelemetry-python/pull/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 ([#&#8203;5380](https://github.com/open-telemetry/opentelemetry-python/pull/5380)) - `opentelemetry-exporter-otlp-json-file`: add OTLP JSON file Docker tests ([#&#8203;5412](https://github.com/open-telemetry/opentelemetry-python/pull/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. ([#&#8203;5418](https://github.com/open-telemetry/opentelemetry-python/pull/5418)) - `docs/examples`: add example on how to manually setup the SDK to get SDK metrics ([#&#8203;5449](https://github.com/open-telemetry/opentelemetry-python/pull/5449)) - `opentelemetry-docker-tests`: add Prometheus exporter docker tests ([#&#8203;5457](https://github.com/open-telemetry/opentelemetry-python/pull/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. ([#&#8203;5509](https://github.com/open-telemetry/opentelemetry-python/pull/5509)) - `opentelemetry-semantic-conventions`: update semantic conventions to v1.44.0 ([#&#8203;5511](https://github.com/open-telemetry/opentelemetry-python/pull/5511)) - `opentelemetry-sdk`: add `host.id` to the host resource detector ([#&#8203;5653](https://github.com/open-telemetry/opentelemetry-python/pull/5653)) - `opentelemetry-test-utils`: add `CapturingSampler` to record what samplers receive in instrumentation tests ([#&#8203;5681](https://github.com/open-telemetry/opentelemetry-python/pull/5681)) ##### Changed - Enable `PIE` (flake8-pie) ruff rule and fix all violations ([#&#8203;5150](https://github.com/open-telemetry/opentelemetry-python/pull/5150)) - 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. ([#&#8203;5266](https://github.com/open-telemetry/opentelemetry-python/pull/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](https://github.com/opentelemetry-go/opentelemetry-python/issues/8157). ([#&#8203;5369](https://github.com/open-telemetry/opentelemetry-python/pull/5369)) - \[BREAKING] `opentelemetry-api`: subclasses of `Logger` need to implement the `enabled` method ([#&#8203;5380](https://github.com/open-telemetry/opentelemetry-python/pull/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 ([#&#8203;5389](https://github.com/open-telemetry/opentelemetry-python/pull/5389)) - `opentelemetry-sdk`: unify logging force_flush timeout defaults to 30000ms ([#&#8203;5438](https://github.com/open-telemetry/opentelemetry-python/pull/5438)) - `opentelemetry-python`: enable Ruff default ruleset and fix auto-fixable lint issues ([#&#8203;5491](https://github.com/open-telemetry/opentelemetry-python/pull/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`. ([#&#8203;5512](https://github.com/open-telemetry/opentelemetry-python/pull/5512)) - Bump pytest to 9.0.3 ([#&#8203;5518](https://github.com/open-telemetry/opentelemetry-python/pull/5518)) - `opentelemetry-exporter-otlp-proto-http`: clarify that the `endpoint=` kwarg requires the full signal path ([#&#8203;5633](https://github.com/open-telemetry/opentelemetry-python/pull/5633)) - `opentelemetry-sdk`: fix typos in SpanLimits docstring ([#&#8203;5658](https://github.com/open-telemetry/opentelemetry-python/pull/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 ([#&#8203;5407](https://github.com/open-telemetry/opentelemetry-python/pull/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. ([#&#8203;5408](https://github.com/open-telemetry/opentelemetry-python/pull/5408)) - 'scripts/build.sh`: add `opentelemetry-configuration`and`opentelemetry-proto-json\` to the package to release ([#&#8203;5425](https://github.com/open-telemetry/opentelemetry-python/pull/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 ([#&#8203;5430](https://github.com/open-telemetry/opentelemetry-python/pull/5430)) - `opentelemetry-sdk`: fix missing f-prefix in exponential histogram error messages ([#&#8203;5434](https://github.com/open-telemetry/opentelemetry-python/pull/5434)) - `opentelemetry-configuration`: resolve false-positive warning logs for newer schema minor version ([#&#8203;5436](https://github.com/open-telemetry/opentelemetry-python/pull/5436)) - `opentelemetry-sdk`: make methods on `FixedSizeExemplarReservoirABC` thread safe ([#&#8203;5437](https://github.com/open-telemetry/opentelemetry-python/pull/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` ([#&#8203;5440](https://github.com/open-telemetry/opentelemetry-python/pull/5440)) - `opentelemetry-sdk`: fix `TypeError` when instantiating a `_BaseConfigurator` subclass whose `__init__` takes arguments ([#&#8203;5441](https://github.com/open-telemetry/opentelemetry-python/pull/5441)) - `opentelemetry-sdk`: fix `TypeError` in `os.fork()` when a `BatchProcessor` or `PeriodicExportingMetricReader` is garbage collected ([#&#8203;5453](https://github.com/open-telemetry/opentelemetry-python/pull/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. ([#&#8203;5454](https://github.com/open-telemetry/opentelemetry-python/pull/5454)) - `opentelemetry-api`: fix copy-pasted log message in `SpanContext.__delattr__` ([#&#8203;5455](https://github.com/open-telemetry/opentelemetry-python/pull/5455)) - `opentelemetry-sdk`: reject views with `ExponentialBucketHistogramAggregation` for asynchronous instruments instead of silently producing no data ([#&#8203;5461](https://github.com/open-telemetry/opentelemetry-python/pull/5461)) - `opentelemetry-sdk`: fill every bucket of `SimpleFixedSizeExemplarReservoir` before random sampling ([#&#8203;5462](https://github.com/open-telemetry/opentelemetry-python/pull/5462)) - `opentelemetry-sdk`: Import code_attributes from stable semconv package ([#&#8203;5465](https://github.com/open-telemetry/opentelemetry-python/pull/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` ([#&#8203;5472](https://github.com/open-telemetry/opentelemetry-python/pull/5472)) - `opentelemetry-sdk`: fix misleading instrument name validation error message (name max length is 255, not 63). ([#&#8203;5513](https://github.com/open-telemetry/opentelemetry-python/pull/5513)) - `opentelemetry-configuration`: add missing process executable name to default service name when available in resource attributes ([#&#8203;5534](https://github.com/open-telemetry/opentelemetry-python/pull/5534)) - `opentelemetry-sdk`: fix values for `process.executable.name` and `process.executable.path` to match semantic conventions. ([#&#8203;5535](https://github.com/open-telemetry/opentelemetry-python/pull/5535)) - `opentelemetry-api`: fix `TraceState.update` dropping all entries when adding a new key at the 32-key limit ([#&#8203;5543](https://github.com/open-telemetry/opentelemetry-python/pull/5543)) - `opentelemetry-sdk`: bound `get_aggregated_resources()` wait to the timeout ([#&#8203;5545](https://github.com/open-telemetry/opentelemetry-python/pull/5545)) - `opentelemetry-sdk`: don't read `process.executable.name` resource attribute when building default `service.name` ([#&#8203;5547](https://github.com/open-telemetry/opentelemetry-python/pull/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. ([#&#8203;5556](https://github.com/open-telemetry/opentelemetry-python/pull/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 ([#&#8203;5573](https://github.com/open-telemetry/opentelemetry-python/pull/5573)) - `opentelemetry-sdk`: keep `Resource` hashable and serialisable when an attribute value is `bytes`, instead of raising `TypeError` from every OTLP encoder ([#&#8203;5577](https://github.com/open-telemetry/opentelemetry-python/pull/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 ([#&#8203;5584](https://github.com/open-telemetry/opentelemetry-python/pull/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 ([#&#8203;5594](https://github.com/open-telemetry/opentelemetry-python/pull/5594)) - `opentelemetry-sdk`: retain values from synchronous instruments using last-value aggregation across cumulative collections ([#&#8203;5637](https://github.com/open-telemetry/opentelemetry-python/pull/5637)) - `opentelemetry-api`: Added guard for negative value on max_value_len ([#&#8203;5647](https://github.com/open-telemetry/opentelemetry-python/pull/5647)) - `opentelemetry-sdk`: fix overriding of the service.instance.id which has been populated from the user provided values through the resource detectors ([#&#8203;5660](https://github.com/open-telemetry/opentelemetry-python/pull/5660)) - `opentelemetry-exporter-otlp-proto-grpc`: Fix incorrect default port for OTLP gRPC exporter self-metrics ([#&#8203;5668](https://github.com/open-telemetry/opentelemetry-python/pull/5668)) - `opentelemetry-api`: update W3CBaggagePropagator to properly handle whitespace ([#&#8203;5680](https://github.com/open-telemetry/opentelemetry-python/pull/5680)) ### [`v1.44.0`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1440065b0-2026-07-16) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.43.0...v1.44.0) ##### Added - `opentelemetry-docker-tests`: Refactor Docker tests to properly validate contents of exported telemetry ([#&#8203;5220](https://github.com/open-telemetry/opentelemetry-python/pull/5220)) - `opentelemetry-exporter-otlp-common`: add shared package for common OTLP utilities ([#&#8203;5252](https://github.com/open-telemetry/opentelemetry-python/pull/5252)) - `opentelemetry-sdk`: add `MissingDependencyError` exception for declarative configuration and use it for missing optional dependency errors ([#&#8203;5265](https://github.com/open-telemetry/opentelemetry-python/pull/5265)) - `opentelemetry-sdk`: Add ability to refresh process dependent Resource attributes ([#&#8203;5280](https://github.com/open-telemetry/opentelemetry-python/pull/5280)) - `opentelemetry-sdk`: add `force_flush` method to `LogRecordExporter` ABC ([#&#8203;5294](https://github.com/open-telemetry/opentelemetry-python/pull/5294)) - `opentelemetry-sdk`: Make it possible to limit the size of stored spans in InMemorySpanExporter ([#&#8203;5296](https://github.com/open-telemetry/opentelemetry-python/pull/5296)) - `opentelemetry-sdk`: add log record limits environment variables `OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT` and `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` ([#&#8203;5300](https://github.com/open-telemetry/opentelemetry-python/pull/5300)) - `opentelemetry-sdk`: add support for file exporter with declarative config ([#&#8203;5311](https://github.com/open-telemetry/opentelemetry-python/pull/5311)) - `opentelemetry-sdk`: expose `SynchronousMultiLogRecordProcessor` and `ConcurrentMultiLogRecordProcessor` publicly ([#&#8203;5327](https://github.com/open-telemetry/opentelemetry-python/pull/5327)) - `opentelemetry-sdk`: point the declarative configuration package README at the shared [language support status matrix](https://github.com/open-telemetry/opentelemetry-configuration/blob/main/language-support-status.md#python) in the `opentelemetry-configuration` repo, so Python conformance status lives alongside the other languages instead of being duplicated per language SDK. ([#&#8203;5347](https://github.com/open-telemetry/opentelemetry-python/pull/5347)) - `opentelemetry-sdk`: document that Python-implementation extensions (`OTEL_PYTHON_*` variables) are bypassed when `OTEL_CONFIG_FILE` is set. The env-var initialisation path is skipped entirely in favour of the declarative file; honouring these alongside a config file is tracked as a follow-up. ([#&#8203;5353](https://github.com/open-telemetry/opentelemetry-python/pull/5353)) - `opentelemetry-sdk`: wire id_generator from declarative configuration to TracerProvider ([#&#8203;5363](https://github.com/open-telemetry/opentelemetry-python/pull/5363)) - `opentelemetry-sdk`: Add support for activating instrumentors from a declarative configuration file via the `instrumentation/development.python` section. Instrumentors can declare a `configuration` attribute to have their options validated through the same type-coercion pipeline used for SDK component configuration. ([#&#8203;5372](https://github.com/open-telemetry/opentelemetry-python/pull/5372)) - `opentelemetry-sdk`: add `record_min_max` option to `ExponentialBucketHistogramAggregation`, matching the option already available on `ExplicitBucketHistogramAggregation` and required by the specification ([#&#8203;5377](https://github.com/open-telemetry/opentelemetry-python/pull/5377)) ##### Changed - opentelemetry-sdk: revert BoundedAttributes RLock back to Lock ([#&#8203;5329](https://github.com/open-telemetry/opentelemetry-python/pull/5329)) - docs: update logs example to use `opentelemetry-instrumentation-logging` ([#&#8203;5344](https://github.com/open-telemetry/opentelemetry-python/pull/5344)) - `opentelemetry-sdk`: bump declarative configuration schema to v1.1.0 ([#&#8203;5345](https://github.com/open-telemetry/opentelemetry-python/pull/5345)) - `opentelemetry-configuration`: declarative configuration moves from `opentelemetry.sdk._configuration` into the new public `opentelemetry-configuration` package (`opentelemetry.configuration` namespace), published experimentally. `opentelemetry-sdk[file-configuration]` continues to work as an alias that installs `opentelemetry-configuration` alongside the SDK. ([#&#8203;5356](https://github.com/open-telemetry/opentelemetry-python/pull/5356)) - `opentelemetry-api`: remove env carrier environment snapshot caching, you now have to pass explicitly the mapping where to get the environment variables from as the `EnvironmentGetter.get` first argument. ([#&#8203;5366](https://github.com/open-telemetry/opentelemetry-python/pull/5366)) - `opentelemetry-semantic-conventions`: bump to 1.42.0 ([#&#8203;5410](https://github.com/open-telemetry/opentelemetry-python/pull/5410)) - `opentelemetry-semantic-conventions`: bump to 1.43.0 ([#&#8203;5413](https://github.com/open-telemetry/opentelemetry-python/pull/5413)) ##### Removed - `opentelemetry-api`, `opentelemetry-sdk`: Removed deprecated Events API/SDK. Use `LogRecord` with the `event_name` field set instead. ([#&#8203;5293](https://github.com/open-telemetry/opentelemetry-python/pull/5293)) ##### Fixed - `opentelemetry-sdk`: Optimize `LogRecord` memory in `BatchLogRecordProcessor` by clearing the `Context` object before buffering. This is a potentially breaking change for custom log exporters that access `context` from the exported `ReadableLogRecord`, as the context will now be an empty `Context()` instead of the original. ([#&#8203;4977](https://github.com/open-telemetry/opentelemetry-python/pull/4977)) - `opentelemetry-sdk`: drop non-finite measurements (NaN and Inf) at the instrument level to prevent permanent aggregation poisoning ([#&#8203;5336](https://github.com/open-telemetry/opentelemetry-python/pull/5336)) - `opentelemetry-sdk`: raise `ValueError` when `ExplicitBucketHistogramAggregation` boundaries are not strictly increasing or finite ([#&#8203;5340](https://github.com/open-telemetry/opentelemetry-python/pull/5340)) - `opentelemetry-sdk`: `ProcessResourceDetector` no longer collects or emits `process.command_args` and `process.command_line` by default since the values are not sanitized and may contain sensitive information. Users who depend on these resource attributes must pass `include_command_args=True`. ([#&#8203;5364](https://github.com/open-telemetry/opentelemetry-python/pull/5364)) - `opentelemetry-exporter-otlp-proto-http`: fix the OTLP HTTP metric exporter self-observability metrics over-counting data points when `max_export_batch_size` splits a batch; each split now reports its own data-point count instead of the whole-batch count. ([#&#8203;5370](https://github.com/open-telemetry/opentelemetry-python/pull/5370)) - `opentelemetry-api`: Prevent in-place mutation of `Context` via inherited `dict` methods ([#&#8203;5399](https://github.com/open-telemetry/opentelemetry-python/pull/5399)) ### [`v1.43.0`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1430064b0-2026-06-24) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.1...v1.43.0) ##### Added - `opentelemetry-sdk`: add `add_metric_reader` / `remove_metric_reader` public APIs to register / unregister metric readers at runtime. ([#&#8203;4863](https://github.com/open-telemetry/opentelemetry-python/pull/4863)) - `opentelemetry-exporter-prometheus`: add support for configuring metric scope labels ([#&#8203;5123](https://github.com/open-telemetry/opentelemetry-python/pull/5123)) - `opentelemetry-exporter-otlp-proto-grpc`: Add grpc error details to the log message that's written when the grpc call fails. ([#&#8203;5143](https://github.com/open-telemetry/opentelemetry-python/pull/5143)) - `opentelemetry-exporter-http-transport`: add 'opentelemetry-exporter-http-transport' package for HTTP exporters ([#&#8203;5194](https://github.com/open-telemetry/opentelemetry-python/pull/5194)) - `opentelemetry-sdk`: Add `composite/development` samplers support to declarative file configuration ([#&#8203;5201](https://github.com/open-telemetry/opentelemetry-python/pull/5201)) - `opentelemetry-exporter-otlp-json-file`: Add OTLP JSON File exporter implementation ([#&#8203;5207](https://github.com/open-telemetry/opentelemetry-python/pull/5207)) - `opentelemetry-sdk`: add `_resolve_component` shared utility for declarative config plugin loading, reducing boilerplate in exporter factory functions ([#&#8203;5215](https://github.com/open-telemetry/opentelemetry-python/pull/5215)) - `opentelemetry-sdk`: add pull metric reader support to declarative file configuration, including Prometheus metric reader via the `prometheus_development` config field ([#&#8203;5216](https://github.com/open-telemetry/opentelemetry-python/pull/5216)) - `opentelemetry-proto-json`: update to use opentelemetry-proto v1.10.0 ([#&#8203;5224](https://github.com/open-telemetry/opentelemetry-python/pull/5224)) - `opentelemetry-proto`: bump maximum supported protobuf version to 7.x.x ([#&#8203;5251](https://github.com/open-telemetry/opentelemetry-python/pull/5251)) - `opentelemetry-sdk`: add `ServiceInstanceIdResourceDetector` for populating `service.instance.id` ([#&#8203;5259](https://github.com/open-telemetry/opentelemetry-python/pull/5259)) - `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. ([#&#8203;5269](https://github.com/open-telemetry/opentelemetry-python/pull/5269)) - `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. ([#&#8203;5270](https://github.com/open-telemetry/opentelemetry-python/pull/5270)) - `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. ([#&#8203;5271](https://github.com/open-telemetry/opentelemetry-python/pull/5271)) - `opentelemetry-sdk`: update declarative config to use `ServiceInstanceIdResourceDetector` ([#&#8203;5299](https://github.com/open-telemetry/opentelemetry-python/pull/5299)) - `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. ([#&#8203;5305](https://github.com/open-telemetry/opentelemetry-python/pull/5305)) - `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 ([#&#8203;5315](https://github.com/open-telemetry/opentelemetry-python/pull/5315)) - `opentelemetry-exporter-http-transport`: enable entry-point loading of transport implementations ([#&#8203;5320](https://github.com/open-telemetry/opentelemetry-python/pull/5320)) ##### Changed - `opentelemetry-sdk`: introduce experimental entry points for OpAMP agent integration ([#&#8203;4646](https://github.com/open-telemetry/opentelemetry-python/pull/4646)) - `opentelemetry-api`: conditionally import entrypoints for `opentelemetry_context` only if the `OTEL_PYTHON_CONTEXT` env variable is defined, return `ContextVarsRuntimeContext` otherwise ([#&#8203;5144](https://github.com/open-telemetry/opentelemetry-python/pull/5144)) - `opentelemetry-sdk`: rename "known/unknown" to "built-in/user-defined" terminology in declarative config component loading code ([#&#8203;5214](https://github.com/open-telemetry/opentelemetry-python/pull/5214)) - `opentelemetry-proto`: regenerate protobuf code from opentelemetry-proto v1.10.0 ([#&#8203;5223](https://github.com/open-telemetry/opentelemetry-python/pull/5223)) - `opentelemetry-sdk`: remove unnecessary `copy` in Span creation ([#&#8203;5272](https://github.com/open-telemetry/opentelemetry-python/pull/5272)) - opentelemetry-sdk: remove unnecessary dict in set_attribute method ([#&#8203;5274](https://github.com/open-telemetry/opentelemetry-python/pull/5274)) - `opentelemetry-sdk`: inline the method `_clean_attribute_value` ([#&#8203;5275](https://github.com/open-telemetry/opentelemetry-python/pull/5275)) - Remove typing aliases deprecated in python 3.9 and replace all usages of `typing.Union` and `typing.Optional` with `|`. ([#&#8203;5277](https://github.com/open-telemetry/opentelemetry-python/pull/5277)) - opentelemetry-sdk: remove generator in the accessor for links/events ([#&#8203;5287](https://github.com/open-telemetry/opentelemetry-python/pull/5287)) - opentelemetry-api: remove unnecessary copy in iterator ([#&#8203;5288](https://github.com/open-telemetry/opentelemetry-python/pull/5288)) - `opentelemetry-api`: update `EnvironmentGetter` to ignore non-normalized environment variable names ([#&#8203;5289](https://github.com/open-telemetry/opentelemetry-python/pull/5289)) - opentelemetry-sdk: update iterator for BoundedList ([#&#8203;5297](https://github.com/open-telemetry/opentelemetry-python/pull/5297)) - opentelemetry-sdk: reduce lock contention in attributes ([#&#8203;5298](https://github.com/open-telemetry/opentelemetry-python/pull/5298)) - opentelemetry-sdk: merge doesn't need a copy, dict already does this ([#&#8203;5326](https://github.com/open-telemetry/opentelemetry-python/pull/5326)) - `opentelemetry-api`: normalize empty environment propagation names to `_` in `EnvironmentSetter` and `EnvironmentGetter` ([#&#8203;5328](https://github.com/open-telemetry/opentelemetry-python/pull/5328)) ##### Fixed - Add missing `.rst` files to Sphinx documentation build for SDK logs, propagators, and exporter submodules. ([#&#8203;5017](https://github.com/open-telemetry/opentelemetry-python/pull/5017)) - 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. ([#&#8203;5241](https://github.com/open-telemetry/opentelemetry-python/pull/5241)) - `opentelemetry-api`: fix SelectableGroups deprecation warning ([#&#8203;5250](https://github.com/open-telemetry/opentelemetry-python/pull/5250)) - `opentelemetry-sdk`: make `SynchronousMeasurementConsumer.consume_measurement` lock free to avoid deadlocks ([#&#8203;5321](https://github.com/open-telemetry/opentelemetry-python/pull/5321)) ### [`v1.42.1`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1421063b1-2026-05-21) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.0...v1.42.1) ##### 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. ([#&#8203;5241](https://github.com/open-telemetry/opentelemetry-python/pull/5241)) ### [`v1.42.0`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1420063b0-2026-05-19) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.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`. ([#&#8203;4854](https://github.com/open-telemetry/opentelemetry-python/pull/4854)) - logs: add exception support to Logger emit and LogRecord attributes ([#&#8203;4908](https://github.com/open-telemetry/opentelemetry-python/pull/4908)) - `opentelemetry-exporter-otlp-proto-grpc`: make retryable gRPC error codes configurable for gRPC exporters ([#&#8203;4917](https://github.com/open-telemetry/opentelemetry-python/pull/4917)) - `opentelemetry-sdk`: Add `create_logger_provider`/`configure_logger_provider` to declarative file configuration, enabling LoggerProvider instantiation from config files without reading env vars ([#&#8203;4990](https://github.com/open-telemetry/opentelemetry-python/pull/4990)) - `opentelemetry-exporter-otlp-json-common`: add 'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters ([#&#8203;4996](https://github.com/open-telemetry/opentelemetry-python/pull/4996)) - `opentelemetry-sdk`: Add `service` resource detector support to declarative file configuration via `detection_development.detectors[].service` ([#&#8203;5003](https://github.com/open-telemetry/opentelemetry-python/pull/5003)) - `opentelemetry-docker-tests`: add docker-tests coverage of `opentelemetry-exporter-otlp-proto-grpc` and `opentelemetry-exporter-otlp-proto-http` metrics export ([#&#8203;5030](https://github.com/open-telemetry/opentelemetry-python/pull/5030)) - Add `registry` keyword argument to `PrometheusMetricReader` to allow passing a custom Prometheus registry ([#&#8203;5055](https://github.com/open-telemetry/opentelemetry-python/pull/5055)) - Add WeaverLiveCheck test util ([#&#8203;5088](https://github.com/open-telemetry/opentelemetry-python/pull/5088)) - `opentelemetry-sdk`: add `load_entry_point` shared utility to declarative file configuration for loading plugins via entry points; refactor propagator loading to use it ([#&#8203;5093](https://github.com/open-telemetry/opentelemetry-python/pull/5093)) - `opentelemetry-sdk`: add sampler plugin loading to declarative file configuration via the `opentelemetry_sampler` entry point group, matching the spec's PluginComponentProvider mechanism ([#&#8203;5095](https://github.com/open-telemetry/opentelemetry-python/pull/5095)) - `opentelemetry-sdk`: add propagator plugin loading to declarative file configuration via the `opentelemetry_propagator` entry point group, matching the spec's PluginComponentProvider mechanism ([#&#8203;5098](https://github.com/open-telemetry/opentelemetry-python/pull/5098)) - `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 ([#&#8203;5128](https://github.com/open-telemetry/opentelemetry-python/pull/5128)) - `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 ([#&#8203;5129](https://github.com/open-telemetry/opentelemetry-python/pull/5129)) - `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 ([#&#8203;5131](https://github.com/open-telemetry/opentelemetry-python/pull/5131)) - Add ability to selectively enable exporting of SDK internal metrics with the `OTEL_PYTHON_SDK_INTERNAL_METRICS_ENABLED` environment variable. ([#&#8203;5151](https://github.com/open-telemetry/opentelemetry-python/pull/5151)) ##### Changed - `opentelemetry-semantic-conventions`: use `X | Y` union annotation ([#&#8203;5096](https://github.com/open-telemetry/opentelemetry-python/pull/5096)) - `opentelemetry-api`: update `EnvironmentGetter` and `EnvironmentSetter` to use normalized environment variable names ([#&#8203;5119](https://github.com/open-telemetry/opentelemetry-python/pull/5119)) - Apply fixes for `UP` ruff rule ([#&#8203;5133](https://github.com/open-telemetry/opentelemetry-python/pull/5133)) - `opentelemetry-sdk`: only load entrypoints for resource detectors if they are configured via `OTEL_EXPERIMENTAL_RESOURCE_DETECTORS` ([#&#8203;5145](https://github.com/open-telemetry/opentelemetry-python/pull/5145)) - ci: wait for tracecontext server readiness instead of a fixed sleep in `scripts/tracecontext-integration-test.sh` ([#&#8203;5149](https://github.com/open-telemetry/opentelemetry-python/pull/5149)) - Switch to SPDX license headers and add CI enforcement ([#&#8203;5177](https://github.com/open-telemetry/opentelemetry-python/pull/5177)) - `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`. ([#&#8203;5200](https://github.com/open-telemetry/opentelemetry-python/pull/5200)) ##### Removed - `opentelemetry-api`: remove third-party importlib-metadata in favor of standard library since Python >= 3.10 is now required ([#&#8203;3234](https://github.com/open-telemetry/opentelemetry-python/pull/3234)) - Drop Python 3.9 support ([#&#8203;5076](https://github.com/open-telemetry/opentelemetry-python/pull/5076)) ##### Fixed - `opentelemetry-sdk`: Allow declarative OTLP HTTP exporters to map `compression: deflate` instead of rejecting it as unsupported. ([#&#8203;5075](https://github.com/open-telemetry/opentelemetry-python/pull/5075)) - Fix incorrect code example in `create_tracer()` docstring ([#&#8203;5077](https://github.com/open-telemetry/opentelemetry-python/pull/5077)) - `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 <module>` runs (where `sys.argv[0]` is rewritten to the module path) ([#&#8203;5083](https://github.com/open-telemetry/opentelemetry-python/pull/5083)) - `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 ([#&#8203;5091](https://github.com/open-telemetry/opentelemetry-python/pull/5091)) - `opentelemetry-sdk`: Fix mutable attributes reference in metrics, attributes passed to instrument `add`/`record` are now copied so that subsequent mutations do not affect recorded data points ([#&#8203;5106](https://github.com/open-telemetry/opentelemetry-python/pull/5106)) - `opentelemetry-sdk`: make resource detector ordering deterministic ([#&#8203;5120](https://github.com/open-telemetry/opentelemetry-python/pull/5120)) - Fix incorrect type annotation on `detectors` parameter of `get_aggregated_resources` ([#&#8203;5135](https://github.com/open-telemetry/opentelemetry-python/pull/5135)) - `opentelemetry-api`: Enforce W3C Baggage size limits on outbound propagation in `W3CBaggagePropagator.inject()`. Previously only inbound extraction enforced limits; now inject also caps entries at 180, individual pairs at 4096 bytes, and total header at 8192 bytes per the W3C Baggage spec. The extract path max_pairs limit now counts all size-valid entries rather than only successfully parsed ones. ([#&#8203;5163](https://github.com/open-telemetry/opentelemetry-python/pull/5163)) - `opentelemetry-sdk`: fix multi-processor `force_flush` skipping remaining processors when one returns `None` ([#&#8203;5179](https://github.com/open-telemetry/opentelemetry-python/pull/5179)) - `opentelemetry-test-utils`: fix weaver live check hanging when weaver log output fills the pipe buffer ([#&#8203;5208](https://github.com/open-telemetry/opentelemetry-python/pull/5208)) ### [`v1.41.1`](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.41.1): Version 1.41.1/0.62b1 [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.0...v1.41.1) This is a patch release on the previous 1.41.0/0.62b0 release, fixing the issue(s) below. ### [`v1.41.0`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1410062b0-2026-04-09) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.41.0) - `opentelemetry-sdk`: Add `host` resource detector support to declarative file configuration via `detection_development.detectors[].host` ([#&#8203;5002](https://github.com/open-telemetry/opentelemetry-python/pull/5002)) - `opentelemetry-sdk`: Add `container` resource detector support to declarative file configuration via `detection_development.detectors[].container`, using entry point loading of the `opentelemetry-resource-detector-containerid` contrib package ([#&#8203;5004](https://github.com/open-telemetry/opentelemetry-python/pull/5004)) - `opentelemetry-sdk`: Add `create_tracer_provider`/`configure_tracer_provider` to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars ([#&#8203;4985](https://github.com/open-telemetry/opentelemetry-python/pull/4985)) - Enabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules. ([#&#8203;5019](https://github.com/open-telemetry/opentelemetry-python/pull/5019)) - `opentelemetry-sdk`: Fix `AttributeError` in `ExplicitBucketHistogramAggregation` when applied to non-Histogram instruments without explicit boundaries ([#&#8203;5034](https://github.com/open-telemetry/opentelemetry-python/pull/5034)) - Fix `BatchLogRecordProcessor` default `schedule_delay_millis` from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the `OTEL_BLRP_SCHEDULE_DELAY` env var). ([#&#8203;4998](https://github.com/open-telemetry/opentelemetry-python/pull/4998)) - `opentelemetry-sdk`: Add `process` resource detector support to declarative file configuration via `detection_development.detectors[].process` ([#&#8203;5001](https://github.com/open-telemetry/opentelemetry-python/pull/5001)) - `opentelemetry-sdk`: Add shared `_parse_headers` helper for declarative config OTLP exporters ([#&#8203;5021](https://github.com/open-telemetry/opentelemetry-python/pull/5021)) - `opentelemetry-api`: Replace a broad exception in attribute cleaning tests to satisfy pylint in the `lint-opentelemetry-api` CI job - `opentelemetry-sdk`: Add `create_meter_provider`/`configure_meter_provider` to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars ([#&#8203;4987](https://github.com/open-telemetry/opentelemetry-python/pull/4987)) - `opentelemetry-sdk`: Add `create_resource` and `create_propagator`/`configure_propagator` to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars ([#&#8203;4979](https://github.com/open-telemetry/opentelemetry-python/pull/4979)) - `opentelemetry-sdk`: Map Python `CRITICAL` log level to OTel `FATAL` severity text per the specification ([#&#8203;4984](https://github.com/open-telemetry/opentelemetry-python/issues/4984)) - `opentelemetry-sdk`: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema ([#&#8203;4898](https://github.com/open-telemetry/opentelemetry-python/pull/4898)) - Fix intermittent CI failures in `getting-started` and `tracecontext` jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone ([#&#8203;4958](https://github.com/open-telemetry/opentelemetry-python/pull/4958)) - `opentelemetry-sdk`: fix type annotations on `MetricReader` and related types ([#&#8203;4938](https://github.com/open-telemetry/opentelemetry-python/pull/4938/)) - `opentelemetry-sdk`: implement log creation metric ([#&#8203;4935](https://github.com/open-telemetry/opentelemetry-python/pull/4935)) - `opentelemetry-sdk`: implement metric reader metrics ([#&#8203;4970](https://github.com/open-telemetry/opentelemetry-python/pull/4970)) - `opentelemetry-sdk`: implement processor metrics ([#&#8203;5012](https://github.com/open-telemetry/opentelemetry-python/pull/5012)) - `opentelemetry-sdk`: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0 ([#&#8203;4965](https://github.com/open-telemetry/opentelemetry-python/pull/4965)) - `opentelemetry-sdk`: implement exporter metrics ([#&#8203;4976](https://github.com/open-telemetry/opentelemetry-python/pull/4976)) - improve check-links ci job ([#&#8203;4978](https://github.com/open-telemetry/opentelemetry-python/pull/4978)) - Resolve some Pyright type errors in Span/ReadableSpan and utility stubs ([#&#8203;4973](https://github.com/open-telemetry/opentelemetry-python/pull/4973)) - `opentelemetry-exporter-prometheus`: Fix metric name prefix ([#&#8203;4895](https://github.com/open-telemetry/opentelemetry-python/pull/4895)) - `opentelemetry-api`, `opentelemetry-sdk`: Add deepcopy support for `BoundedAttributes` and `BoundedList` ([#&#8203;4934](https://github.com/open-telemetry/opentelemetry-python/pull/4934)) - `opentelemetry-proto-json`, `opentelemetry-codegen-json`: Implement custom protoc plugin to generate OTLP JSON class definitions ([#&#8203;4910](https://github.com/open-telemetry/opentelemetry-python/pull/4910)) - Add configurable `max_export_batch_size` to OTLP HTTP metrics exporter ([#&#8203;4576](https://github.com/open-telemetry/opentelemetry-python/pull/4576)) - `opentelemetry-sdk`: Implement experimental Meter configurator ([#&#8203;4966](https://github.com/open-telemetry/opentelemetry-python/pull/4966)) - `opentelemetry-exporter-otlp-proto-http`: use consistent protobuf for export request ([#&#8203;5015](https://github.com/open-telemetry/opentelemetry-python/pull/5015)) - `opentelemetry-sdk`: cache TracerConfig into the tracer, this changes an internal interface. Only one Tracer with the same instrumentation scope will be created ([#&#8203;5007](https://github.com/open-telemetry/opentelemetry-python/pull/5007)) - Redo OTLPMetricExporter unit tests of `max_export_batch_size` to use real `export` ([#&#8203;5036](https://github.com/open-telemetry/opentelemetry-python/pull/5036)) - `opentelemetry-sdk`: Implement experimental Logger configurator ([#&#8203;4980](https://github.com/open-telemetry/opentelemetry-python/pull/4980)) ### [`v1.40.0`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1400061b0-2026-03-04) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.40.0) - `opentelemetry-sdk`: deprecate `LoggingHandler` in favor of `opentelemetry-instrumentation-logging`, see `opentelemetry-instrumentation-logging` documentation ([#&#8203;4919](https://github.com/open-telemetry/opentelemetry-python/pull/4919)) - `opentelemetry-sdk`: Clarify log processor error handling expectations in documentation ([#&#8203;4915](https://github.com/open-telemetry/opentelemetry-python/pull/4915)) - bump semantic-conventions to v1.40.0 ([#&#8203;4941](https://github.com/open-telemetry/opentelemetry-python/pull/4941)) - Add stale PR GitHub Action ([#&#8203;4926](https://github.com/open-telemetry/opentelemetry-python/pull/4926)) - `opentelemetry-sdk`: Drop unused Jaeger exporter environment variables (exporter removed in 1.22.0) ([#&#8203;4918](https://github.com/open-telemetry/opentelemetry-python/issues/4918)) - `opentelemetry-sdk`: Clarify timeout units in environment variable documentation ([#&#8203;4906](https://github.com/open-telemetry/opentelemetry-python/pull/4906)) - `opentelemetry-exporter-otlp-proto-grpc`: Fix re-initialization of gRPC channel on UNAVAILABLE error ([#&#8203;4825](https://github.com/open-telemetry/opentelemetry-python/pull/4825)) - `opentelemetry-exporter-prometheus`: Fix duplicate HELP/TYPE declarations for metrics with different label sets ([#&#8203;4868](https://github.com/open-telemetry/opentelemetry-python/issues/4868)) - Allow loading all resource detectors by setting `OTEL_EXPERIMENTAL_RESOURCE_DETECTORS` to `*` ([#&#8203;4819](https://github.com/open-telemetry/opentelemetry-python/pull/4819)) - `opentelemetry-sdk`: Fix the type hint of the `_metrics_data` property to allow `None` ([#&#8203;4837](https://github.com/open-telemetry/opentelemetry-python/pull/4837)). - Regenerate opentelemetry-proto code with v1.9.0 release ([#&#8203;4840](https://github.com/open-telemetry/opentelemetry-python/pull/4840)) - Add python 3.14 support ([#&#8203;4798](https://github.com/open-telemetry/opentelemetry-python/pull/4798)) - Silence events API warnings for internal users ([#&#8203;4847](https://github.com/open-telemetry/opentelemetry-python/pull/4847)) - opentelemetry-sdk: make it possible to override the default processors in the SDK configurator ([#&#8203;4806](https://github.com/open-telemetry/opentelemetry-python/pull/4806)) - Prevent possible endless recursion from happening in `SimpleLogRecordProcessor.on_emit`, ([#&#8203;4799](https://github.com/open-telemetry/opentelemetry-python/pull/4799)) and ([#&#8203;4867](https://github.com/open-telemetry/opentelemetry-python/pull/4867)). - Implement span start/end metrics ([#&#8203;4880](https://github.com/open-telemetry/opentelemetry-python/pull/4880)) - Add environment variable carriers to API ([#&#8203;4609](https://github.com/open-telemetry/opentelemetry-python/pull/4609)) - Add experimental composable rule based sampler ([#&#8203;4882](https://github.com/open-telemetry/opentelemetry-python/pull/4882)) - Make ConcurrentMultiSpanProcessor fork safe ([#&#8203;4862](https://github.com/open-telemetry/opentelemetry-python/pull/4862)) - `opentelemetry-exporter-otlp-proto-http`: fix retry logic and error handling for connection failures in trace, metric, and log exporters ([#&#8203;4709](https://github.com/open-telemetry/opentelemetry-python/pull/4709)) - `opentelemetry-sdk`: avoid RuntimeError during iteration of view instrument match dictionary in MetricReaderStorage.collect() ([#&#8203;4891](https://github.com/open-telemetry/opentelemetry-python/pull/4891)) - Implement experimental TracerConfigurator ([#&#8203;4861](https://github.com/open-telemetry/opentelemetry-python/pull/4861)) - `opentelemetry-sdk`: Fix instrument creation race condition ([#&#8203;4913](https://github.com/open-telemetry/opentelemetry-python/pull/4913)) - bump semantic-conventions to v1.39.0 ([#&#8203;4914](https://github.com/open-telemetry/opentelemetry-python/pull/4914)) - `opentelemetry-sdk`: automatically generate configuration models using OTel config JSON schema ([#&#8203;4879](https://github.com/open-telemetry/opentelemetry-python/pull/4879)) ### [`v1.39.1`](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.39.1): Version 1.39.1/0.60b1 [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.0...v1.39.1) This is a patch release on the previous 1.39.0/0.60b0 release, fixing the issue(s) below. - Silence events API warnings for internal users ([#&#8203;4847](https://github.com/open-telemetry/opentelemetry-python/pull/4847)) ### [`v1.39.0`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1390060b0-2025-12-03) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.38.0...v1.39.0) - `opentelemetry-api`: Convert objects of any type other than AnyValue in attributes to string to be exportable ([#&#8203;4808](https://github.com/open-telemetry/opentelemetry-python/pull/4808)) - docs: Added sqlcommenter example ([#&#8203;4734](https://github.com/open-telemetry/opentelemetry-python/pull/4734)) - build: bump ruff to 0.14.1 ([#&#8203;4782](https://github.com/open-telemetry/opentelemetry-python/pull/4782)) - Add `opentelemetry-exporter-credential-provider-gcp` as an optional dependency to `opentelemetry-exporter-otlp-proto-grpc` and `opentelemetry-exporter-otlp-proto-http` ([#&#8203;4760](https://github.com/open-telemetry/opentelemetry-python/pull/4760)) - feat: implement on ending in span processor ([#&#8203;4775](https://github.com/open-telemetry/opentelemetry-python/pull/4775)) - semantic-conventions: Bump to 1.38.0 ([#&#8203;4791](https://github.com/open-telemetry/opentelemetry-python/pull/4791)) - \[BREAKING] Remove LogData and extend SDK LogRecord to have instrumentation scope ([#&#8203;4676](https://github.com/open-telemetry/opentelemetry-python/pull/4676)) - \[BREAKING] Rename several classes from Log to LogRecord ([#&#8203;4647](https://github.com/open-telemetry/opentelemetry-python/pull/4647)) **Migration Guide:** `LogData` has been removed. Users should update their code as follows: - **For Log Exporters:** Change from `Sequence[LogData]` to `Sequence[ReadableLogRecord]` ```python # Before from opentelemetry.sdk._logs import LogData def export(self, batch: Sequence[LogData]) -> LogRecordExportResult: ... # After from opentelemetry.sdk._logs import ReadableLogRecord def export(self, batch: Sequence[ReadableLogRecord]) -> LogRecordExportResult: ... ``` - **For Log Processors:** Use `ReadWriteLogRecord` for processing, `ReadableLogRecord` for exporting ```python # Before from opentelemetry.sdk._logs import LogData def on_emit(self, log_data: LogData): ... # After from opentelemetry.sdk._logs import ReadWriteLogRecord, ReadableLogRecord def on_emit(self, log_record: ReadWriteLogRecord): # Convert to ReadableLogRecord before exporting readable = ReadableLogRecord( log_record=log_record.log_record, resource=log_record.resource or Resource.create({}), instrumentation_scope=log_record.instrumentation_scope, limits=log_record.limits, ) ... ``` - **Accessing log data:** Use the same attributes on `ReadableLogRecord`/`ReadWriteLogRecord` - `log_record.log_record` - The API LogRecord (contains body, severity, attributes, etc.) - `log_record.resource` - The Resource - `log_record.instrumentation_scope` - The InstrumentationScope (now included, was in LogData before) - `log_record.limits` - The LogRecordLimits - Mark the Events API/SDK as deprecated. The Logs API/SDK should be used instead, an event is now a `LogRecord` with the `event_name` field set ([#&#8203;4654](https://github.com/open-telemetry/opentelemetry-python/pull/4654)). - Fix type checking for built-in metric exporters ([#&#8203;4820](https://github.com/open-telemetry/opentelemetry-python/pull/4820)) ### [`v1.38.0`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1380059b0-2025-10-16) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.37.0...v1.38.0) - Add `rstcheck` to pre-commit to stop introducing invalid RST ([#&#8203;4755](https://github.com/open-telemetry/opentelemetry-python/pull/4755)) - logs: extend Logger.emit to accept separated keyword arguments ([#&#8203;4737](https://github.com/open-telemetry/opentelemetry-python/pull/4737)) - logs: add warnings for classes that would be deprecated and renamed in 1.39.0 ([#&#8203;4771](https://github.com/open-telemetry/opentelemetry-python/pull/4771)) ### [`v1.37.0`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1370058b0-2025-09-11) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.36.0...v1.37.0) - Add experimental composite samplers ([#&#8203;4714](https://github.com/open-telemetry/opentelemetry-python/pull/4714)) - Add new environment variables to the SDK `OTEL_PYTHON_EXPORTER_OTLP_{HTTP/GRPC}_{METRICS/TRACES/LOGS}_CREDENTIAL_PROVIDER` that can be used to inject a `requests.Session` or `grpc.ChannelCredentials` object into OTLP exporters created during auto instrumentation [#&#8203;4689](https://github.com/open-telemetry/opentelemetry-python/pull/4689). - Filter duplicate logs out of some internal `logger`'s logs on the export logs path that might otherwise endlessly log or cause a recursion depth exceeded issue in cases where logging itself results in an exception. ([#&#8203;4695](https://github.com/open-telemetry/opentelemetry-python/pull/4695)). - docs: linked the examples with their github source code location and added Prometheus example ([#&#8203;4728](https://github.com/open-telemetry/opentelemetry-python/pull/4728)) - Permit to override default HTTP OTLP exporters headers ([#&#8203;4634](https://github.com/open-telemetry/opentelemetry-python/pull/4634)) - semantic-conventions: Bump to 1.37.0 ([#&#8203;4731](https://github.com/open-telemetry/opentelemetry-python/pull/4731)) - opentelemetry-sdk: fix handling of OTEL_ATTRIBUTE_COUNT_LIMIT in logs ([#&#8203;4677](https://github.com/open-telemetry/opentelemetry-python/pull/4677)) - Performance: Cache `importlib_metadata.entry_points` ([#&#8203;4735](https://github.com/open-telemetry/opentelemetry-python/pull/4735)) - opentelemetry-sdk: fix calling Logger.emit with an API LogRecord instance ([#&#8203;4741](https://github.com/open-telemetry/opentelemetry-python/pull/4741)) ### [`v1.36.0`](https://github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1360057b0-2025-07-29) [Compare Source](https://github.com/open-telemetry/opentelemetry-python/compare/v1.35.0...v1.36.0) - Add missing Prometheus exporter documentation ([#&#8203;4485](https://github.com/open-telemetry/opentelemetry-python/pull/4485)) - Overwrite logging.config.fileConfig and logging.config.dictConfig to ensure the OTLP `LogHandler` remains attached to the root logger. Fix a bug that can cause a deadlock to occur over `logging._lock` in some cases ([#&#8203;4636](https://github.com/open-telemetry/opentelemetry-python/pull/4636)). - otlp-http-exporter: set default value for param `timeout_sec` in `_export` method ([#&#8203;4691](https://github.com/open-telemetry/opentelemetry-python/pull/4691)) - Update OTLP gRPC/HTTP exporters: calling shutdown will now interrupt exporters that are sleeping before a retry attempt, and cause them to return failure immediately. Update BatchSpan/LogRecordProcessors: shutdown will now complete after 30 seconds of trying to finish exporting any buffered telemetry, instead of continuing to export until all telemetry was exported. ([#&#8203;4638](https://github.com/open-telemetry/opentelemetry-python/pull/4638)). </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNC4xIiwidXBkYXRlZEluVmVyIjoiNDQuMjE4LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->
renovate-bot force-pushed renovate/opentelemetry-python-monorepo from f6bee498f1
Some checks failed
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
trunk / Run tests (push) Failing after 4s
to 4939569228
Some checks failed
trunk / Run tests (push) Failing after 6s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
2026-03-05 12:01:13 +00:00
Compare
renovate-bot changed title from Update opentelemetry-python monorepo to v1.39.1 to Update opentelemetry-python monorepo to v1.40.0 2026-03-05 12:01:15 +00:00
renovate-bot force-pushed renovate/opentelemetry-python-monorepo from 4939569228
Some checks failed
trunk / Run tests (push) Failing after 6s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
to e7398f5e93
Some checks failed
trunk / Run tests (push) Failing after 4s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
2026-04-10 12:01:24 +00:00
Compare
renovate-bot changed title from Update opentelemetry-python monorepo to v1.40.0 to Update opentelemetry-python monorepo to v1.41.0 2026-04-10 12:01:27 +00:00
renovate-bot force-pushed renovate/opentelemetry-python-monorepo from e7398f5e93
Some checks failed
trunk / Run tests (push) Failing after 4s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
to b463f0b580
Some checks failed
trunk / Run tests (push) Failing after 5s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
2026-04-25 12:01:24 +00:00
Compare
renovate-bot changed title from Update opentelemetry-python monorepo to v1.41.0 to Update opentelemetry-python monorepo to v1.41.1 2026-04-25 12:01:26 +00:00
renovate-bot force-pushed renovate/opentelemetry-python-monorepo from b463f0b580
Some checks failed
trunk / Run tests (push) Failing after 5s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
to ec820f7dbc
Some checks failed
trunk / Run tests (push) Failing after 3s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
2026-05-19 12:01:54 +00:00
Compare
renovate-bot changed title from Update opentelemetry-python monorepo to v1.41.1 to Update opentelemetry-python monorepo to v1.42.0 2026-05-19 12:01:57 +00:00
renovate-bot force-pushed renovate/opentelemetry-python-monorepo from ec820f7dbc
Some checks failed
trunk / Run tests (push) Failing after 3s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
to cb667f920e
Some checks failed
trunk / Run tests (push) Failing after 3s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
2026-05-22 12:01:15 +00:00
Compare
renovate-bot changed title from Update opentelemetry-python monorepo to v1.42.0 to Update opentelemetry-python monorepo to v1.42.1 2026-05-22 12:01:19 +00:00
renovate-bot force-pushed renovate/opentelemetry-python-monorepo from cb667f920e
Some checks failed
trunk / Run tests (push) Failing after 3s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
to ad0bc347b9
Some checks failed
trunk / Run tests (push) Failing after 4s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
2026-06-25 12:01:43 +00:00
Compare
renovate-bot changed title from Update opentelemetry-python monorepo to v1.42.1 to Update opentelemetry-python monorepo to v1.43.0 2026-06-25 12:01:46 +00:00
renovate-bot force-pushed renovate/opentelemetry-python-monorepo from ad0bc347b9
Some checks failed
trunk / Run tests (push) Failing after 4s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
to 9baaa8c81c
Some checks failed
trunk / Run tests (push) Failing after 4s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
2026-07-17 12:01:46 +00:00
Compare
renovate-bot changed title from Update opentelemetry-python monorepo to v1.43.0 to Update opentelemetry-python monorepo to v1.44.0 2026-07-17 12:01:50 +00:00
renovate-bot force-pushed renovate/opentelemetry-python-monorepo from 9baaa8c81c
Some checks failed
trunk / Run tests (push) Failing after 4s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
to 67cf69749c
Some checks failed
trunk / Run tests (push) Failing after 3s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
2026-09-26 12:01:45 +00:00
Compare
renovate-bot changed title from Update opentelemetry-python monorepo to v1.44.0 to Update opentelemetry-python monorepo to v1.45.0 2026-09-26 12:01:48 +00:00
renovate-bot force-pushed renovate/opentelemetry-python-monorepo from 67cf69749c
Some checks failed
trunk / Run tests (push) Failing after 3s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
to a65c24b5d0
Some checks failed
trunk / Run tests (push) Failing after 4s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
2026-10-07 12:02:10 +00:00
Compare
renovate-bot changed title from Update opentelemetry-python monorepo to v1.45.0 to Update opentelemetry-python monorepo to v1.45.1 2026-10-07 12:02:16 +00:00
renovate-bot force-pushed renovate/opentelemetry-python-monorepo from a65c24b5d0
Some checks failed
trunk / Run tests (push) Failing after 4s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
to a4c258399d
Some checks failed
trunk / Run tests (push) Failing after 0s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
2026-11-06 12:05:52 +00:00
Compare
renovate-bot changed title from Update opentelemetry-python monorepo to v1.45.1 to Update opentelemetry-python monorepo to v1.45.2 2026-11-06 12:05:58 +00:00
Some checks failed
trunk / Run tests (push) Failing after 0s
trunk / Build Python Wheel 📦 (push) Has been skipped
trunk / Build and push container image to GHCR (push) Has been skipped
trunk / Publish 📦 to PyPI (push) Has been skipped
trunk / Create GitHub Release (push) Has been skipped
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/opentelemetry-python-monorepo:renovate/opentelemetry-python-monorepo
git switch renovate/opentelemetry-python-monorepo

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff renovate/opentelemetry-python-monorepo
git switch renovate/opentelemetry-python-monorepo
git rebase main
git switch main
git merge --ff-only renovate/opentelemetry-python-monorepo
git switch renovate/opentelemetry-python-monorepo
git rebase main
git switch main
git merge --no-ff renovate/opentelemetry-python-monorepo
git switch main
git merge --squash renovate/opentelemetry-python-monorepo
git switch main
git merge --ff-only renovate/opentelemetry-python-monorepo
git switch main
git merge renovate/opentelemetry-python-monorepo
git push origin main
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
StarkZarn/meshtastic-prometheus-exporter!11
No description provided.