Skip to content

Commit 8d0c150

Browse files
authored
Sync with auto generated semantic convention constants (#428)
1 parent 3083690 commit 8d0c150

File tree

94 files changed

+1142
-662
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+1142
-662
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
- 'release/*'
77
pull_request:
88
env:
9-
CORE_REPO_SHA: 6bd163f6d670319eba6693b8465a068a1828f484
9+
CORE_REPO_SHA: 3af190ca973ccef33d8e0816f79ae47b52824a98
1010

1111
jobs:
1212
build:

exporter/opentelemetry-exporter-datadog/setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ install_requires =
4141
ddtrace>=0.34.0,<0.47.0
4242
opentelemetry-api == 1.0.1.dev0
4343
opentelemetry-sdk == 1.0.1.dev0
44+
opentelemetry-semantic-conventions == 0.20.dev0
4445

4546
[options.packages.find]
4647
where = src

exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/exporter.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
)
3131
from opentelemetry.sdk.trace import sampling
3232
from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult
33+
from opentelemetry.semconv.trace import SpanAttributes
3334

3435
logger = logging.getLogger(__name__)
3536

@@ -225,12 +226,12 @@ def _get_span_name(span):
225226

226227
def _get_resource(span):
227228
"""Get resource name for span"""
228-
if "http.method" in span.attributes:
229-
route = span.attributes.get("http.route")
229+
if SpanAttributes.HTTP_METHOD in span.attributes:
230+
route = span.attributes.get(SpanAttributes.HTTP_ROUTE)
230231
return (
231-
span.attributes["http.method"] + " " + route
232+
span.attributes[SpanAttributes.HTTP_METHOD] + " " + route
232233
if route
233-
else span.attributes["http.method"]
234+
else span.attributes[SpanAttributes.HTTP_METHOD]
234235
)
235236

236237
return span.name

exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from opentelemetry.sdk import trace
2828
from opentelemetry.sdk.trace import Resource, sampling
2929
from opentelemetry.sdk.util.instrumentation import InstrumentationInfo
30+
from opentelemetry.semconv.trace import SpanAttributes
3031

3132

3233
class MockDatadogSpanExporter(datadog.DatadogSpanExporter):
@@ -302,8 +303,14 @@ def test_export(self):
302303
def test_resources(self):
303304
test_attributes = [
304305
{},
305-
{"http.method": "GET", "http.route": "/foo/<int:id>"},
306-
{"http.method": "GET", "http.target": "/foo/200"},
306+
{
307+
SpanAttributes.HTTP_METHOD: "GET",
308+
SpanAttributes.HTTP_ROUTE: "/foo/<int:id>",
309+
},
310+
{
311+
SpanAttributes.HTTP_METHOD: "GET",
312+
SpanAttributes.HTTP_TARGET: "/foo/200",
313+
},
307314
]
308315

309316
for index, test in enumerate(test_attributes):

instrumentation/opentelemetry-instrumentation-aiohttp-client/setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ package_dir=
3939
packages=find_namespace:
4040
install_requires =
4141
opentelemetry-api == 1.0.1.dev0
42+
opentelemetry-semantic-conventions == 0.20.dev0
4243
opentelemetry-instrumentation == 0.20.dev0
4344
aiohttp ~= 3.0
4445
wrapt >= 1.0.0, < 2.0.0

instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/__init__.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ def strip_query_params(url: yarl.URL) -> str:
7777
unwrap,
7878
)
7979
from opentelemetry.propagate import inject
80+
from opentelemetry.semconv.trace import SpanAttributes
8081
from opentelemetry.trace import SpanKind, TracerProvider, get_tracer
8182
from opentelemetry.trace.status import Status, StatusCode
8283

@@ -169,8 +170,10 @@ async def on_request_start(
169170

170171
if trace_config_ctx.span.is_recording():
171172
attributes = {
172-
"http.method": http_method,
173-
"http.url": trace_config_ctx.url_filter(params.url)
173+
SpanAttributes.HTTP_METHOD: http_method,
174+
SpanAttributes.HTTP_URL: trace_config_ctx.url_filter(
175+
params.url
176+
)
174177
if callable(trace_config_ctx.url_filter)
175178
else str(params.url),
176179
}
@@ -196,7 +199,7 @@ async def on_request_end(
196199
Status(http_status_to_status_code(int(params.response.status)))
197200
)
198201
trace_config_ctx.span.set_attribute(
199-
"http.status_code", params.response.status
202+
SpanAttributes.HTTP_STATUS_CODE, params.response.status
200203
)
201204
_end_trace(trace_config_ctx)
202205

instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from opentelemetry.instrumentation.aiohttp_client import (
3131
AioHttpClientInstrumentor,
3232
)
33+
from opentelemetry.semconv.trace import SpanAttributes
3334
from opentelemetry.test.test_base import TestBase
3435
from opentelemetry.trace import StatusCode
3536

@@ -129,11 +130,13 @@ def test_status_codes(self):
129130
"HTTP GET",
130131
(span_status, None),
131132
{
132-
"http.method": "GET",
133-
"http.url": "http://{}:{}/test-path?query=param#foobar".format(
133+
SpanAttributes.HTTP_METHOD: "GET",
134+
SpanAttributes.HTTP_URL: "http://{}:{}/test-path?query=param#foobar".format(
134135
host, port
135136
),
136-
"http.status_code": int(status_code),
137+
SpanAttributes.HTTP_STATUS_CODE: int(
138+
status_code
139+
),
137140
},
138141
)
139142
]
@@ -185,11 +188,13 @@ def test_span_name_option(self):
185188
expected,
186189
(StatusCode.UNSET, None),
187190
{
188-
"http.method": method,
189-
"http.url": "http://{}:{}{}".format(
191+
SpanAttributes.HTTP_METHOD: method,
192+
SpanAttributes.HTTP_URL: "http://{}:{}{}".format(
190193
host, port, path
191194
),
192-
"http.status_code": int(HTTPStatus.OK),
195+
SpanAttributes.HTTP_STATUS_CODE: int(
196+
HTTPStatus.OK
197+
),
193198
},
194199
)
195200
]
@@ -215,11 +220,11 @@ def strip_query_params(url: yarl.URL) -> str:
215220
"HTTP GET",
216221
(StatusCode.UNSET, None),
217222
{
218-
"http.method": "GET",
219-
"http.url": "http://{}:{}/some/path".format(
223+
SpanAttributes.HTTP_METHOD: "GET",
224+
SpanAttributes.HTTP_URL: "http://{}:{}/some/path".format(
220225
host, port
221226
),
222-
"http.status_code": int(HTTPStatus.OK),
227+
SpanAttributes.HTTP_STATUS_CODE: int(HTTPStatus.OK),
223228
},
224229
)
225230
]
@@ -250,7 +255,10 @@ async def do_request(url):
250255
(
251256
"HTTP GET",
252257
(expected_status, None),
253-
{"http.method": "GET", "http.url": url},
258+
{
259+
SpanAttributes.HTTP_METHOD: "GET",
260+
SpanAttributes.HTTP_URL: url,
261+
},
254262
)
255263
]
256264
)
@@ -275,8 +283,8 @@ async def request_handler(request):
275283
"HTTP GET",
276284
(StatusCode.ERROR, None),
277285
{
278-
"http.method": "GET",
279-
"http.url": "http://{}:{}/test_timeout".format(
286+
SpanAttributes.HTTP_METHOD: "GET",
287+
SpanAttributes.HTTP_URL: "http://{}:{}/test_timeout".format(
280288
host, port
281289
),
282290
},
@@ -304,8 +312,8 @@ async def request_handler(request):
304312
"HTTP GET",
305313
(StatusCode.ERROR, None),
306314
{
307-
"http.method": "GET",
308-
"http.url": "http://{}:{}/test_too_many_redirects".format(
315+
SpanAttributes.HTTP_METHOD: "GET",
316+
SpanAttributes.HTTP_URL: "http://{}:{}/test_too_many_redirects".format(
309317
host, port
310318
),
311319
},
@@ -352,12 +360,12 @@ def test_instrument(self):
352360
self.get_default_request(), self.URL, self.default_handler
353361
)
354362
span = self.assert_spans(1)
355-
self.assertEqual("GET", span.attributes["http.method"])
363+
self.assertEqual("GET", span.attributes[SpanAttributes.HTTP_METHOD])
356364
self.assertEqual(
357365
"http://{}:{}/test-path".format(host, port),
358-
span.attributes["http.url"],
366+
span.attributes[SpanAttributes.HTTP_URL],
359367
)
360-
self.assertEqual(200, span.attributes["http.status_code"])
368+
self.assertEqual(200, span.attributes[SpanAttributes.HTTP_STATUS_CODE])
361369

362370
def test_instrument_with_existing_trace_config(self):
363371
trace_config = aiohttp.TraceConfig()
@@ -458,7 +466,7 @@ def strip_query_params(url: yarl.URL) -> str:
458466
span = self.assert_spans(1)
459467
self.assertEqual(
460468
"http://{}:{}/test-path".format(host, port),
461-
span.attributes["http.url"],
469+
span.attributes[SpanAttributes.HTTP_URL],
462470
)
463471

464472
def test_span_name(self):

instrumentation/opentelemetry-instrumentation-aiopg/setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ package_dir=
3939
packages=find_namespace:
4040
install_requires =
4141
opentelemetry-api == 1.0.1.dev0
42+
opentelemetry-semantic-conventions == 0.20.dev0
4243
opentelemetry-instrumentation-dbapi == 0.20.dev0
4344
opentelemetry-instrumentation == 0.20.dev0
4445
aiopg >= 0.13.0

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

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
AiopgIntegration,
2727
)
2828
from opentelemetry.sdk import resources
29+
from opentelemetry.semconv.trace import SpanAttributes
2930
from opentelemetry.test.test_base import TestBase
3031

3132

@@ -258,16 +259,24 @@ def test_span_succeeded(self):
258259
self.assertEqual(span.name, "Test")
259260
self.assertIs(span.kind, trace_api.SpanKind.CLIENT)
260261

261-
self.assertEqual(span.attributes["db.system"], "testcomponent")
262-
self.assertEqual(span.attributes["db.name"], "testdatabase")
263-
self.assertEqual(span.attributes["db.statement"], "Test query")
262+
self.assertEqual(
263+
span.attributes[SpanAttributes.DB_SYSTEM], "testcomponent"
264+
)
265+
self.assertEqual(
266+
span.attributes[SpanAttributes.DB_NAME], "testdatabase"
267+
)
268+
self.assertEqual(
269+
span.attributes[SpanAttributes.DB_STATEMENT], "Test query"
270+
)
264271
self.assertEqual(
265272
span.attributes["db.statement.parameters"],
266273
"('param1Value', False)",
267274
)
268-
self.assertEqual(span.attributes["db.user"], "testuser")
269-
self.assertEqual(span.attributes["net.peer.name"], "testhost")
270-
self.assertEqual(span.attributes["net.peer.port"], 123)
275+
self.assertEqual(span.attributes[SpanAttributes.DB_USER], "testuser")
276+
self.assertEqual(
277+
span.attributes[SpanAttributes.NET_PEER_NAME], "testhost"
278+
)
279+
self.assertEqual(span.attributes[SpanAttributes.NET_PEER_PORT], 123)
271280
self.assertIs(span.status.status_code, trace_api.StatusCode.UNSET)
272281

273282
def test_span_not_recording(self):
@@ -314,7 +323,9 @@ def test_span_failed(self):
314323
spans_list = self.memory_exporter.get_finished_spans()
315324
self.assertEqual(len(spans_list), 1)
316325
span = spans_list[0]
317-
self.assertEqual(span.attributes["db.statement"], "Test query")
326+
self.assertEqual(
327+
span.attributes[SpanAttributes.DB_STATEMENT], "Test query"
328+
)
318329
self.assertIs(span.status.status_code, trace_api.StatusCode.ERROR)
319330
self.assertEqual(span.status.description, "Exception: Test Exception")
320331

@@ -329,7 +340,9 @@ def test_executemany(self):
329340

330341
self.assertEqual(len(spans_list), 1)
331342
span = spans_list[0]
332-
self.assertEqual(span.attributes["db.statement"], "Test query")
343+
self.assertEqual(
344+
span.attributes[SpanAttributes.DB_STATEMENT], "Test query"
345+
)
333346

334347
def test_callproc(self):
335348
db_integration = AiopgIntegration(self.tracer, "testcomponent")
@@ -343,7 +356,8 @@ def test_callproc(self):
343356
self.assertEqual(len(spans_list), 1)
344357
span = spans_list[0]
345358
self.assertEqual(
346-
span.attributes["db.statement"], "Test stored procedure"
359+
span.attributes[SpanAttributes.DB_STATEMENT],
360+
"Test stored procedure",
347361
)
348362

349363
def test_wrap_connect(self):

instrumentation/opentelemetry-instrumentation-asgi/setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ package_dir=
3939
packages=find_namespace:
4040
install_requires =
4141
opentelemetry-api == 1.0.1.dev0
42+
opentelemetry-semantic-conventions == 0.20.dev0
4243
opentelemetry-instrumentation == 0.20.dev0
4344
asgiref ~= 3.0
4445

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

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from opentelemetry.instrumentation.utils import http_status_to_status_code
3131
from opentelemetry.propagate import extract
3232
from opentelemetry.propagators.textmap import Getter
33+
from opentelemetry.semconv.trace import SpanAttributes
3334
from opentelemetry.trace.status import Status, StatusCode
3435

3536

@@ -80,27 +81,29 @@ def collect_request_attributes(scope):
8081
http_url = http_url + ("?" + urllib.parse.unquote(query_string))
8182

8283
result = {
83-
"http.scheme": scope.get("scheme"),
84-
"http.host": server_host,
85-
"net.host.port": port,
86-
"http.flavor": scope.get("http_version"),
87-
"http.target": scope.get("path"),
88-
"http.url": http_url,
84+
SpanAttributes.HTTP_SCHEME: scope.get("scheme"),
85+
SpanAttributes.HTTP_HOST: server_host,
86+
SpanAttributes.NET_HOST_PORT: port,
87+
SpanAttributes.HTTP_FLAVOR: scope.get("http_version"),
88+
SpanAttributes.HTTP_TARGET: scope.get("path"),
89+
SpanAttributes.HTTP_URL: http_url,
8990
}
9091
http_method = scope.get("method")
9192
if http_method:
92-
result["http.method"] = http_method
93+
result[SpanAttributes.HTTP_METHOD] = http_method
9394

9495
http_host_value_list = asgi_getter.get(scope, "host")
9596
if http_host_value_list:
96-
result["http.server_name"] = ",".join(http_host_value_list)
97+
result[SpanAttributes.HTTP_SERVER_NAME] = ",".join(
98+
http_host_value_list
99+
)
97100
http_user_agent = asgi_getter.get(scope, "user-agent")
98101
if http_user_agent:
99-
result["http.user_agent"] = http_user_agent[0]
102+
result[SpanAttributes.HTTP_USER_AGENT] = http_user_agent[0]
100103

101104
if "client" in scope and scope["client"] is not None:
102-
result["net.peer.ip"] = scope.get("client")[0]
103-
result["net.peer.port"] = scope.get("client")[1]
105+
result[SpanAttributes.NET_PEER_IP] = scope.get("client")[0]
106+
result[SpanAttributes.NET_PEER_PORT] = scope.get("client")[1]
104107

105108
# remove None values
106109
result = {k: v for k, v in result.items() if v is not None}
@@ -133,7 +136,7 @@ def set_status_code(span, status_code):
133136
)
134137
)
135138
else:
136-
span.set_attribute("http.status_code", status_code)
139+
span.set_attribute(SpanAttributes.HTTP_STATUS_CODE, status_code)
137140
span.set_status(Status(http_status_to_status_code(status_code)))
138141

139142

0 commit comments

Comments
 (0)