pypi opentelemetry-distro 0.63b0
Version 1.42.0/0.63b0

6 hours ago

Added

  • opentelemetry-exporter-richconsole: Add support for suppressing resource information (#3898)
  • opentelemetry-instrumentation: Add experimental metrics attributes Labeler utility (#4288)
  • opentelemetry-instrumentation-logging: Add OTEL_PYTHON_LOG_HANDLER_LEVEL and OTEL_PYTHON_LOG_FORMAT environment variables to configure the log level and formatter of the auto-instrumented LoggingHandler. (#4298)
  • opentelemetry-instrumentation-sqlite3: Add uninstrument, error status, suppress, and no-op tests (#4335)
  • Add BaggageLogProcessor to opentelemetry-processor-baggage (#4371)
  • opentelemetry-instrumentation-system-metrics: Add support for process.disk.io metric in system-metrics instrumentation (#4397)
  • opentelemetry-instrumentation: Register OTEL_SEMCONV_STABILITY_OPT_IN in environment_variables.py so opentelemetry-instrument exposes a --semconv_stability_opt_in CLI argument (#4438)
  • Expand AGENTS.md with instrumentation/GenAI guidance and add PR review instructions. (#4457)
  • opentelemetry-instrumentation: update auto-instrumentation to re-inject instrumentation path after init (#4469)
  • opentelemetry-instrumentation-dbapi: Add Database client operation duration and returned rows metrics (#4481)

Changed

  • Remove redundant pylint: disable=attribute-defined-outside-init comments and add rule to global .pylintrc disable list (#3839)
  • Bump pylint to 4.0.5 (#4244)
  • opentelemetry-instrumentation-logging: Use LogRecord.getMessage() to format and extract each log record's body text to more closely match the expected usage of the logging system. As a result, all OTel log record bodies are now always strings. Previously, if LogRecord.msg (which contains the format string) was set to a non-string object (e.g. logger.warning(some_dict)), the object was exported as-is to the OTLP body field. Now, LogRecord.getMessage() will convert it to to a string. If you are passing in non-strings as the format string argument and your backend is expecting them as-is, you will need to update accordingly. (#4372)
  • Switch to SPDX license headers and add CI enforcement (#4533)
  • opentelemetry-instrumentation-{urllib,urllib3,requests}: switch http mock library from abandoned httpretty to mocket (#4583)

Removed

  • Drop Python 3.9 support (#4412)

Fixed

  • opentelemetry-instrumentation-aiohttp-server: Use canonical attribute of the Resource as a span name (#3896)
  • Refactor unit tests to allow for population of the random trace id flag in the traceparent header (#4030)
  • opentelemetry-instrumentation-aws-lambda: fix improper handling of header casing (#4216)
  • opentelemetry-instrumentation-flask: Clean up environ keys in _teardown_request to prevent duplicate execution (#4341)
  • opentelemetry-instrumentation-celery: Coerce non-string values to strings in CeleryGetter.get() to prevent TypeError in TraceState.from_header() when Celery request attributes contain ints (#4360)
  • opentelemetry-instrumentation-celery: Coerce timelimit values to strings in set_attributes_from_context() to prevent mixed-type span attribute warning (#4361)
  • opentelemetry-instrumentation-fastapi: Fix FastAPI instrumentation to correctly trace BackgroundTasks by wrapping their execution in a dedicated span, ensuring proper parent-child relationships and accurate trace timing (#4368)
  • opentelemetry-instrumentation-flask: Stop reading the deprecated (from 3.1) flask.__version__ attribute; resolve the Flask version via importlib.metadata (#4422)
  • opentelemetry-instrumentation-confluent-kafka: Populate server.address and server.port span attributes from the producer/consumer bootstrap.servers config; previously KafkaPropertiesExtractor.extract_bootstrap_servers was defined but never called (#4423)
  • opentelemetry-instrumentation-dbapi Use ObjectProxy instead of BaseObjectProxy for TracedCursorProxy to restore iterability with wrapt 2.x (#4427)
  • opentelemetry-instrumentation-pyramid: add missing http.response.status_code in duration metrics for stable http semantic conventions (#4448)
  • opentelemetry-instrumentation-pika Use ObjectProxy instead of BaseObjectProxy for ReadyMessagesDequeProxy to restore iterability with wrapt 2.x (#4461)
  • docker-tests: Don't require sudo, debian based distro and MS SQL ODBC driver to run locally. Instead require docker and unixodbc (#4478)
  • opentelemetry-instrumentation-celery: clear completed task ids from task_id_to_start_time (#4504)
  • opentelemetry-instrumentation-celery: add null guards and type-safe helper handling around Celery context propagation internals (#4505)
  • opentelemetry-instrumentation-wsgi: use PATH_INFO and QUERY_STRING for URL attributes instead of parsing RAW_URI or REQUEST_URI (#4551)
  • opentelemetry-instrumentation-mysqlclient: Update unit tests to properly validate trace context trace flag values. (#4560)
  • opentelemetry-instrumentation-pika: pass destination to _enrich_span instead of task_name (#4563)
  • opentelemetry-instrumentation-tornado: reduce cardinality of span names and metrics attributes. This introduces a breaking change in the metrics attributes for the stable semantic convention by dropping the out of spec url.query and url.path attributes in favor of in-spec http.route. (#4577)
  • opentelemetry-instrumentation-confluent-kafka: Declare opentelemetry-semantic-conventions as a direct dependency (#4590)
  • opentelemetry-instrumentation-pymssql: Fix semconv stability migration for connection attributes (host, port, user) set in wrapped_connection() to respect OTEL_SEMCONV_STABILITY_OPT_IN. Note: net.peer.port is now emitted as int instead of string in default mode, aligning with other DB instrumentations. (#4592)
  • Declare opentelemetry-semantic-conventions as a direct dependency for the aio-pika, logging, pika and system-metrics instrumentations, since each imports opentelemetry.semconv directly. (#4594)

Don't miss a new opentelemetry-distro release

NewReleases is sending notifications on new releases.