#
# spec file for package python-opentelemetry-sdk
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?sle15_python_module_pythons}
Name: python-opentelemetry-sdk
Version: 1.30.0
Release: 1.3
Summary: OpenTelemetry Python SDK
License: Apache-2.0
URL: https://github.com/open-telemetry/opentelemetry-python
Source: https://files.pythonhosted.org/packages/source/o/opentelemetry-sdk/opentelemetry_sdk-%{version}.tar.gz
BuildRequires: %{python_module flaky}
BuildRequires: %{python_module hatchling}
BuildRequires: %{python_module opentelemetry-api = %{version}}
BuildRequires: %{python_module opentelemetry-semantic-conventions = 0.51b0}
BuildRequires: %{python_module opentelemetry-test-utils = 0.51b0}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module typing-extensions >= 3.7.4}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-opentelemetry-api = %{version}
Requires: python-opentelemetry-semantic-conventions = 0.51b0
Requires: python-typing-extensions >= 3.7.4
BuildArch: noarch
%python_subpackages
%description
OpenTelemetry Python SDK for the OpenTelemetry Project
%prep
%autosetup -p1 -n opentelemetry_sdk-%{version}
%build
%pyproject_wheel
%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
rm -rvf tests/performance tests/trace/test_trace.py
%pytest
%files %{python_files}
%license LICENSE
%doc README.rst
%{python_sitelib}/opentelemetry/sdk
%{python_sitelib}/opentelemetry_sdk-%{version}.dist-info
%changelog
* Tue Feb 25 2025 Dirk Müller
- update to 1.30.0:
* Always setup logs sdk,
OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED only
controls python `logging` module handler setup
* Add `attributes` field in `metrics.get_meter` wrapper
function
* Add Python 3.13 support
* sdk: don't log or print warnings when the SDK has been
disabled
* Fix span context manager typing by using ParamSpec from
typing_extensions
* Fix serialization of None values in logs body to match
1.31.0+ data model
* [BREAKING] semantic-conventions: Remove `opentelemetry.semcon
v.attributes.network_attributes.NETWORK_INTERFACE_NAME`
introduced by mistake in the wrong module.
* Add support for explicit bucket boundaries advisory for
Histograms
* semantic-conventions: Bump to 1.30.0
* Wed Jan 8 2025 John Paul Adrian Glaubitz
- Update to 1.29.0
* Fix crash exporting a log record with None body
* Fix metrics export with exemplar and no context and filtering observable instruments
* Fix recursion error with sdk disabled and handler added to root logger
* sdk: setup EventLogger when OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED is set
* api: fix logging of duplicate EventLogger setup warning
* sdk: fix setting of process owner in ProcessResourceDetector
* sdk: fix serialization of logs severity_number field to int
* Remove `TestBase.assertEqualSpanInstrumentationInfo` method,
use `assertEqualSpanInstrumentationScope` instead
* sdk: instantiate lazily `ExemplarBucket`s in `ExemplarReservoir`s
* semantic-conventions: Bump to 1.29.0
- from version 1.28.0
* Removed superfluous py.typed markers and added them where they were missing
* Include metric info in encoding exceptions
* sdk: Add support for log formatting
* sdk: Add Host resource detector
* sdk: Implementation of exemplars
* Implement events sdk
* Update semantic conventions to version 1.28.0
* Add support to protobuf 5+ and drop support to protobuf 3 and 4
* Update environment variable descriptions to match signal
* Record logger name as the instrumentation scope name
* Fix memory leak in exporter and reader
* Drop `OTEL_PYTHON_EXPERIMENTAL_DISABLE_PROMETHEUS_UNIT_NORMALIZATION` environment variable
* Improve compatibility with other logging libraries that override
`LogRecord.getMessage()` in order to customize message formatting
- Update BuildRequires and Requires from pyproject.toml
* Mon Sep 2 2024 John Paul Adrian Glaubitz
- Update to 1.27.0
* Implementation of Events API (#4054)
* Make log sdk add `exception.message` to logRecord for exceptions whose argument
is an exception not a string message (#4122)
* Fix use of `link.attributes.dropped`, which may not exist (#4119)
* Running mypy on SDK resources (#4053)
* Added py.typed file to top-level module (#4084)
* Drop Final annotation from Enum in semantic conventions (#4085)
* Update log export example to not use root logger (#4090)
* sdk: Add OS resource detector (#3992)
* sdk: Accept non URL-encoded headers in `OTEL_EXPORTER_OTLP_*HEADERS`
to match other languages SDKs (#4103)
* Update semantic conventions to version 1.27.0 (#4104)
* Add support to type bytes for OTLP AnyValue (#4128)
* Export ExponentialHistogram and ExponentialHistogramDataPoint (#4134)
* Implement Client Key and Certificate File Support for All OTLP Exporters (#4116)
* Remove `_start_time_unix_nano` attribute from `_ViewInstrumentMatch` in favor
of using `time_ns()` at the moment when the aggregation object is created (#4137)
- from version 1.26.0
* Standardizing timeout calculation in measurement consumer collect to nanoseconds (#4074)
* Optional scope attributes for logger creation (#4035)
* Optional scope attribute for tracer creation (#4028)
* OTLP exporter is encoding invalid span/trace IDs in the logs fix (#4006)
* Update sdk process resource detector `process.command_args` attribute
to also include the executable itself (#4032)
* Fix `start_time_unix_nano` for delta collection for explicit bucket
histogram aggregation (#4009)
* Fix `start_time_unix_nano` for delta collection for sum aggregation (#4011)
* Update opentracing and opencesus docs examples to not use JaegerExporter (#4023)
* Do not execute Flask Tests in debug mode (#3956)
* When encountering an error encoding metric attributes in the OTLP exporter,
log the key that had an error. (#3838)
* Fix `ExponentialHistogramAggregation` (#3978)
* Log a warning when a `LogRecord` in `sdk/log` has dropped attributes
due to reaching limits (#3946)
* Fix RandomIdGenerator can generate invalid Span/Trace Ids (#3949)
* Add Python 3.12 to tox (#3616)
* Improve resource field structure for LogRecords (#3972)
* Update Semantic Conventions code generation scripts:
+ Fix namespace exclusion that resulted in dropping `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)
* Update semantic conventions to version 1.26.0. (#3964)
* Use semconv exception attributes for record exceptions in spans (#3979)
* Fix _encode_events assumes events.attributes.dropped exists (#3965)
* Validate links at span creation (#3991)
* Add attributes field in `MeterProvider.get_meter` and `InstrumentationScope` (#4015)
* Fix inaccessible `SCHEMA_URL` constants in `opentelemetry-semantic-conventions` (#4069)
- Update BuildRequires and Requires from pyproject.toml
* Mon Jun 17 2024 Dirk Müller
- update to 1.25.0:
* Fix class BoundedAttributes to have RLock rather than Lock
* Remove thread lock by loading RuntimeContext explicitly.
* Update proto version to v1.2.0
* Add to_json method to ExponentialHistogram
* Bump mypy to 1.9.0
* Fix exponential histograms
* Fix otlp exporter to export log_record.observed_timestamp
* Add capture the fully qualified type name for raised
exceptions in spans
* Prometheus exporter sort label keys to prevent duplicate
metrics when user input changes order
* Update semantic conventions to version 1.25.0.
* Rename test objects to avoid pytest warnings
* Add span flags to OTLP spans and links
* Record links with invalid SpanContext if either attributes or
TraceState are not empty
* Add OpenTelemetry trove classifiers to PyPI packages
* Fix prometheus metric name and unit conversion
* Add parameters for Distros and configurators to configure
autoinstrumentation in addition to existing environment
variables.
* Wed Apr 3 2024 Dirk Müller
- update to 1.24.0:
* Make create_gauge non-abstract method
* Make `tracer.start_as_current_span()` decorator work with
async functions
* Fix python 3.12 deprecation warning
* bump mypy to 0.982
* Add support for OTEL_SDK_DISABLED environment variable
* Fix ValueError message for PeriodicExportingMetricsReader
* Use `BaseException` instead of `Exception` in
`record_exception`
* Make span.record_exception more robust
* Fix license field in pyproject.toml files
* Tue Mar 26 2024 John Paul Adrian Glaubitz
- Add missing python-wheel build dependency to BuildRequires
* Sat Mar 23 2024 Jaime Marquínez Ferrándiz
- update to 1.23.0:
* Use Attribute rather than boundattribute in logrecord (#3567)
* Fix flush error when no LoggerProvider configured for LoggingHandler (#3608)
* Fix OTLPMetricExporter ignores preferred_aggregation property (#3603)
* Logs: set observed_timestamp field (#3565)
* Add missing Resource SchemaURL in OTLP exporters (#3652)
* Fix loglevel warning text (#3566)
* Prometheus Exporter string representation for target_info labels (#3659)
* Logs: ObservedTimestamp field is missing in console exporter output (#3564)
* Fix explicit bucket histogram aggregation (#3429)
* Add code.lineno, code.function and code.filepath to all logs (#3645)
* Add Synchronous Gauge instrument (#3462)
* Drop support for 3.7 (#3668)
* Include key in attribute sequence warning (#3639)
* Upgrade markupsafe, Flask and related dependencies to dev and test
environments (#3609)
* Handle HTTP 2XX responses as successful in OTLP exporters (#3623)
* Improve Resource Detector timeout messaging (#3645)
* Add Proxy classes for logging (#3575)
* Remove dependency on 'backoff' library (#3679)
* Sat Mar 23 2024 Jaime Marquínez Ferrándiz
- update to 1.23.0:
* Use Attribute rather than boundattribute in logrecord (#3567)
* Fix flush error when no LoggerProvider configured for LoggingHandler (#3608)
* Fix OTLPMetricExporter ignores preferred_aggregation property (#3603)
* Logs: set observed_timestamp field (#3565)
* Add missing Resource SchemaURL in OTLP exporters (#3652)
* Fix loglevel warning text (#3566)
* Prometheus Exporter string representation for target_info labels (#3659)
* Logs: ObservedTimestamp field is missing in console exporter output (#3564)
* Fix explicit bucket histogram aggregation (#3429)
* Add code.lineno, code.function and code.filepath to all logs (#3645)
* Add Synchronous Gauge instrument (#3462)
* Drop support for 3.7 (#3668)
* Include key in attribute sequence warning (#3639)
* Upgrade markupsafe, Flask and related dependencies to dev and test
environments (#3609)
* Handle HTTP 2XX responses as successful in OTLP exporters (#3623)
* Improve Resource Detector timeout messaging (#3645)
* Add Proxy classes for logging (#3575)
* Remove dependency on 'backoff' library (#3679)
* Thu Mar 7 2024 John Paul Adrian Glaubitz
- Switch package to modern Python Stack on SLE-15
+ Add %%{?sle15_python_module_pythons}
* Thu Jan 4 2024 Dirk Müller
- Initial package (1.22.0)