NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #60 most downloaded on PyPI
OpenTelemetry Python API
Last release 9 days ago
25 Sep 2026
Ships fairly regularly
a new release about every 5 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
85 releases · first in 2019
Nothing published for this version
…object before buffering. This is a potentially breaking change for custom log exporters that access context from the exported ReadableLogRecord, as th…
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)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)opentelemetry-api, opentelemetry-sdk: Removed deprecated Events API/SDK. Use LogRecord with the event_name field set instead. (#5293)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)One column per quarter.
Remove typing aliases deprecated in python 3.9 and replace all usages of typing.Union and typing.Optional with |.
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)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: inline the method _clean_attribute_value (#5275)typing.Union and typing.Optional with |. (#5277)opentelemetry-api: update EnvironmentGetter to ignore non-normalized environment variable names (#5289)opentelemetry-api: normalize empty environment propagation names to _ in EnvironmentSetter and EnvironmentGetter (#5328).rst files to Sphinx documentation build for SDK logs, propagators, and exporter submodules. (#5017)opentelemetry-api: fix SelectableGroups deprecation warning (#5250)opentelemetry-sdk: make SynchronousMeasurementConsumer.consume_measurement lock free to avoid deadlocks (#5321)This is a patch release on the previous 1.42.0/0.63b0 release, fixing the issue(s) below.
This is a patch release on the previous 1.42.0/0.63b0 release, fixing the issue(s) below.
opentelemetry-api, opentelemetry-sdk: add support for 'random-trace-id' flags in W3C traceparent header trace flags. Implementations of IdGenerator th
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)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)registry keyword argument to PrometheusMetricReader to allow passing a custom Prometheus registry (#5055)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)OTEL_PYTHON_SDK_INTERNAL_METRICS_ENABLED environment variable. (#5151)opentelemetry-semantic-conventions: use X | Y union annotation (#5096)opentelemetry-api: update EnvironmentGetter and EnvironmentSetter to use normalized environment variable names (#5119)UP ruff rule (#5133)opentelemetry-sdk: only load entrypoints for resource detectors if they are configured via OTEL_EXPERIMENTAL_RESOURCE_DETECTORS (#5145)scripts/tracecontext-integration-test.sh (#5149)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)opentelemetry-api: remove third-party importlib-metadata in favor of standard library since Python >= 3.10 is now required (#3234)opentelemetry-sdk: Allow declarative OTLP HTTP exporters to map compression: deflate instead of rejecting it as unsupported. (#5075)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)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)This is a patch release on the previous 1.41.0/0.62b0 release, fixing the issue(s) below.
This is a patch release on the previous 1.41.0/0.62b0 release, fixing the issue(s) below.
opentelemetry-sdk: Add host resource detector support to declarative file configuration via detection_development.detectors[].host
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)opentelemetry-sdk: Fix AttributeError in ExplicitBucketHistogramAggregation when applied to non-Histogram instruments without explicit boundaries (#5034)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 jobopentelemetry-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)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-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)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)max_export_batch_size to use real export (#5036)opentelemetry-sdk: Implement experimental Logger configurator (#4980)opentelemetry-sdk: deprecate LoggingHandler in favor of opentelemetry-instrumentation-logging, see opentelemetry-instrumentation-logging documentation
BREAKING CHANGE
As part of https://github.com/open-telemetry/opentelemetry-python/pull/4861, start_span and start_as_current_span as part of NoOpTracer were fixed such that they no longer strictly return an INVALID_SPAN if there is a valid span context as the current span context, instead it propagates the span context properly even at the absence of the sdk installed.
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)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)OTEL_EXPERIMENTAL_RESOURCE_DETECTORS to * (#4819)opentelemetry-sdk: Fix the type hint of the _metrics_data property to allow None (#4837).SimpleLogRecordProcessor.on_emit, (#4799) and (#4867).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)opentelemetry-sdk: Fix instrument creation race condition (#4913)opentelemetry-sdk: automatically generate configuration models using OTel config JSON schema (#4879)This is a patch release on the previous 1.39.0/0.60b0 release, fixing the issue(s) below.
This is a patch release on the previous 1.39.0/0.60b0 release, fixing the issue(s) below.
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).
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)
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 Resourcelog_record.instrumentation_scope - The InstrumentationScope (now included, was in LogData before)log_record.limits - The LogRecordLimitsMark 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)
logs: add warnings for classes that would be deprecated and renamed in 1.39.0
Add experimental composite samplers
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.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).importlib_metadata.entry_points (#4735)Add missing Prometheus exporter documentation
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).
We are working on stabilizing the Log signal that would require making deprecations and breaking changes. We will try to reduce the releases that may…
event_name as a top level field in the LogRecord. Events are now simply logs with the event_name field set, the logs SDK should be used to emit events (#4652).type: ignore that causes mypy to ignore the whole file (#4618)span_exporter property back to BatchSpanProcessor class (#4621)context; deprecates trace_id, span_id, trace_flags. (#4597) and (#4668)Breaking Changes
We are working on stabilizing the Log signal that would require making deprecations and breaking changes. We will try to reduce the releases that may require an update to your code, especially for instrumentations or for sdk developers.
This is a patch release on the previous 1.34.0/0.55b0 release, fixing the issue(s) below.
Use PEP702 for marking deprecations
BatchLogRecordProcessor to simplify code and make the control flow more clear (#4562 and #4535).BatchLogRecordProcessor and BatchSpanProcessor to simplify code and make the control flow more clear (#4562 #4535, and #4580).BatchLogRecordProcessor.emit, this caused the program to crash at shutdown with a max recursion error (#4586).This is a patch release on the previous 1.33.0/0.54b0 release, fixing the issue(s) below.
This is a patch release on the previous 1.33.0/0.54b0 release, fixing the issue(s) below.
BatchLogRecordProcessor.emit, this caused the program to crash at shutdown with a max recursion error (#4586).Fix intermittent Connection aborted error when using otlp/http exporters
Connection aborted error when using otlp/http exporters (#4477)code.function -> code.function.name, code.lineno -> code.line.number, code.filepath -> code.file.path (#4508)This is a patch release on the previous 1.32.0/0.53b0 release, fixing the issue(s) below.
This is a patch release on the previous 1.32.0/0.53b0 release, fixing the issue(s) below.
Fix user agent in OTLP HTTP metrics exporter
environment_variables (#4491)BaseException change in trace_api.use_span() (#4494)This is a patch release on the previous 1.31.0/0.52b0 release, fixing the issue(s) below.
This is a patch release on the previous 1.31.0/0.52b0 release, fixing the issue(s) below.
BaseException change in trace_api.use_span() (#4494)semantic-conventions: Bump to 1.31.0
OTEL_EXPERIMENTAL_RESOURCE_DETECTORS (#4373)OTLPSpanExporter (#4370)tracecontext-integration-test gitref to d782773b2cf2fa4afd6a80a93b289d8a74ca894d (#4448)trace_api.use_span() record BaseException as well as Exception (#4406)Always setup logs sdk, OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED only controls python logging module handler setup
logging module handler setup (#4340)attributes field in metrics.get_meter wrapper function (#4364)opentelemetry.semconv.attributes.network_attributes.NETWORK_INTERFACE_NAME introduced by mistake in the wrong module. (#4391)Fix crash exporting a log record with None body
TestBase.assertEqualSpanInstrumentationInfo method, use assertEqualSpanInstrumentationScope instead (#4310)ExemplarBuckets in ExemplarReservoirs (#4260)This is a patch release on the previous 1.28.1/0.49b1 release, fixing the issue(s) below.
This is a patch release on the previous 1.28.0/0.49b0 release, fixing the issue(s) below.
Removed superfluous py.typed markers and added them where they were missing
OTEL_PYTHON_EXPERIMENTAL_DISABLE_PROMETHEUS_UNIT_NORMALIZATION environment variable (#4217)Make log sdk add exception.message to logRecord for exceptions whose argument is an exception not a string message
exception.message to logRecord for exceptions whose argument is an exception not a string message (#4122)link.attributes.dropped, which may not exist (#4119)OTEL_EXPORTER_OTLP_*HEADERS to match other languages SDKs (#4103)_start_time_unix_nano attribute from _ViewInstrumentMatch in favor of using time_ns() at the moment when the aggregation object is created (#4137)Standardizing timeout calculation in measurement consumer collect to nanoseconds
process.command_args attribute to also include the executable itself (#4032)start_time_unix_nano for delta collection for explicit bucket histogram aggregation (#4009)start_time_unix_nano for delta collection for sum aggregation (#4011)ExponentialHistogramAggregation (#3978)LogRecord in sdk/log has dropped attributes due to reaching limits (#3946)os and net namespaces. - add Final decorator to constants to prevent collisions - enable mypy and fix detected issues - allow to drop specific attributes in preparation for Semantic Conventions v1.26.0 (#3973)MeterProvider.get_meter and InstrumentationScope (#4015)SCHEMA_URL constants in opentelemetry-semantic-conventions (#4069)Fix prometheus metric name and unit conversion (#3924) - this is a breaking change to prometheus metric names so they comply with the specification. -…
SpanAttributes, ResourceAttributes, and MetricInstruments are deprecated. - Attribute and metric definitions are now grouped by the namespace. - Stable attributes and metrics are moved to opentelemetry.semconv.attributes and opentelemetry.semconv.metrics modules. - Stable and experimental attributes and metrics are defined under opentelemetry.semconv._incubating import path. (#3586)OTEL_PYTHON_EXPERIMENTAL_DISABLE_PROMETHEUS_UNIT_NORMALIZATION=true - common unit abbreviations are converted to Prometheus conventions (s -> seconds), following the collector's implementation - repeated _ are replaced with a single _ - unit annotations (enclosed in curly braces like {requests}) are stripped away - units with slash are converted e.g. m/s -> meters_per_second. - The exporter's API is not changedFix python 3.12 deprecation warning
tracer.start_as_current_span() decorator work with async functions (#3633)BaseException instead of Exception in record_exception (#3354)Use Attribute rather than boundattribute in logrecord
OTLPMetricExporter ignores preferred_aggregation property (#3603)observed_timestamp field (#3565)code.lineno, code.function and code.filepath to all logs (#3645)Prometheus exporter sanitize info metric
Fix handling of empty metric collection cycles
SumAggregation  (#3390)opentelemetry_metrics_exporter entrypoint support pull exporters (#3428)Modify Prometheus exporter to translate non-monotonic Sums into Gauges
Drop setuptools runtime requirement.
setuptools runtime requirement. (#3372)Select histogram aggregation with an environment variable
Implement LowMemory temporality
Change __all__ to be statically defined.
Change __all__ to be statically defined. (#3143)
Remove the ability to set a global metric prefix for Prometheus exporter (#3137)
Adds environment variables for log exporter (#3037)
Add attribute name to type warning message. (3124)
Add db metric name to semantic conventions (#3115)
Fix User-Agent header value for OTLP exporters to conform to RFC7231 & RFC7230 (#3128)
Fix validation of baggage values (#3058)
Fix capitalization of baggage keys (#3151)
Bump min required api version for OTLP exporters (#3156)
deprecate jaeger exporters (#3158)
Create a single resource instance (#3118)
Regenerate opentelemetry-proto to be compatible with protobuf 3 and 4
Add logarithm and exponent mappings
exporter-otlp-proto-http: add user agent string (#2959)Stop MeterProvier attribute error message from showing up by @ocelotl in https://github.com/open-telemetry/opentelemetry-python/pull/2875
Full Changelog: https://github.com/open-telemetry/opentelemetry-python/compare/v1.12.0...v1.13.0
Add force_flush method to metrics exporter
force_flush method to metrics exporter (#2852)Resource.to_json() (#2784)OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE only for OTLP metrics exporter (#2843)Fix instrument name and unit regexes
opentelemetry-exporter-otlp-proto-http Add support for OTLP/HTTP log exporter (#2462)None-valued points (#2745)to_json methods (#2722Getter and Setter (#2657)backoff for newer Python versions (#2726)opentelemetry.propagate module and opentelemetry.propagators package to the API reference documentation (#2785)Fix LoggingHandler to handle LogRecord with exc_info=False
exc_info=False (#2690)opentelemetry.sdk.resources.ProcessResourceDetector that adds the 'process.runtime.{name,version,description}' resource attributes when used with the opentelemetry.sdk.resources.get_aggregated_resources API (#2660)This release includes the release candidate for metrics.
Deprecate InstrumentationLibraryInfo and Add InstrumentationScope
DefaultCounter, DefaultHistogram, DefaultObservableCounter,
DefaultObservableGauge, DefaultObservableUpDownCounter, DefaultUpDownCounter
instruments to NoOpCounter, NoOpHistogram, NoOpObservableCounter,
NoOpObservableGauge, NoOpObservableUpDownCounter, NoOpUpDownCounter
(#2616)Add support for zero or more callbacks
enable_default_view option from sdk MeterProvider
(#2547)backoff lib
(#2575)Docs rework: non-API docs are moving to opentelemetry.io. For details, including a list of pages that have moved, see #2453, and #2498.
opentelemetry-exporter-otlp-grpc update SDK dependency to ~1.9.
(#2442)OTEL_EXPORTER_OTLP_ENDPOINT usage in OTLP HTTP trace exporter
(#2493)This release adds the experimental metrics API/SDK and will include the following packages:
This release adds the experimental metrics API/SDK and will include the following packages:
opentelemetry-exporter-prometheus
opentelemetry-api
opentelemetry-sdk
opentelemetry-exporter-otlp-proto-grpc
opentelemetry-exporter-otlp
Update opentelemetry-proto to v0.12.0. Note that this update removes deprecated status codes.
[api] Add NoOpTracer and NoOpTracerProvider. Marking _DefaultTracer and _DefaultTracerProvider as deprecated.
NoOpTracer and NoOpTracerProvider. Marking _DefaultTracer and _DefaultTracerProvider as deprecated.
(#2363)_DefaultMeter and _DefaultMeterProvider to NoOpMeter and NoOpMeterProvider.
(#2383)Adds Aggregation and instruments as part of Metrics SDK
##Changes
Happy Holidays 🎅 ☃️
Experimental release for logging SDK 🎉
X-B3-ParentSpanId for B3 propagator as per OpenTelemetry specification
(#2237)auto.version in Resource if using auto-instrumentation
(#2243)opentelemetry-sdk Sanitize env var resource attribute pairs
(#2256)opentelemetry-test start releasing to pypi.org
(#2269)This version was partially released. Please use 1.7.1 & 0.26b1 instead.
This version was partially released. Please use 1.7.1 & 0.26b1 instead.
Fix parental trace relationship for opentracing follows_from reference
follows_from reference
(#2180)Upgrade GRPC/protobuf related dependency and regenerate otlp protobufs
Fix race in set_tracer_provider()
set_tracer_provider() (#2182)opentelemetry-instrument (#1969)opentelemetry-semantic-conventions Update to semantic conventions v1.6.1 (#2077)opentelemetry-test: Add HttpTestBase to allow tests with actual TCP sockets (#2101)opentelemetry-exporter-otlp: Add opentelemetry-otlp-proto-http as dependency (#2147)schema_url to TracerProvider.get_tracer (#2154)Add Trace ID validation to meet TraceID spec
opentelemetry-sdk added support for OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT (#2044)opentelemetry-sdk Add support for OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT env var (#2056)opentelemetry-sdk get_aggregated_resource() returns default resource and service name
whenever called (#2013)opentelemetry-distro & opentelemetry-sdk Moved Auto Instrumentation Configurator code to SDK
to let distros use its default implementation (#1937)opentelemetry-sdk Treat limit even vars set to empty values as unset/unlimited. (#2054)opentelemetry-api Attribute keys must be non-empty strings. (#2057)Hotfix to address https://github.com/open-telemetry/opentelemetry-python/issues/1988
Hotfix to address https://github.com/open-telemetry/opentelemetry-python/issues/1988
Added BoundedAttributes to the API to make it available for Link which is defined in the API. Marked BoundedDict in the SDK as deprecated as a result.
opentelemetry-semantic-conventions Generate semconv constants update for OTel Spec 1.5.0 (#1946)opentelemetry-instrumentation to core repository. (#1959)opentelemetry-opencensus-exporter to use service_name of spans instead of resource (#1897)Span.set_status with StatusCode.UNSET and also if previous status already had StatusCode.OK. (#1902)Link and Resource are immutable as they are for Event, which means any attempt to modify attributes directly will result in a TypeError exception. (#1909)BoundedAttributes to the API to make it available for Link which is defined in the API. Marked BoundedDict in the SDK as deprecated as a result. (#1915)opentelementry-opentracing-shim ScopeShim to report exceptions in opentelemetry specification format, rather than opentracing spec format. (#1878)Your coding agent can read these notes before it upgrades. Set up the MCP server →