Skip to content

Commit 7a5aeb0

Browse files
f-kanarixrmx
authored andcommitted
refactor(tornado): replaces SpanAttributes by semconv attributes (open-telemetry#3582)
* refactor: fix import paths * fix imports --------- Co-authored-by: Riccardo Magliocchetti <[email protected]>
1 parent 4e7ff6c commit 7a5aeb0

File tree

3 files changed

+125
-109
lines changed

3 files changed

+125
-109
lines changed

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

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,19 @@ def client_response_hook(span, future):
182182
from opentelemetry.metrics import get_meter
183183
from opentelemetry.metrics._internal.instrument import Histogram
184184
from opentelemetry.propagators import textmap
185+
from opentelemetry.semconv._incubating.attributes.http_attributes import (
186+
HTTP_CLIENT_IP,
187+
HTTP_FLAVOR,
188+
HTTP_HOST,
189+
HTTP_METHOD,
190+
HTTP_SCHEME,
191+
HTTP_STATUS_CODE,
192+
HTTP_TARGET,
193+
)
194+
from opentelemetry.semconv._incubating.attributes.net_attributes import (
195+
NET_PEER_IP,
196+
)
185197
from opentelemetry.semconv.metrics import MetricInstruments
186-
from opentelemetry.semconv.trace import SpanAttributes
187198
from opentelemetry.trace.status import Status, StatusCode
188199
from opentelemetry.util.http import (
189200
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST,
@@ -446,23 +457,21 @@ def _collect_custom_response_headers_attributes(response_headers):
446457

447458
def _get_attributes_from_request(request):
448459
attrs = {
449-
SpanAttributes.HTTP_METHOD: request.method,
450-
SpanAttributes.HTTP_SCHEME: request.protocol,
451-
SpanAttributes.HTTP_HOST: request.host,
452-
SpanAttributes.HTTP_TARGET: request.path,
460+
HTTP_METHOD: request.method,
461+
HTTP_SCHEME: request.protocol,
462+
HTTP_HOST: request.host,
463+
HTTP_TARGET: request.path,
453464
}
454465

455466
if request.remote_ip:
456467
# NET_PEER_IP is the address of the network peer
457468
# HTTP_CLIENT_IP is the address of the client, which might be different
458469
# if Tornado is set to trust X-Forwarded-For headers (xheaders=True)
459-
attrs[SpanAttributes.HTTP_CLIENT_IP] = request.remote_ip
470+
attrs[HTTP_CLIENT_IP] = request.remote_ip
460471
if hasattr(request.connection, "context") and getattr(
461472
request.connection.context, "_orig_remote_ip", None
462473
):
463-
attrs[SpanAttributes.NET_PEER_IP] = (
464-
request.connection.context._orig_remote_ip
465-
)
474+
attrs[NET_PEER_IP] = request.connection.context._orig_remote_ip
466475

467476
return extract_attributes_from_object(
468477
request, _traced_request_attrs, attrs
@@ -554,7 +563,7 @@ def _finish_span(tracer, handler, error=None):
554563
return
555564

556565
if ctx.span.is_recording():
557-
ctx.span.set_attribute(SpanAttributes.HTTP_STATUS_CODE, status_code)
566+
ctx.span.set_attribute(HTTP_STATUS_CODE, status_code)
558567
otel_status_code = http_status_to_status_code(
559568
status_code, server_span=True
560569
)
@@ -607,7 +616,7 @@ def _record_on_finish_metrics(server_histograms, handler, error=None):
607616
metric_attributes = _create_metric_attributes(handler)
608617

609618
if isinstance(error, tornado.web.HTTPError):
610-
metric_attributes[SpanAttributes.HTTP_STATUS_CODE] = error.status_code
619+
metric_attributes[HTTP_STATUS_CODE] = error.status_code
611620

612621
server_histograms[MetricInstruments.HTTP_SERVER_RESPONSE_SIZE].record(
613622
response_size, attributes=metric_attributes
@@ -627,18 +636,18 @@ def _record_on_finish_metrics(server_histograms, handler, error=None):
627636

628637
def _create_active_requests_attributes(request):
629638
metric_attributes = {
630-
SpanAttributes.HTTP_METHOD: request.method,
631-
SpanAttributes.HTTP_SCHEME: request.protocol,
632-
SpanAttributes.HTTP_FLAVOR: request.version,
633-
SpanAttributes.HTTP_HOST: request.host,
634-
SpanAttributes.HTTP_TARGET: request.path,
639+
HTTP_METHOD: request.method,
640+
HTTP_SCHEME: request.protocol,
641+
HTTP_FLAVOR: request.version,
642+
HTTP_HOST: request.host,
643+
HTTP_TARGET: request.path,
635644
}
636645

637646
return metric_attributes
638647

639648

640649
def _create_metric_attributes(handler):
641650
metric_attributes = _create_active_requests_attributes(handler.request)
642-
metric_attributes[SpanAttributes.HTTP_STATUS_CODE] = handler.get_status()
651+
metric_attributes[HTTP_STATUS_CODE] = handler.get_status()
643652

644653
return metric_attributes

instrumentation/opentelemetry-instrumentation-tornado/src/opentelemetry/instrumentation/tornado/client.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@
2020
from opentelemetry import trace
2121
from opentelemetry.instrumentation.utils import http_status_to_status_code
2222
from opentelemetry.propagate import inject
23-
from opentelemetry.semconv.trace import SpanAttributes
23+
from opentelemetry.semconv._incubating.attributes.http_attributes import (
24+
HTTP_METHOD,
25+
HTTP_STATUS_CODE,
26+
HTTP_URL,
27+
)
2428
from opentelemetry.trace.status import Status, StatusCode
2529
from opentelemetry.util.http import remove_url_credentials
2630

@@ -75,8 +79,8 @@ def fetch_async(
7579

7680
if span.is_recording():
7781
attributes = {
78-
SpanAttributes.HTTP_URL: remove_url_credentials(request.url),
79-
SpanAttributes.HTTP_METHOD: request.method,
82+
HTTP_URL: remove_url_credentials(request.url),
83+
HTTP_METHOD: request.method,
8084
}
8185
for key, value in attributes.items():
8286
span.set_attribute(key, value)
@@ -135,7 +139,7 @@ def _finish_tracing_callback(
135139
)
136140

137141
if status_code is not None:
138-
span.set_attribute(SpanAttributes.HTTP_STATUS_CODE, status_code)
142+
span.set_attribute(HTTP_STATUS_CODE, status_code)
139143
span.set_status(status)
140144

141145
if response is not None:
@@ -160,9 +164,9 @@ def _finish_tracing_callback(
160164

161165
def _create_metric_attributes(response):
162166
metric_attributes = {
163-
SpanAttributes.HTTP_STATUS_CODE: response.code,
164-
SpanAttributes.HTTP_URL: remove_url_credentials(response.request.url),
165-
SpanAttributes.HTTP_METHOD: response.request.method,
167+
HTTP_STATUS_CODE: response.code,
168+
HTTP_URL: remove_url_credentials(response.request.url),
169+
HTTP_METHOD: response.request.method,
166170
}
167171

168172
return metric_attributes

0 commit comments

Comments
 (0)