Skip to content

Commit bf43ed0

Browse files
authored
Revert two prs related to OTel 1.37 upgrade (#529)
*Issue #, if available:* ADOT Python E2E tests are failing. *Description of changes:* Revert below two PRs to help narrow down the cause. Both PRs are related to upstream OTel 1.37 upgrade. git revert 49f8a7a d3b22ba By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
1 parent 49f8a7a commit bf43ed0

File tree

24 files changed

+130
-141
lines changed

24 files changed

+130
-141
lines changed

.github/actions/set_up/action.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ runs:
2727

2828
- name: Install tox
2929
shell: bash
30-
run: |
31-
pip install tox==4.30.3
30+
run: pip install tox==3.27.1 tox-factor
3231

3332
- name: Cache tox environment
3433
# Preserves .tox directory between runs for faster installs
@@ -42,7 +41,4 @@ runs:
4241
- name: Run unit tests/benchmarks with tox
4342
if: ${{ inputs.run_unit_tests == 'true' }}
4443
shell: bash
45-
run: |
46-
ENV_NAME="${{ inputs.python_version }}-test-${{ inputs.package_name }}"
47-
echo "Running tox env: $ENV_NAME"
48-
tox -e "$ENV_NAME" -- -ra
44+
run: tox -f ${{ inputs.python_version }}-${{ inputs.package_name }} -- -ra

CHANGELOG.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,5 @@ If your change does not need a CHANGELOG entry, add the "skip changelog" label t
1717
([#497](https://github.com/aws-observability/aws-otel-python-instrumentation/pull/497))
1818
- Fix timeout handling for exceeded deadline in retry logic in OTLPAwsLogsExporter
1919
([#501](https://github.com/aws-observability/aws-otel-python-instrumentation/pull/501))
20-
- Fix: Unable to run ADOT Python unit tests with latest Tox release
21-
([#521](https://github.com/aws-observability/aws-otel-python-instrumentation/pull/521))
2220
- Fix Gevent patch regression with correct import order
2321
([#522](https://github.com/aws-observability/aws-otel-python-instrumentation/pull/522))
24-
- Bump ADOT Python version to 0.13.0 and OTel dependencies to 1.37.0/0.58b0
25-
([#524](https://github.com/aws-observability/aws-otel-python-instrumentation/pull/524))
26-

aws-opentelemetry-distro/pyproject.toml

Lines changed: 55 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -26,63 +26,63 @@ classifiers = [
2626
]
2727

2828
dependencies = [
29-
"opentelemetry-api == 1.37.0",
30-
"opentelemetry-sdk == 1.37.0",
31-
"opentelemetry-exporter-otlp-proto-grpc == 1.37.0",
32-
"opentelemetry-exporter-otlp-proto-http == 1.37.0",
33-
"opentelemetry-propagator-b3 == 1.37.0",
34-
"opentelemetry-propagator-jaeger == 1.37.0",
35-
"opentelemetry-exporter-otlp-proto-common == 1.37.0",
29+
"opentelemetry-api == 1.33.1",
30+
"opentelemetry-sdk == 1.33.1",
31+
"opentelemetry-exporter-otlp-proto-grpc == 1.33.1",
32+
"opentelemetry-exporter-otlp-proto-http == 1.33.1",
33+
"opentelemetry-propagator-b3 == 1.33.1",
34+
"opentelemetry-propagator-jaeger == 1.33.1",
35+
"opentelemetry-exporter-otlp-proto-common == 1.33.1",
3636
"opentelemetry-sdk-extension-aws == 2.0.2",
3737
"opentelemetry-propagator-aws-xray == 1.0.1",
38-
"opentelemetry-distro == 0.58b0",
39-
"opentelemetry-processor-baggage == 0.58b0",
40-
"opentelemetry-propagator-ot-trace == 0.58b0",
41-
"opentelemetry-instrumentation == 0.58b0",
42-
"opentelemetry-instrumentation-aws-lambda == 0.58b0",
43-
"opentelemetry-instrumentation-aio-pika == 0.58b0",
44-
"opentelemetry-instrumentation-aiohttp-client == 0.58b0",
45-
"opentelemetry-instrumentation-aiokafka == 0.58b0",
46-
"opentelemetry-instrumentation-aiopg == 0.58b0",
47-
"opentelemetry-instrumentation-asgi == 0.58b0",
48-
"opentelemetry-instrumentation-asyncpg == 0.58b0",
49-
"opentelemetry-instrumentation-boto == 0.58b0",
50-
"opentelemetry-instrumentation-boto3sqs == 0.58b0",
51-
"opentelemetry-instrumentation-botocore == 0.58b0",
52-
"opentelemetry-instrumentation-celery == 0.58b0",
53-
"opentelemetry-instrumentation-confluent-kafka == 0.58b0",
54-
"opentelemetry-instrumentation-dbapi == 0.58b0",
55-
"opentelemetry-instrumentation-django == 0.58b0",
56-
"opentelemetry-instrumentation-elasticsearch == 0.58b0",
57-
"opentelemetry-instrumentation-falcon == 0.58b0",
58-
"opentelemetry-instrumentation-fastapi == 0.58b0",
59-
"opentelemetry-instrumentation-flask == 0.58b0",
60-
"opentelemetry-instrumentation-grpc == 0.58b0",
61-
"opentelemetry-instrumentation-httpx == 0.58b0",
62-
"opentelemetry-instrumentation-jinja2 == 0.58b0",
63-
"opentelemetry-instrumentation-kafka-python == 0.58b0",
64-
"opentelemetry-instrumentation-logging == 0.58b0",
65-
"opentelemetry-instrumentation-mysql == 0.58b0",
66-
"opentelemetry-instrumentation-mysqlclient == 0.58b0",
67-
"opentelemetry-instrumentation-pika == 0.58b0",
68-
"opentelemetry-instrumentation-psycopg2 == 0.58b0",
69-
"opentelemetry-instrumentation-pymemcache == 0.58b0",
70-
"opentelemetry-instrumentation-pymongo == 0.58b0",
71-
"opentelemetry-instrumentation-pymysql == 0.58b0",
72-
"opentelemetry-instrumentation-pyramid == 0.58b0",
73-
"opentelemetry-instrumentation-redis == 0.58b0",
74-
"opentelemetry-instrumentation-remoulade == 0.58b0",
75-
"opentelemetry-instrumentation-requests == 0.58b0",
76-
"opentelemetry-instrumentation-sqlalchemy == 0.58b0",
77-
"opentelemetry-instrumentation-sqlite3 == 0.58b0",
78-
"opentelemetry-instrumentation-starlette == 0.58b0",
79-
"opentelemetry-instrumentation-system-metrics == 0.58b0",
80-
"opentelemetry-instrumentation-tornado == 0.58b0",
81-
"opentelemetry-instrumentation-tortoiseorm == 0.58b0",
82-
"opentelemetry-instrumentation-urllib == 0.58b0",
83-
"opentelemetry-instrumentation-urllib3 == 0.58b0",
84-
"opentelemetry-instrumentation-wsgi == 0.58b0",
85-
"opentelemetry-instrumentation-cassandra == 0.58b0",
38+
"opentelemetry-distro == 0.54b1",
39+
"opentelemetry-processor-baggage == 0.54b1",
40+
"opentelemetry-propagator-ot-trace == 0.54b1",
41+
"opentelemetry-instrumentation == 0.54b1",
42+
"opentelemetry-instrumentation-aws-lambda == 0.54b1",
43+
"opentelemetry-instrumentation-aio-pika == 0.54b1",
44+
"opentelemetry-instrumentation-aiohttp-client == 0.54b1",
45+
"opentelemetry-instrumentation-aiokafka == 0.54b1",
46+
"opentelemetry-instrumentation-aiopg == 0.54b1",
47+
"opentelemetry-instrumentation-asgi == 0.54b1",
48+
"opentelemetry-instrumentation-asyncpg == 0.54b1",
49+
"opentelemetry-instrumentation-boto == 0.54b1",
50+
"opentelemetry-instrumentation-boto3sqs == 0.54b1",
51+
"opentelemetry-instrumentation-botocore == 0.54b1",
52+
"opentelemetry-instrumentation-celery == 0.54b1",
53+
"opentelemetry-instrumentation-confluent-kafka == 0.54b1",
54+
"opentelemetry-instrumentation-dbapi == 0.54b1",
55+
"opentelemetry-instrumentation-django == 0.54b1",
56+
"opentelemetry-instrumentation-elasticsearch == 0.54b1",
57+
"opentelemetry-instrumentation-falcon == 0.54b1",
58+
"opentelemetry-instrumentation-fastapi == 0.54b1",
59+
"opentelemetry-instrumentation-flask == 0.54b1",
60+
"opentelemetry-instrumentation-grpc == 0.54b1",
61+
"opentelemetry-instrumentation-httpx == 0.54b1",
62+
"opentelemetry-instrumentation-jinja2 == 0.54b1",
63+
"opentelemetry-instrumentation-kafka-python == 0.54b1",
64+
"opentelemetry-instrumentation-logging == 0.54b1",
65+
"opentelemetry-instrumentation-mysql == 0.54b1",
66+
"opentelemetry-instrumentation-mysqlclient == 0.54b1",
67+
"opentelemetry-instrumentation-pika == 0.54b1",
68+
"opentelemetry-instrumentation-psycopg2 == 0.54b1",
69+
"opentelemetry-instrumentation-pymemcache == 0.54b1",
70+
"opentelemetry-instrumentation-pymongo == 0.54b1",
71+
"opentelemetry-instrumentation-pymysql == 0.54b1",
72+
"opentelemetry-instrumentation-pyramid == 0.54b1",
73+
"opentelemetry-instrumentation-redis == 0.54b1",
74+
"opentelemetry-instrumentation-remoulade == 0.54b1",
75+
"opentelemetry-instrumentation-requests == 0.54b1",
76+
"opentelemetry-instrumentation-sqlalchemy == 0.54b1",
77+
"opentelemetry-instrumentation-sqlite3 == 0.54b1",
78+
"opentelemetry-instrumentation-starlette == 0.54b1",
79+
"opentelemetry-instrumentation-system-metrics == 0.54b1",
80+
"opentelemetry-instrumentation-tornado == 0.54b1",
81+
"opentelemetry-instrumentation-tortoiseorm == 0.54b1",
82+
"opentelemetry-instrumentation-urllib == 0.54b1",
83+
"opentelemetry-instrumentation-urllib3 == 0.54b1",
84+
"opentelemetry-instrumentation-wsgi == 0.54b1",
85+
"opentelemetry-instrumentation-cassandra == 0.54b1",
8686
]
8787

8888
[project.optional-dependencies]

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/aws_batch_unsampled_span_processor.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@
1212

1313

1414
class BatchUnsampledSpanProcessor(BaseBatchSpanProcessor):
15-
def __init__(self, *args, **kwargs):
16-
super().__init__(*args, **kwargs)
17-
self._spans_dropped = False
1815

1916
# pylint: disable=no-self-use
2017
def on_start(self, span: Span, parent_context: Optional[Context] = None) -> None:
@@ -25,18 +22,19 @@ def on_end(self, span: ReadableSpan) -> None:
2522
if span.context.trace_flags.sampled:
2623
return
2724

28-
if self._batch_processor._shutdown:
25+
if self.done:
2926
logger.warning("Already shutdown, dropping span.")
3027
return
3128

32-
if len(self._batch_processor._queue) == self._batch_processor._max_queue_size:
29+
if len(self.queue) == self.max_queue_size:
3330
# pylint: disable=access-member-before-definition
3431
if not self._spans_dropped:
3532
logger.warning("Queue is full, likely spans will be dropped.")
3633
# pylint: disable=attribute-defined-outside-init
3734
self._spans_dropped = True
3835

39-
self._batch_processor._queue.appendleft(span)
36+
self.queue.appendleft(span)
4037

41-
if len(self._batch_processor._queue) >= self._batch_processor._max_export_batch_size:
42-
self._batch_processor._worker_awaken.set()
38+
if len(self.queue) >= self.max_export_batch_size:
39+
with self.condition:
40+
self.condition.notify()

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/aws_opentelemetry_configurator.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
_import_id_generator,
4444
_import_sampler,
4545
_OTelSDKConfigurator,
46-
_overwrite_logging_config_fns,
46+
_patch_basic_config,
4747
)
4848
from opentelemetry.sdk._events import EventLoggerProvider
4949
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
@@ -230,10 +230,11 @@ def _init_logging(
230230
set_event_logger_provider(event_logger_provider)
231231

232232
if setup_logging_handler:
233+
_patch_basic_config()
234+
233235
# Add OTel handler
234236
handler = LoggingHandler(level=logging.NOTSET, logger_provider=provider)
235237
logging.getLogger().addHandler(handler)
236-
_overwrite_logging_config_fns(handler)
237238

238239

239240
def _init_tracing(

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/exporter/otlp/aws/logs/_aws_cw_otlp_batch_log_record_processor.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
from amazon.opentelemetry.distro.exporter.otlp.aws.logs.otlp_aws_logs_exporter import OTLPAwsLogExporter
99
from opentelemetry.context import _SUPPRESS_INSTRUMENTATION_KEY, attach, detach, set_value
1010
from opentelemetry.sdk._logs import LogData
11+
from opentelemetry.sdk._logs._internal.export import BatchLogExportStrategy
1112
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
12-
from opentelemetry.sdk._shared_internal import BatchExportStrategy
1313
from opentelemetry.util.types import AnyValue
1414

1515
_logger = logging.getLogger(__name__)
@@ -89,7 +89,7 @@ def __init__(
8989

9090
self._exporter = exporter
9191

92-
def _export(self, batch_strategy: BatchExportStrategy) -> None:
92+
def _export(self, batch_strategy: BatchLogExportStrategy) -> None:
9393
"""
9494
Explicitly overrides upstream _export method to add AWS CloudWatch size-based batching
9595
See:
@@ -102,20 +102,20 @@ def _export(self, batch_strategy: BatchExportStrategy) -> None:
102102
- Estimated data size of exported batches will typically be <= 1 MB except for the case below:
103103
- If the estimated data size of an exported batch is ever > 1 MB then the batch size is guaranteed to be 1
104104
"""
105-
with self._batch_processor._export_lock:
105+
with self._export_lock:
106106
iteration = 0
107107
# We could see concurrent export calls from worker and force_flush. We call _should_export_batch
108108
# once the lock is obtained to see if we still need to make the requested export.
109-
while self._batch_processor._should_export_batch(batch_strategy, iteration):
109+
while self._should_export_batch(batch_strategy, iteration):
110110
iteration += 1
111111
token = attach(set_value(_SUPPRESS_INSTRUMENTATION_KEY, True))
112112
try:
113-
batch_length = min(self._batch_processor._max_export_batch_size, len(self._batch_processor._queue))
113+
batch_length = min(self._max_export_batch_size, len(self._queue))
114114
batch_data_size = 0
115115
batch = []
116116

117117
for _ in range(batch_length):
118-
log_data: LogData = self._batch_processor._queue.pop()
118+
log_data: LogData = self._queue.pop()
119119
log_size = self._estimate_log_size(log_data)
120120

121121
if batch and (batch_data_size + log_size > self._MAX_LOG_REQUEST_BYTE_SIZE):
@@ -252,7 +252,7 @@ def _estimate_utf8_size(s: str):
252252
# https://github.com/open-telemetry/opentelemetry-python/issues/3193
253253
# https://github.com/open-telemetry/opentelemetry-python/blob/main/opentelemetry-sdk/src/opentelemetry/sdk/_shared_internal/__init__.py#L199
254254
def force_flush(self, timeout_millis: Optional[int] = None) -> bool:
255-
if self._batch_processor._shutdown:
255+
if self._shutdown:
256256
return False
257-
self._export(BatchExportStrategy.EXPORT_AT_LEAST_ONE_BATCH)
257+
self._export(BatchLogExportStrategy.EXPORT_AT_LEAST_ONE_BATCH)
258258
return True

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/exporter/otlp/aws/logs/otlp_aws_logs_exporter.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
from amazon.opentelemetry.distro.exporter.otlp.aws.common.aws_auth_session import AwsAuthSession
1919
from opentelemetry.exporter.otlp.proto.common._log_encoder import encode_logs
2020
from opentelemetry.exporter.otlp.proto.http import Compression
21-
from opentelemetry.exporter.otlp.proto.http._common import _is_retryable
2221
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
2322
from opentelemetry.sdk._logs import LogData
2423
from opentelemetry.sdk._logs.export import LogExportResult
@@ -172,7 +171,7 @@ def _retryable(resp: Response) -> bool:
172171
"""
173172
# See: https://opentelemetry.io/docs/specs/otlp/#otlphttp-throttling
174173

175-
return resp.status_code in (429, 503) or _is_retryable(resp)
174+
return resp.status_code in (429, 503) or OTLPLogExporter._retryable(resp)
176175

177176
def _get_retry_delay_sec(self, headers: CaseInsensitiveDict, retry_num: int) -> float:
178177
"""
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
# SPDX-License-Identifier: Apache-2.0
33

4-
__version__ = "0.13.0.dev0"
4+
__version__ = "0.12.1.dev0"

0 commit comments

Comments
 (0)