Skip to content

Commit eb9f9e0

Browse files
committed
2 parents 2eb0d59 + bf97e17 commit eb9f9e0

File tree

22 files changed

+279
-222
lines changed

22 files changed

+279
-222
lines changed

CHANGELOG.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88
## [Unreleased](https://github.com/open-telemetry/opentelemetry-python/compare/v1.3.0-0.22b0...HEAD)
9+
- `opentelemetry-sdk-extension-aws` Update AWS entry points to match spec
10+
([#566](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/566))
911
- Include Flask 2.0 as compatible with existing flask instrumentation
1012
([#545](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/545))
11-
13+
- `openelemetry-sdk-extension-aws` Take a dependency on `opentelemetry-sdk`
14+
([#558](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/558))
1215
### Changed
1316
- `opentelemetry-instrumentation-tornado` properly instrument work done in tornado on_finish method.
1417
([#499](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/499))
@@ -21,6 +24,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2124
([#538](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/538))
2225
- Changed the psycopg2-binary to psycopg2 as dependency in production
2326
([#543](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/543))
27+
- Require aiopg to be less than 1.3.0
28+
([#560](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/560))
29+
- `opentelemetry-instrumentation-django` Migrated Django middleware to new-style.
30+
([#533](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/533))
2431

2532
### Added
2633
- `opentelemetry-instrumentation-httpx` Add `httpx` instrumentation

docs-requirements.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ sphinx-autodoc-typehints
88
-e "git+https://github.com/open-telemetry/opentelemetry-python.git#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions"
99
-e "git+https://github.com/open-telemetry/opentelemetry-python-contrib.git#egg=opentelemetry-instrumentation&subdirectory=opentelemetry-instrumentation"
1010
-e "git+https://github.com/open-telemetry/opentelemetry-python.git#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk"
11+
-e "git+https://github.com/open-telemetry/opentelemetry-python-contrib.git#egg=opentelemetry-util-http&subdirectory=util/opentelemetry-util-http"
1112

1213
# Required by opentelemetry-instrumentation
1314
fastapi>=0.65.2
@@ -19,7 +20,7 @@ django>=2.2
1920

2021
# Required by instrumentation and exporter packages
2122
aiohttp~=3.0
22-
aiopg>=0.13.0
23+
aiopg>=0.13.0,<1.3.0
2324
asyncpg>=0.12.0
2425
boto~=2.0
2526
botocore~=1.0

instrumentation/opentelemetry-instrumentation-aiopg/src/opentelemetry/instrumentation/aiopg/aiopg_integration.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import typing
22

33
import wrapt
4-
from aiopg.utils import _ContextManager, _PoolAcquireContextManager
4+
from aiopg.utils import ( # pylint: disable=no-name-in-module
5+
_ContextManager,
6+
_PoolAcquireContextManager,
7+
)
58

69
from opentelemetry.instrumentation.dbapi import (
710
CursorTracer,
@@ -61,7 +64,9 @@ def __init__(self, connection, *args, **kwargs):
6164

6265
def cursor(self, *args, **kwargs):
6366
coro = self._cursor(*args, **kwargs)
64-
return _ContextManager(coro)
67+
return _ContextManager( # pylint: disable=no-value-for-parameter
68+
coro
69+
)
6570

6671
async def _cursor(self, *args, **kwargs):
6772
# pylint: disable=protected-access

instrumentation/opentelemetry-instrumentation-aiopg/src/opentelemetry/instrumentation/aiopg/package.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
# limitations under the License.
1414

1515

16-
_instruments = ("aiopg >= 0.13.0",)
16+
_instruments = ("aiopg >= 0.13.0, < 1.3.0",)

instrumentation/opentelemetry-instrumentation-aiopg/src/opentelemetry/instrumentation/aiopg/wrappers.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@
3434

3535
import aiopg
3636
import wrapt
37-
from aiopg.utils import _ContextManager, _PoolContextManager
37+
from aiopg.utils import ( # pylint: disable=no-name-in-module
38+
_ContextManager,
39+
_PoolContextManager,
40+
)
3841

3942
from opentelemetry.instrumentation.aiopg.aiopg_integration import (
4043
AiopgIntegration,
@@ -108,7 +111,7 @@ def wrap_connect_(
108111
version=version,
109112
tracer_provider=tracer_provider,
110113
)
111-
return _ContextManager(
114+
return _ContextManager( # pylint: disable=no-value-for-parameter
112115
db_integration.wrapped_connection(wrapped, args, kwargs)
113116
)
114117

instrumentation/opentelemetry-instrumentation-aiopg/tests/test_aiopg_integration.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717
from unittest.mock import MagicMock
1818

1919
import aiopg
20-
from aiopg.utils import _ContextManager, _PoolAcquireContextManager
20+
from aiopg.utils import ( # pylint: disable=no-name-in-module
21+
_ContextManager,
22+
_PoolAcquireContextManager,
23+
)
2124

2225
import opentelemetry.instrumentation.aiopg
2326
from opentelemetry import trace as trace_api
@@ -525,7 +528,7 @@ def __init__(self, database, server_port, server_host, user):
525528
# pylint: disable=no-self-use
526529
def cursor(self):
527530
coro = self._cursor()
528-
return _ContextManager(coro)
531+
return _ContextManager(coro) # pylint: disable=no-value-for-parameter
529532

530533
async def _cursor(self):
531534
return MockCursor()

instrumentation/opentelemetry-instrumentation-asgi/tests/test_asgi_middleware.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import sys
1616
import unittest
17-
import unittest.mock as mock
17+
from unittest import mock
1818

1919
import opentelemetry.instrumentation.asgi as otel_asgi
2020
from opentelemetry import trace as trace_api

instrumentation/opentelemetry-instrumentation-django/src/opentelemetry/instrumentation/django/middleware.py

+26-4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from time import time
1717
from typing import Callable
1818

19+
from django import VERSION as django_version
1920
from django.http import HttpRequest, HttpResponse
2021

2122
from opentelemetry.context import attach, detach
@@ -42,10 +43,31 @@
4243
except ImportError:
4344
from django.urls import Resolver404, resolve
4445

45-
try:
46-
from django.utils.deprecation import MiddlewareMixin
47-
except ImportError:
48-
MiddlewareMixin = object
46+
DJANGO_2_0 = django_version >= (2, 0)
47+
48+
if DJANGO_2_0:
49+
# Since Django 2.0, only `settings.MIDDLEWARE` is supported, so new-style
50+
# middlewares can be used.
51+
class MiddlewareMixin:
52+
def __init__(self, get_response):
53+
self.get_response = get_response
54+
55+
def __call__(self, request):
56+
self.process_request(request)
57+
response = self.get_response(request)
58+
return self.process_response(request, response)
59+
60+
61+
else:
62+
# Django versions 1.x can use `settings.MIDDLEWARE_CLASSES` and expect
63+
# old-style middlewares, which are created by inheriting from
64+
# `deprecation.MiddlewareMixin` since its creation in Django 1.10 and 1.11,
65+
# or from `object` for older versions.
66+
try:
67+
from django.utils.deprecation import MiddlewareMixin
68+
except ImportError:
69+
MiddlewareMixin = object
70+
4971

5072
_logger = getLogger(__name__)
5173
_attributes_by_preference = [

instrumentation/opentelemetry-instrumentation-grpc/tests/_server.py

+1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ def BidirectionalStreamingMethod(self, request_iterator, context):
7979

8080

8181
def create_test_server(port):
82+
# pylint: disable=consider-using-with
8283
server = grpc.server(futures.ThreadPoolExecutor(max_workers=1))
8384

8485
test_server_pb2_grpc.add_GRPCTestServerServicer_to_server(

0 commit comments

Comments
 (0)