Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package 
python-opentelemetry-exporter-otlp-proto-http for openSUSE:Factory checked in 
at 2025-05-27 18:44:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing 
/work/SRC/openSUSE:Factory/python-opentelemetry-exporter-otlp-proto-http (Old)
 and      
/work/SRC/openSUSE:Factory/.python-opentelemetry-exporter-otlp-proto-http.new.2732
 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-opentelemetry-exporter-otlp-proto-http"

Tue May 27 18:44:05 2025 rev:8 rq:1280595 version:1.33.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-opentelemetry-exporter-otlp-proto-http/python-opentelemetry-exporter-otlp-proto-http.changes
      2025-02-26 17:19:45.062296075 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-opentelemetry-exporter-otlp-proto-http.new.2732/python-opentelemetry-exporter-otlp-proto-http.changes
    2025-05-27 18:44:13.569691528 +0200
@@ -1,0 +2,16 @@
+Mon May 26 07:21:12 UTC 2025 - Nico Krapp <nico.kr...@suse.com>
+
+- Update to 1.33.1
+  * Remove log messages from BatchLogRecordProcessor.emit, this caused the
+    program to crash at shutdown with a max recursion error
+- Update to 1.33.0
+  * Fix intermittent Connection aborted error when using otlp/http exporters
+  * opentelemetry-sdk: use stable code attributes:
+    code.function -> code.function.name, code.lineno -> code.line.number,
+    code.filepath -> code.file.path
+  * Fix serialization of extended attributes for logs signal
+  * Handle OTEL_PROPAGATORS contains None
+  * docs: updated and added to the metrics and log examples
+  * Bump semantic conventions to 1.33.0
+
+-------------------------------------------------------------------

Old:
----
  opentelemetry_exporter_otlp_proto_http-1.30.0.tar.gz

New:
----
  opentelemetry_exporter_otlp_proto_http-1.33.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-opentelemetry-exporter-otlp-proto-http.spec ++++++
--- /var/tmp/diff_new_pack.GqbYtg/_old  2025-05-27 18:44:14.169716777 +0200
+++ /var/tmp/diff_new_pack.GqbYtg/_new  2025-05-27 18:44:14.169716777 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-opentelemetry-exporter-otlp-proto-http
-Version:        1.30.0
+Version:        1.33.1
 Release:        0
 Summary:        OpenTelemetry Collector Protobuf over HTTP Exporter
 License:        Apache-2.0
@@ -33,7 +33,7 @@
 BuildRequires:  %{python_module opentelemetry-exporter-otlp-proto-common = 
%{version}}
 BuildRequires:  %{python_module opentelemetry-proto = %{version}}
 BuildRequires:  %{python_module opentelemetry-sdk >= 1.23.0}
-BuildRequires:  %{python_module opentelemetry-test-utils = 0.51b0}
+BuildRequires:  %{python_module opentelemetry-test-utils = 0.54b1}
 BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module requests >= 2.7}
 BuildRequires:  %{python_module responses >= 0.22.0}

++++++ opentelemetry_exporter_otlp_proto_http-1.30.0.tar.gz -> 
opentelemetry_exporter_otlp_proto_http-1.33.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/PKG-INFO 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/PKG-INFO
--- old/opentelemetry_exporter_otlp_proto_http-1.30.0/PKG-INFO  2020-02-02 
01:00:00.000000000 +0100
+++ new/opentelemetry_exporter_otlp_proto_http-1.33.1/PKG-INFO  2020-02-02 
01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: opentelemetry-exporter-otlp-proto-http
-Version: 1.30.0
+Version: 1.33.1
 Summary: OpenTelemetry Collector Protobuf over HTTP Exporter
 Project-URL: Homepage, 
https://github.com/open-telemetry/opentelemetry-python/tree/main/exporter/opentelemetry-exporter-otlp-proto-http
 Project-URL: Repository, https://github.com/open-telemetry/opentelemetry-python
@@ -24,9 +24,9 @@
 Requires-Dist: deprecated>=1.2.6
 Requires-Dist: googleapis-common-protos~=1.52
 Requires-Dist: opentelemetry-api~=1.15
-Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.30.0
-Requires-Dist: opentelemetry-proto==1.30.0
-Requires-Dist: opentelemetry-sdk~=1.30.0
+Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.33.1
+Requires-Dist: opentelemetry-proto==1.33.1
+Requires-Dist: opentelemetry-sdk~=1.33.1
 Requires-Dist: requests~=2.7
 Description-Content-Type: text/x-rst
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/pyproject.toml 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/pyproject.toml
--- old/opentelemetry_exporter_otlp_proto_http-1.30.0/pyproject.toml    
2020-02-02 01:00:00.000000000 +0100
+++ new/opentelemetry_exporter_otlp_proto_http-1.33.1/pyproject.toml    
2020-02-02 01:00:00.000000000 +0100
@@ -31,9 +31,9 @@
   "Deprecated >= 1.2.6",
   "googleapis-common-protos ~= 1.52",
   "opentelemetry-api ~= 1.15",
-  "opentelemetry-proto == 1.30.0",
-  "opentelemetry-sdk ~= 1.30.0",
-  "opentelemetry-exporter-otlp-proto-common == 1.30.0",
+  "opentelemetry-proto == 1.33.1",
+  "opentelemetry-sdk ~= 1.33.1",
+  "opentelemetry-exporter-otlp-proto-common == 1.33.1",
   "requests ~= 2.7",
 ]
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/src/opentelemetry/exporter/otlp/proto/http/_log_exporter/__init__.py
 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/src/opentelemetry/exporter/otlp/proto/http/_log_exporter/__init__.py
--- 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/src/opentelemetry/exporter/otlp/proto/http/_log_exporter/__init__.py
      2020-02-02 01:00:00.000000000 +0100
+++ 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/src/opentelemetry/exporter/otlp/proto/http/_log_exporter/__init__.py
      2020-02-02 01:00:00.000000000 +0100
@@ -21,6 +21,7 @@
 from typing import Dict, Optional, Sequence
 
 import requests
+from requests.exceptions import ConnectionError
 
 from opentelemetry.exporter.otlp.proto.common._internal import (
     _create_exp_backoff_generator,
@@ -133,13 +134,27 @@
         elif self._compression == Compression.Deflate:
             data = zlib.compress(serialized_data)
 
-        return self._session.post(
-            url=self._endpoint,
-            data=data,
-            verify=self._certificate_file,
-            timeout=self._timeout,
-            cert=self._client_cert,
-        )
+        # By default, keep-alive is enabled in Session's request
+        # headers. Backends may choose to close the connection
+        # while a post happens which causes an unhandled
+        # exception. This try/except will retry the post on such exceptions
+        try:
+            resp = self._session.post(
+                url=self._endpoint,
+                data=data,
+                verify=self._certificate_file,
+                timeout=self._timeout,
+                cert=self._client_cert,
+            )
+        except ConnectionError:
+            resp = self._session.post(
+                url=self._endpoint,
+                data=data,
+                verify=self._certificate_file,
+                timeout=self._timeout,
+                cert=self._client_cert,
+            )
+        return resp
 
     @staticmethod
     def _retryable(resp: requests.Response) -> bool:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/src/opentelemetry/exporter/otlp/proto/http/metric_exporter/__init__.py
 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/src/opentelemetry/exporter/otlp/proto/http/metric_exporter/__init__.py
--- 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/src/opentelemetry/exporter/otlp/proto/http/metric_exporter/__init__.py
    2020-02-02 01:00:00.000000000 +0100
+++ 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/src/opentelemetry/exporter/otlp/proto/http/metric_exporter/__init__.py
    2020-02-02 01:00:00.000000000 +0100
@@ -10,6 +10,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+from __future__ import annotations
 
 import gzip
 import logging
@@ -23,12 +24,12 @@
     Dict,
     List,
     Mapping,
-    Optional,
     Sequence,
 )
 
 import requests
 from deprecated import deprecated
+from requests.exceptions import ConnectionError
 
 from opentelemetry.exporter.otlp.proto.common._internal import (
     _create_exp_backoff_generator,
@@ -40,7 +41,10 @@
 from opentelemetry.exporter.otlp.proto.common.metrics_encoder import (
     encode_metrics,
 )
-from opentelemetry.exporter.otlp.proto.http import Compression
+from opentelemetry.exporter.otlp.proto.http import (
+    _OTLP_HTTP_HEADERS,
+    Compression,
+)
 from opentelemetry.proto.collector.metrics.v1.metrics_service_pb2 import (  # 
noqa: F401
     ExportMetricsServiceRequest,
 )
@@ -101,16 +105,17 @@
 
     def __init__(
         self,
-        endpoint: Optional[str] = None,
-        certificate_file: Optional[str] = None,
-        client_key_file: Optional[str] = None,
-        client_certificate_file: Optional[str] = None,
-        headers: Optional[Dict[str, str]] = None,
-        timeout: Optional[int] = None,
-        compression: Optional[Compression] = None,
-        session: Optional[requests.Session] = None,
-        preferred_temporality: Dict[type, AggregationTemporality] = None,
-        preferred_aggregation: Dict[type, Aggregation] = None,
+        endpoint: str | None = None,
+        certificate_file: str | None = None,
+        client_key_file: str | None = None,
+        client_certificate_file: str | None = None,
+        headers: dict[str, str] | None = None,
+        timeout: int | None = None,
+        compression: Compression | None = None,
+        session: requests.Session | None = None,
+        preferred_temporality: dict[type, AggregationTemporality]
+        | None = None,
+        preferred_aggregation: dict[type, Aggregation] | None = None,
     ):
         self._endpoint = endpoint or environ.get(
             OTEL_EXPORTER_OTLP_METRICS_ENDPOINT,
@@ -151,9 +156,7 @@
         self._compression = compression or _compression_from_env()
         self._session = session or requests.Session()
         self._session.headers.update(self._headers)
-        self._session.headers.update(
-            {"Content-Type": "application/x-protobuf"}
-        )
+        self._session.headers.update(_OTLP_HTTP_HEADERS)
         if self._compression is not Compression.NoCompression:
             self._session.headers.update(
                 {"Content-Encoding": self._compression.value}
@@ -173,13 +176,27 @@
         elif self._compression == Compression.Deflate:
             data = zlib.compress(serialized_data)
 
-        return self._session.post(
-            url=self._endpoint,
-            data=data,
-            verify=self._certificate_file,
-            timeout=self._timeout,
-            cert=self._client_cert,
-        )
+        # By default, keep-alive is enabled in Session's request
+        # headers. Backends may choose to close the connection
+        # while a post happens which causes an unhandled
+        # exception. This try/except will retry the post on such exceptions
+        try:
+            resp = self._session.post(
+                url=self._endpoint,
+                data=data,
+                verify=self._certificate_file,
+                timeout=self._timeout,
+                cert=self._client_cert,
+            )
+        except ConnectionError:
+            resp = self._session.post(
+                url=self._endpoint,
+                data=data,
+                verify=self._certificate_file,
+                timeout=self._timeout,
+                cert=self._client_cert,
+            )
+        return resp
 
     @staticmethod
     def _retryable(resp: requests.Response) -> bool:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/src/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py
 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/src/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py
--- 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/src/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py
     2020-02-02 01:00:00.000000000 +0100
+++ 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/src/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py
     2020-02-02 01:00:00.000000000 +0100
@@ -21,6 +21,7 @@
 from typing import Dict, Optional
 
 import requests
+from requests.exceptions import ConnectionError
 
 from opentelemetry.exporter.otlp.proto.common._internal import (
     _create_exp_backoff_generator,
@@ -130,13 +131,27 @@
         elif self._compression == Compression.Deflate:
             data = zlib.compress(serialized_data)
 
-        return self._session.post(
-            url=self._endpoint,
-            data=data,
-            verify=self._certificate_file,
-            timeout=self._timeout,
-            cert=self._client_cert,
-        )
+        # By default, keep-alive is enabled in Session's request
+        # headers. Backends may choose to close the connection
+        # while a post happens which causes an unhandled
+        # exception. This try/except will retry the post on such exceptions
+        try:
+            resp = self._session.post(
+                url=self._endpoint,
+                data=data,
+                verify=self._certificate_file,
+                timeout=self._timeout,
+                cert=self._client_cert,
+            )
+        except ConnectionError:
+            resp = self._session.post(
+                url=self._endpoint,
+                data=data,
+                verify=self._certificate_file,
+                timeout=self._timeout,
+                cert=self._client_cert,
+            )
+        return resp
 
     @staticmethod
     def _retryable(resp: requests.Response) -> bool:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/src/opentelemetry/exporter/otlp/proto/http/version/__init__.py
 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/src/opentelemetry/exporter/otlp/proto/http/version/__init__.py
--- 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/src/opentelemetry/exporter/otlp/proto/http/version/__init__.py
    2020-02-02 01:00:00.000000000 +0100
+++ 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/src/opentelemetry/exporter/otlp/proto/http/version/__init__.py
    2020-02-02 01:00:00.000000000 +0100
@@ -12,4 +12,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-__version__ = "1.30.0"
+__version__ = "1.33.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/tests/metrics/test_otlp_metrics_exporter.py
 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/tests/metrics/test_otlp_metrics_exporter.py
--- 
old/opentelemetry_exporter_otlp_proto_http-1.30.0/tests/metrics/test_otlp_metrics_exporter.py
       2020-02-02 01:00:00.000000000 +0100
+++ 
new/opentelemetry_exporter_otlp_proto_http-1.33.1/tests/metrics/test_otlp_metrics_exporter.py
       2020-02-02 01:00:00.000000000 +0100
@@ -32,6 +32,7 @@
     DEFAULT_TIMEOUT,
     OTLPMetricExporter,
 )
+from opentelemetry.exporter.otlp.proto.http.version import __version__
 from opentelemetry.sdk.environment_variables import (
     OTEL_EXPORTER_OTLP_CERTIFICATE,
     OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE,
@@ -124,6 +125,15 @@
         self.assertIs(exporter._compression, DEFAULT_COMPRESSION)
         self.assertEqual(exporter._headers, {})
         self.assertIsInstance(exporter._session, Session)
+        self.assertIn("User-Agent", exporter._session.headers)
+        self.assertEqual(
+            exporter._session.headers.get("Content-Type"),
+            "application/x-protobuf",
+        )
+        self.assertEqual(
+            exporter._session.headers.get("User-Agent"),
+            "OTel-OTLP-Exporter-Python/" + __version__,
+        )
 
     @patch.dict(
         "os.environ",

Reply via email to