Skip to content

Commit 1a42e4d

Browse files
authored
Merge branch 'main' into botocore-stream-close-handle
2 parents 6207af1 + c1a6895 commit 1a42e4d

File tree

3 files changed

+70
-59
lines changed
  • instrumentation
    • opentelemetry-instrumentation-aiohttp-server/src/opentelemetry/instrumentation/aiohttp_server
    • opentelemetry-instrumentation-redis

3 files changed

+70
-59
lines changed

instrumentation/opentelemetry-instrumentation-aiohttp-server/src/opentelemetry/instrumentation/aiohttp_server/__init__.py

Lines changed: 41 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -54,29 +54,44 @@ async def hello(request):
5454
)
5555
from opentelemetry.propagate import extract
5656
from opentelemetry.propagators.textmap import Getter
57+
from opentelemetry.semconv._incubating.attributes.http_attributes import (
58+
HTTP_FLAVOR,
59+
HTTP_HOST,
60+
HTTP_METHOD,
61+
HTTP_ROUTE,
62+
HTTP_SCHEME,
63+
HTTP_SERVER_NAME,
64+
HTTP_STATUS_CODE,
65+
HTTP_TARGET,
66+
HTTP_URL,
67+
HTTP_USER_AGENT,
68+
)
69+
from opentelemetry.semconv._incubating.attributes.net_attributes import (
70+
NET_HOST_NAME,
71+
NET_HOST_PORT,
72+
)
5773
from opentelemetry.semconv.metrics import MetricInstruments
58-
from opentelemetry.semconv.trace import SpanAttributes
5974
from opentelemetry.trace.status import Status, StatusCode
6075
from opentelemetry.util.http import get_excluded_urls, remove_url_credentials
6176

6277
_duration_attrs = [
63-
SpanAttributes.HTTP_METHOD,
64-
SpanAttributes.HTTP_HOST,
65-
SpanAttributes.HTTP_SCHEME,
66-
SpanAttributes.HTTP_STATUS_CODE,
67-
SpanAttributes.HTTP_FLAVOR,
68-
SpanAttributes.HTTP_SERVER_NAME,
69-
SpanAttributes.NET_HOST_NAME,
70-
SpanAttributes.NET_HOST_PORT,
71-
SpanAttributes.HTTP_ROUTE,
78+
HTTP_METHOD,
79+
HTTP_HOST,
80+
HTTP_SCHEME,
81+
HTTP_STATUS_CODE,
82+
HTTP_FLAVOR,
83+
HTTP_SERVER_NAME,
84+
NET_HOST_NAME,
85+
NET_HOST_PORT,
86+
HTTP_ROUTE,
7287
]
7388

7489
_active_requests_count_attrs = [
75-
SpanAttributes.HTTP_METHOD,
76-
SpanAttributes.HTTP_HOST,
77-
SpanAttributes.HTTP_SCHEME,
78-
SpanAttributes.HTTP_FLAVOR,
79-
SpanAttributes.HTTP_SERVER_NAME,
90+
HTTP_METHOD,
91+
HTTP_HOST,
92+
HTTP_SCHEME,
93+
HTTP_FLAVOR,
94+
HTTP_SERVER_NAME,
8095
]
8196

8297
tracer = trace.get_tracer(__name__)
@@ -140,29 +155,27 @@ def collect_request_attributes(request: web.Request) -> Dict:
140155
http_url += "?" + urllib.parse.unquote(query_string)
141156

142157
result = {
143-
SpanAttributes.HTTP_SCHEME: request.scheme,
144-
SpanAttributes.HTTP_HOST: server_host,
145-
SpanAttributes.NET_HOST_PORT: port,
146-
SpanAttributes.HTTP_ROUTE: _get_view_func(request),
147-
SpanAttributes.HTTP_FLAVOR: f"{request.version.major}.{request.version.minor}",
148-
SpanAttributes.HTTP_TARGET: request.path,
149-
SpanAttributes.HTTP_URL: remove_url_credentials(http_url),
158+
HTTP_SCHEME: request.scheme,
159+
HTTP_HOST: server_host,
160+
NET_HOST_PORT: port,
161+
HTTP_ROUTE: _get_view_func(request),
162+
HTTP_FLAVOR: f"{request.version.major}.{request.version.minor}",
163+
HTTP_TARGET: request.path,
164+
HTTP_URL: remove_url_credentials(http_url),
150165
}
151166

152167
http_method = request.method
153168
if http_method:
154-
result[SpanAttributes.HTTP_METHOD] = http_method
169+
result[HTTP_METHOD] = http_method
155170

156171
http_host_value_list = (
157172
[request.host] if not isinstance(request.host, list) else request.host
158173
)
159174
if http_host_value_list:
160-
result[SpanAttributes.HTTP_SERVER_NAME] = ",".join(
161-
http_host_value_list
162-
)
175+
result[HTTP_SERVER_NAME] = ",".join(http_host_value_list)
163176
http_user_agent = request.headers.get("user-agent")
164177
if http_user_agent:
165-
result[SpanAttributes.HTTP_USER_AGENT] = http_user_agent
178+
result[HTTP_USER_AGENT] = http_user_agent
166179

167180
# remove None values
168181
result = {k: v for k, v in result.items() if v is not None}
@@ -183,7 +196,7 @@ def set_status_code(span, status_code: int) -> None:
183196
)
184197
)
185198
else:
186-
span.set_attribute(SpanAttributes.HTTP_STATUS_CODE, status_code)
199+
span.set_attribute(HTTP_STATUS_CODE, status_code)
187200
span.set_status(
188201
Status(http_status_to_status_code(status_code, server_span=True))
189202
)

instrumentation/opentelemetry-instrumentation-redis/src/opentelemetry/instrumentation/redis/__init__.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,9 @@ def response_hook(span, instance, response):
135135
)
136136
from opentelemetry.instrumentation.redis.version import __version__
137137
from opentelemetry.instrumentation.utils import unwrap
138-
from opentelemetry.semconv.trace import SpanAttributes
138+
from opentelemetry.semconv._incubating.attributes.db_attributes import (
139+
DB_STATEMENT,
140+
)
139141
from opentelemetry.trace import (
140142
StatusCode,
141143
Tracer,
@@ -200,7 +202,7 @@ def _traced_execute_command(
200202
name, kind=trace.SpanKind.CLIENT
201203
) as span:
202204
if span.is_recording():
203-
span.set_attribute(SpanAttributes.DB_STATEMENT, query)
205+
span.set_attribute(DB_STATEMENT, query)
204206
_set_connection_attributes(span, instance)
205207
span.set_attribute("db.redis.args_length", len(args))
206208
if span.name == "redis.create_index":
@@ -239,7 +241,7 @@ def _traced_execute_pipeline(
239241
span_name, kind=trace.SpanKind.CLIENT
240242
) as span:
241243
if span.is_recording():
242-
span.set_attribute(SpanAttributes.DB_STATEMENT, resource)
244+
span.set_attribute(DB_STATEMENT, resource)
243245
_set_connection_attributes(span, instance)
244246
span.set_attribute(
245247
"db.redis.pipeline_length", len(command_stack)
@@ -281,7 +283,7 @@ async def _async_traced_execute_command(
281283
name, kind=trace.SpanKind.CLIENT
282284
) as span:
283285
if span.is_recording():
284-
span.set_attribute(SpanAttributes.DB_STATEMENT, query)
286+
span.set_attribute(DB_STATEMENT, query)
285287
_set_connection_attributes(span, instance)
286288
span.set_attribute("db.redis.args_length", len(args))
287289
if callable(request_hook):
@@ -317,7 +319,7 @@ async def _async_traced_execute_pipeline(
317319
span_name, kind=trace.SpanKind.CLIENT
318320
) as span:
319321
if span.is_recording():
320-
span.set_attribute(SpanAttributes.DB_STATEMENT, resource)
322+
span.set_attribute(DB_STATEMENT, resource)
321323
_set_connection_attributes(span, instance)
322324
span.set_attribute(
323325
"db.redis.pipeline_length", len(command_stack)

instrumentation/opentelemetry-instrumentation-redis/tests/test_redis.py

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,16 @@
2525

2626
from opentelemetry import trace
2727
from opentelemetry.instrumentation.redis import RedisInstrumentor
28-
from opentelemetry.semconv.trace import (
28+
from opentelemetry.semconv._incubating.attributes.db_attributes import (
29+
DB_REDIS_DATABASE_INDEX,
30+
DB_SYSTEM,
2931
DbSystemValues,
32+
)
33+
from opentelemetry.semconv._incubating.attributes.net_attributes import (
34+
NET_PEER_NAME,
35+
NET_PEER_PORT,
36+
NET_TRANSPORT,
3037
NetTransportValues,
31-
SpanAttributes,
3238
)
3339
from opentelemetry.test.test_base import TestBase
3440
from opentelemetry.trace import SpanKind
@@ -257,18 +263,14 @@ def test_attributes_default(self):
257263

258264
span = spans[0]
259265
self.assertEqual(
260-
span.attributes[SpanAttributes.DB_SYSTEM],
266+
span.attributes[DB_SYSTEM],
261267
DbSystemValues.REDIS.value,
262268
)
269+
self.assertEqual(span.attributes[DB_REDIS_DATABASE_INDEX], 0)
270+
self.assertEqual(span.attributes[NET_PEER_NAME], "localhost")
271+
self.assertEqual(span.attributes[NET_PEER_PORT], 6379)
263272
self.assertEqual(
264-
span.attributes[SpanAttributes.DB_REDIS_DATABASE_INDEX], 0
265-
)
266-
self.assertEqual(
267-
span.attributes[SpanAttributes.NET_PEER_NAME], "localhost"
268-
)
269-
self.assertEqual(span.attributes[SpanAttributes.NET_PEER_PORT], 6379)
270-
self.assertEqual(
271-
span.attributes[SpanAttributes.NET_TRANSPORT],
273+
span.attributes[NET_TRANSPORT],
272274
NetTransportValues.IP_TCP.value,
273275
)
274276

@@ -283,18 +285,14 @@ def test_attributes_tcp(self):
283285

284286
span = spans[0]
285287
self.assertEqual(
286-
span.attributes[SpanAttributes.DB_SYSTEM],
288+
span.attributes[DB_SYSTEM],
287289
DbSystemValues.REDIS.value,
288290
)
291+
self.assertEqual(span.attributes[DB_REDIS_DATABASE_INDEX], 1)
292+
self.assertEqual(span.attributes[NET_PEER_NAME], "1.1.1.1")
293+
self.assertEqual(span.attributes[NET_PEER_PORT], 6380)
289294
self.assertEqual(
290-
span.attributes[SpanAttributes.DB_REDIS_DATABASE_INDEX], 1
291-
)
292-
self.assertEqual(
293-
span.attributes[SpanAttributes.NET_PEER_NAME], "1.1.1.1"
294-
)
295-
self.assertEqual(span.attributes[SpanAttributes.NET_PEER_PORT], 6380)
296-
self.assertEqual(
297-
span.attributes[SpanAttributes.NET_TRANSPORT],
295+
span.attributes[NET_TRANSPORT],
298296
NetTransportValues.IP_TCP.value,
299297
)
300298

@@ -311,18 +309,16 @@ def test_attributes_unix_socket(self):
311309

312310
span = spans[0]
313311
self.assertEqual(
314-
span.attributes[SpanAttributes.DB_SYSTEM],
312+
span.attributes[DB_SYSTEM],
315313
DbSystemValues.REDIS.value,
316314
)
315+
self.assertEqual(span.attributes[DB_REDIS_DATABASE_INDEX], 3)
317316
self.assertEqual(
318-
span.attributes[SpanAttributes.DB_REDIS_DATABASE_INDEX], 3
319-
)
320-
self.assertEqual(
321-
span.attributes[SpanAttributes.NET_PEER_NAME],
317+
span.attributes[NET_PEER_NAME],
322318
"/path/to/socket.sock",
323319
)
324320
self.assertEqual(
325-
span.attributes[SpanAttributes.NET_TRANSPORT],
321+
span.attributes[NET_TRANSPORT],
326322
NetTransportValues.OTHER.value,
327323
)
328324

0 commit comments

Comments
 (0)