Skip to content

Commit 4e42ed6

Browse files
weslayerxrmx
andauthored
refactor(boto): replace uses of SpanAttributes with opentelemetry.semconv.attributes (#3538)
* refactor: migrate http_attributes from SpanAttributes to new semantic conventions and refactor tests * fix precommit linting --------- Co-authored-by: Riccardo Magliocchetti <[email protected]>
1 parent 72f437c commit 4e42ed6

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

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

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,10 @@
5252
from opentelemetry.instrumentation.boto.version import __version__
5353
from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
5454
from opentelemetry.instrumentation.utils import unwrap
55-
from opentelemetry.semconv.trace import SpanAttributes
55+
from opentelemetry.semconv._incubating.attributes.http_attributes import (
56+
HTTP_METHOD,
57+
HTTP_STATUS_CODE,
58+
)
5659
from opentelemetry.trace import SpanKind, get_tracer
5760

5861
logger = logging.getLogger(__name__)
@@ -158,12 +161,8 @@ def _common_request( # pylint: disable=too-many-locals
158161
for key, value in meta.items():
159162
span.set_attribute(key, value)
160163

161-
span.set_attribute(
162-
SpanAttributes.HTTP_STATUS_CODE, getattr(result, "status")
163-
)
164-
span.set_attribute(
165-
SpanAttributes.HTTP_METHOD, getattr(result, "_method")
166-
)
164+
span.set_attribute(HTTP_STATUS_CODE, getattr(result, "status"))
165+
span.set_attribute(HTTP_METHOD, getattr(result, "_method"))
167166

168167
return result
169168

instrumentation/opentelemetry-instrumentation-boto/tests/test_boto_instrumentation.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,16 @@
2828
)
2929

3030
from opentelemetry.instrumentation.boto import BotoInstrumentor
31-
from opentelemetry.semconv.trace import SpanAttributes
31+
from opentelemetry.semconv._incubating.attributes.http_attributes import (
32+
HTTP_METHOD,
33+
HTTP_STATUS_CODE,
34+
)
3235
from opentelemetry.test.test_base import TestBase
3336

3437

3538
def assert_span_http_status_code(span, code):
3639
"""Assert on the span's 'http.status_code' tag"""
37-
tag = span.attributes[SpanAttributes.HTTP_STATUS_CODE]
40+
tag = span.attributes[HTTP_STATUS_CODE]
3841
assert tag == code, f"{tag} != {code}"
3942

4043

@@ -60,7 +63,7 @@ def test_ec2_client(self):
6063
span = spans[0]
6164
self.assertEqual(span.attributes["aws.operation"], "DescribeInstances")
6265
assert_span_http_status_code(span, 200)
63-
self.assertEqual(span.attributes[SpanAttributes.HTTP_METHOD], "POST")
66+
self.assertEqual(span.attributes[HTTP_METHOD], "POST")
6467
self.assertEqual(span.attributes["aws.region"], "us-west-2")
6568

6669
# Create an instance
@@ -73,7 +76,7 @@ def test_ec2_client(self):
7376
assert_span_http_status_code(span, 200)
7477
self.assertEqual(span.attributes["endpoint"], "ec2")
7578
self.assertEqual(span.attributes["http_method"], "runinstances")
76-
self.assertEqual(span.attributes[SpanAttributes.HTTP_METHOD], "POST")
79+
self.assertEqual(span.attributes[HTTP_METHOD], "POST")
7780
self.assertEqual(span.attributes["aws.region"], "us-west-2")
7881
self.assertEqual(span.name, "ec2.command")
7982

@@ -120,7 +123,7 @@ def test_s3_client(self):
120123
self.assertEqual(len(spans), 1)
121124
span = spans[0]
122125
assert_span_http_status_code(span, 200)
123-
self.assertEqual(span.attributes[SpanAttributes.HTTP_METHOD], "GET")
126+
self.assertEqual(span.attributes[HTTP_METHOD], "GET")
124127
self.assertEqual(span.attributes["aws.operation"], "get_all_buckets")
125128

126129
# Create a bucket command
@@ -130,7 +133,7 @@ def test_s3_client(self):
130133
self.assertEqual(len(spans), 2)
131134
span = spans[1]
132135
assert_span_http_status_code(span, 200)
133-
self.assertEqual(span.attributes[SpanAttributes.HTTP_METHOD], "PUT")
136+
self.assertEqual(span.attributes[HTTP_METHOD], "PUT")
134137
self.assertEqual(span.attributes["path"], "/")
135138
self.assertEqual(span.attributes["aws.operation"], "create_bucket")
136139

@@ -143,7 +146,7 @@ def test_s3_client(self):
143146
assert_span_http_status_code(span, 200)
144147
self.assertEqual(span.attributes["endpoint"], "s3")
145148
self.assertEqual(span.attributes["http_method"], "head")
146-
self.assertEqual(span.attributes[SpanAttributes.HTTP_METHOD], "HEAD")
149+
self.assertEqual(span.attributes[HTTP_METHOD], "HEAD")
147150
self.assertEqual(span.attributes["aws.operation"], "head_bucket")
148151
self.assertEqual(span.name, "s3.command")
149152

@@ -240,7 +243,7 @@ def test_lambda_client(self):
240243
assert_span_http_status_code(span, 200)
241244
self.assertEqual(span.attributes["endpoint"], "lambda")
242245
self.assertEqual(span.attributes["http_method"], "get")
243-
self.assertEqual(span.attributes[SpanAttributes.HTTP_METHOD], "GET")
246+
self.assertEqual(span.attributes[HTTP_METHOD], "GET")
244247
self.assertEqual(span.attributes["aws.region"], "us-east-2")
245248
self.assertEqual(span.attributes["aws.operation"], "list_functions")
246249

0 commit comments

Comments
 (0)