Skip to content

Commit 5659ccf

Browse files
authored
Merge branch 'main' into bugfix-event-attribute-sequence-warning
2 parents 13a67e6 + c4d17e9 commit 5659ccf

File tree

23 files changed

+249
-86
lines changed

23 files changed

+249
-86
lines changed

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## Unreleased
99

10+
- Handle HTTP 2XX responses as successful in OTLP exporters
11+
([#3623](https://github.com/open-telemetry/opentelemetry-python/pull/3623))
12+
- Improve Resource Detector timeout messaging
13+
([#3645](https://github.com/open-telemetry/opentelemetry-python/pull/3645))
14+
1015
## Version 1.22.0/0.43b0 (2023-12-15)
1116

12-
- Prometheus exporter sanitize info metric ([#3572](https://github.com/open-telemetry/opentelemetry-python/pull/3572))
17+
- Prometheus exporter sanitize info metric
18+
([#3572](https://github.com/open-telemetry/opentelemetry-python/pull/3572))
1319
- Remove Jaeger exporters
1420
([#3554](https://github.com/open-telemetry/opentelemetry-python/pull/3554))
1521
- Log stacktrace on `UNKNOWN` status OTLP export error

docs/examples/opencensus-exporter-tracer/collector.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#!/usr/bin/env python3
2-
#
31
# Copyright The OpenTelemetry Authors
42
#
53
# Licensed under the Apache License, Version 2.0 (the "License");

exporter/opentelemetry-exporter-otlp-proto-http/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ dependencies = [
3838

3939
[project.optional-dependencies]
4040
test = [
41-
"responses == 0.22.0",
41+
"responses >= 0.22.0, < 0.25",
4242
]
4343

4444
[project.entry-points.opentelemetry_traces_exporter]

exporter/opentelemetry-exporter-otlp-proto-http/src/opentelemetry/exporter/otlp/proto/http/_log_exporter/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ def export(self, batch: Sequence[LogData]) -> LogExportResult:
146146

147147
resp = self._export(serialized_data)
148148
# pylint: disable=no-else-return
149-
if resp.status_code in (200, 202):
149+
if resp.ok:
150150
return LogExportResult.SUCCESS
151151
elif self._retryable(resp):
152152
_logger.warning(

exporter/opentelemetry-exporter-otlp-proto-http/src/opentelemetry/exporter/otlp/proto/http/metric_exporter/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ def export(
178178

179179
resp = self._export(serialized_data.SerializeToString())
180180
# pylint: disable=no-else-return
181-
if resp.status_code in (200, 202):
181+
if resp.ok:
182182
return MetricExportResult.SUCCESS
183183
elif self._retryable(resp):
184184
_logger.warning(

exporter/opentelemetry-exporter-otlp-proto-http/src/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def export(self, spans) -> SpanExportResult:
144144

145145
resp = self._export(serialized_data)
146146
# pylint: disable=no-else-return
147-
if resp.status_code in (200, 202):
147+
if resp.ok:
148148
return SpanExportResult.SUCCESS
149149
elif self._retryable(resp):
150150
_logger.warning(

exporter/opentelemetry-exporter-otlp-proto-http/tests/metrics/test_otlp_metrics_exporter.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from logging import WARNING
1616
from os import environ
1717
from unittest import TestCase
18-
from unittest.mock import patch
18+
from unittest.mock import MagicMock, Mock, patch
1919

2020
from requests import Session
2121
from requests.models import Response
@@ -476,3 +476,14 @@ def test_exponential_explicit_bucket_histogram(self):
476476
OTLPMetricExporter()._preferred_aggregation[Histogram],
477477
ExplicitBucketHistogramAggregation,
478478
)
479+
480+
@patch.object(OTLPMetricExporter, "_export", return_value=Mock(ok=True))
481+
def test_2xx_status_code(self, mock_otlp_metric_exporter):
482+
"""
483+
Test that any HTTP 2XX code returns a successful result
484+
"""
485+
486+
self.assertEqual(
487+
OTLPMetricExporter().export(MagicMock()),
488+
MetricExportResult.SUCCESS,
489+
)

exporter/opentelemetry-exporter-otlp-proto-http/tests/test_proto_log_exporter.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
import unittest
1818
from typing import List
19-
from unittest.mock import MagicMock, patch
19+
from unittest.mock import MagicMock, Mock, patch
2020

2121
import requests
2222
import responses
@@ -34,6 +34,7 @@
3434
from opentelemetry.exporter.otlp.proto.http.version import __version__
3535
from opentelemetry.sdk._logs import LogData
3636
from opentelemetry.sdk._logs import LogRecord as SDKLogRecord
37+
from opentelemetry.sdk._logs.export import LogExportResult
3738
from opentelemetry.sdk.environment_variables import (
3839
OTEL_EXPORTER_OTLP_CERTIFICATE,
3940
OTEL_EXPORTER_OTLP_COMPRESSION,
@@ -262,3 +263,13 @@ def _get_sdk_log_data() -> List[LogData]:
262263
)
263264

264265
return [log1, log2, log3, log4]
266+
267+
@patch.object(OTLPLogExporter, "_export", return_value=Mock(ok=True))
268+
def test_2xx_status_code(self, mock_otlp_metric_exporter):
269+
"""
270+
Test that any HTTP 2XX code returns a successful result
271+
"""
272+
273+
self.assertEqual(
274+
OTLPLogExporter().export(MagicMock()), LogExportResult.SUCCESS
275+
)

exporter/opentelemetry-exporter-otlp-proto-http/tests/test_proto_span_exporter.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import unittest
1616
from collections import OrderedDict
17-
from unittest.mock import Mock, patch
17+
from unittest.mock import MagicMock, Mock, patch
1818

1919
import requests
2020
import responses
@@ -42,6 +42,7 @@
4242
OTEL_EXPORTER_OTLP_TRACES_TIMEOUT,
4343
)
4444
from opentelemetry.sdk.trace import _Span
45+
from opentelemetry.sdk.trace.export import SpanExportResult
4546

4647
OS_ENV_ENDPOINT = "os.env.base"
4748
OS_ENV_CERTIFICATE = "os/env/base.crt"
@@ -239,3 +240,13 @@ def generate_delays(*args, **kwargs):
239240

240241
exporter.export([span])
241242
mock_sleep.assert_called_once_with(1)
243+
244+
@patch.object(OTLPSpanExporter, "_export", return_value=Mock(ok=True))
245+
def test_2xx_status_code(self, mock_otlp_metric_exporter):
246+
"""
247+
Test that any HTTP 2XX code returns a successful result
248+
"""
249+
250+
self.assertEqual(
251+
OTLPSpanExporter().export(MagicMock()), SpanExportResult.SUCCESS
252+
)

exporter/opentelemetry-exporter-otlp/tests/test_otlp.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
import unittest
1615

1716
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import (
1817
OTLPLogExporter,
@@ -26,19 +25,16 @@
2625
from opentelemetry.exporter.otlp.proto.http.trace_exporter import (
2726
OTLPSpanExporter as HTTPSpanExporter,
2827
)
28+
from opentelemetry.test import TestCase
2929

3030

31-
class TestOTLPExporters(unittest.TestCase):
31+
class TestOTLPExporters(TestCase):
3232
def test_constructors(self):
3333
for exporter in [
3434
OTLPSpanExporter,
3535
HTTPSpanExporter,
3636
OTLPLogExporter,
3737
OTLPMetricExporter,
3838
]:
39-
try:
39+
with self.assertNotRaises(Exception):
4040
exporter()
41-
except Exception: # pylint: disable=broad-except
42-
self.fail(
43-
f"Unexpected exception raised when instantiating {exporter.__name__}"
44-
)

0 commit comments

Comments
 (0)