17
17
from enum import Enum
18
18
19
19
from opentelemetry .instrumentation .utils import http_status_to_status_code
20
+ from opentelemetry .semconv ._incubating .attributes .http_attributes import (
21
+ HTTP_FLAVOR ,
22
+ HTTP_HOST ,
23
+ HTTP_METHOD ,
24
+ HTTP_SCHEME ,
25
+ HTTP_SERVER_NAME ,
26
+ HTTP_STATUS_CODE ,
27
+ HTTP_TARGET ,
28
+ HTTP_URL ,
29
+ HTTP_USER_AGENT ,
30
+ )
31
+ from opentelemetry .semconv ._incubating .attributes .net_attributes import (
32
+ NET_HOST_NAME ,
33
+ NET_HOST_PORT ,
34
+ NET_PEER_IP ,
35
+ NET_PEER_NAME ,
36
+ NET_PEER_PORT ,
37
+ )
20
38
from opentelemetry .semconv .attributes .client_attributes import (
21
39
CLIENT_ADDRESS ,
22
40
CLIENT_PORT ,
44
62
from opentelemetry .semconv .attributes .user_agent_attributes import (
45
63
USER_AGENT_ORIGINAL ,
46
64
)
47
- from opentelemetry .semconv .trace import SpanAttributes
65
+ from opentelemetry .semconv .schemas import Schemas
48
66
from opentelemetry .trace .status import Status , StatusCode
49
67
50
68
# Values defined in milliseconds
87
105
# These lists represent attributes for metrics that are currently supported
88
106
89
107
_client_duration_attrs_old = [
90
- SpanAttributes . HTTP_STATUS_CODE ,
91
- SpanAttributes . HTTP_HOST ,
92
- SpanAttributes . NET_PEER_PORT ,
93
- SpanAttributes . NET_PEER_NAME ,
94
- SpanAttributes . HTTP_METHOD ,
95
- SpanAttributes . HTTP_FLAVOR ,
96
- SpanAttributes . HTTP_SCHEME ,
108
+ HTTP_STATUS_CODE ,
109
+ HTTP_HOST ,
110
+ HTTP_METHOD ,
111
+ HTTP_FLAVOR ,
112
+ HTTP_SCHEME ,
113
+ NET_PEER_PORT ,
114
+ NET_PEER_NAME ,
97
115
]
98
116
99
117
_client_duration_attrs_new = [
108
126
]
109
127
110
128
_server_duration_attrs_old = [
111
- SpanAttributes . HTTP_METHOD ,
112
- SpanAttributes . HTTP_HOST ,
113
- SpanAttributes . HTTP_SCHEME ,
114
- SpanAttributes . HTTP_STATUS_CODE ,
115
- SpanAttributes . HTTP_FLAVOR ,
116
- SpanAttributes . HTTP_SERVER_NAME ,
117
- SpanAttributes . NET_HOST_NAME ,
118
- SpanAttributes . NET_HOST_PORT ,
129
+ HTTP_METHOD ,
130
+ HTTP_HOST ,
131
+ HTTP_SCHEME ,
132
+ HTTP_STATUS_CODE ,
133
+ HTTP_FLAVOR ,
134
+ HTTP_SERVER_NAME ,
135
+ NET_HOST_NAME ,
136
+ NET_HOST_PORT ,
119
137
]
120
138
121
139
_server_duration_attrs_new = [
128
146
]
129
147
130
148
_server_active_requests_count_attrs_old = [
131
- SpanAttributes . HTTP_METHOD ,
132
- SpanAttributes . HTTP_HOST ,
133
- SpanAttributes . HTTP_SCHEME ,
134
- SpanAttributes . HTTP_FLAVOR ,
135
- SpanAttributes . HTTP_SERVER_NAME ,
149
+ HTTP_METHOD ,
150
+ HTTP_HOST ,
151
+ HTTP_SCHEME ,
152
+ HTTP_FLAVOR ,
153
+ HTTP_SERVER_NAME ,
136
154
]
137
155
138
156
_server_active_requests_count_attrs_new = [
@@ -287,44 +305,42 @@ def _set_http_method(result, original, normalized, sem_conv_opt_in_mode):
287
305
set_string_attribute (result , HTTP_REQUEST_METHOD_ORIGINAL , original )
288
306
289
307
if _report_old (sem_conv_opt_in_mode ):
290
- set_string_attribute (result , SpanAttributes . HTTP_METHOD , normalized )
308
+ set_string_attribute (result , HTTP_METHOD , normalized )
291
309
if _report_new (sem_conv_opt_in_mode ):
292
310
set_string_attribute (result , HTTP_REQUEST_METHOD , normalized )
293
311
294
312
295
313
def _set_http_status_code (result , code , sem_conv_opt_in_mode ):
296
314
if _report_old (sem_conv_opt_in_mode ):
297
- set_int_attribute (result , SpanAttributes . HTTP_STATUS_CODE , code )
315
+ set_int_attribute (result , HTTP_STATUS_CODE , code )
298
316
if _report_new (sem_conv_opt_in_mode ):
299
317
set_int_attribute (result , HTTP_RESPONSE_STATUS_CODE , code )
300
318
301
319
302
320
def _set_http_url (result , url , sem_conv_opt_in_mode ):
303
321
if _report_old (sem_conv_opt_in_mode ):
304
- set_string_attribute (result , SpanAttributes . HTTP_URL , url )
322
+ set_string_attribute (result , HTTP_URL , url )
305
323
if _report_new (sem_conv_opt_in_mode ):
306
324
set_string_attribute (result , URL_FULL , url )
307
325
308
326
309
327
def _set_http_scheme (result , scheme , sem_conv_opt_in_mode ):
310
328
if _report_old (sem_conv_opt_in_mode ):
311
- set_string_attribute (result , SpanAttributes . HTTP_SCHEME , scheme )
329
+ set_string_attribute (result , HTTP_SCHEME , scheme )
312
330
if _report_new (sem_conv_opt_in_mode ):
313
331
set_string_attribute (result , URL_SCHEME , scheme )
314
332
315
333
316
334
def _set_http_flavor_version (result , version , sem_conv_opt_in_mode ):
317
335
if _report_old (sem_conv_opt_in_mode ):
318
- set_string_attribute (result , SpanAttributes . HTTP_FLAVOR , version )
336
+ set_string_attribute (result , HTTP_FLAVOR , version )
319
337
if _report_new (sem_conv_opt_in_mode ):
320
338
set_string_attribute (result , NETWORK_PROTOCOL_VERSION , version )
321
339
322
340
323
341
def _set_http_user_agent (result , user_agent , sem_conv_opt_in_mode ):
324
342
if _report_old (sem_conv_opt_in_mode ):
325
- set_string_attribute (
326
- result , SpanAttributes .HTTP_USER_AGENT , user_agent
327
- )
343
+ set_string_attribute (result , HTTP_USER_AGENT , user_agent )
328
344
if _report_new (sem_conv_opt_in_mode ):
329
345
set_string_attribute (result , USER_AGENT_ORIGINAL , user_agent )
330
346
@@ -334,28 +350,28 @@ def _set_http_user_agent(result, user_agent, sem_conv_opt_in_mode):
334
350
335
351
def _set_http_host_client (result , host , sem_conv_opt_in_mode ):
336
352
if _report_old (sem_conv_opt_in_mode ):
337
- set_string_attribute (result , SpanAttributes . HTTP_HOST , host )
353
+ set_string_attribute (result , HTTP_HOST , host )
338
354
if _report_new (sem_conv_opt_in_mode ):
339
355
set_string_attribute (result , SERVER_ADDRESS , host )
340
356
341
357
342
358
def _set_http_net_peer_name_client (result , peer_name , sem_conv_opt_in_mode ):
343
359
if _report_old (sem_conv_opt_in_mode ):
344
- set_string_attribute (result , SpanAttributes . NET_PEER_NAME , peer_name )
360
+ set_string_attribute (result , NET_PEER_NAME , peer_name )
345
361
if _report_new (sem_conv_opt_in_mode ):
346
362
set_string_attribute (result , SERVER_ADDRESS , peer_name )
347
363
348
364
349
365
def _set_http_peer_port_client (result , port , sem_conv_opt_in_mode ):
350
366
if _report_old (sem_conv_opt_in_mode ):
351
- set_int_attribute (result , SpanAttributes . NET_PEER_PORT , port )
367
+ set_int_attribute (result , NET_PEER_PORT , port )
352
368
if _report_new (sem_conv_opt_in_mode ):
353
369
set_int_attribute (result , SERVER_PORT , port )
354
370
355
371
356
372
def _set_http_network_protocol_version (result , version , sem_conv_opt_in_mode ):
357
373
if _report_old (sem_conv_opt_in_mode ):
358
- set_string_attribute (result , SpanAttributes . HTTP_FLAVOR , version )
374
+ set_string_attribute (result , HTTP_FLAVOR , version )
359
375
if _report_new (sem_conv_opt_in_mode ):
360
376
set_string_attribute (result , NETWORK_PROTOCOL_VERSION , version )
361
377
@@ -365,21 +381,21 @@ def _set_http_network_protocol_version(result, version, sem_conv_opt_in_mode):
365
381
366
382
def _set_http_net_host (result , host , sem_conv_opt_in_mode ):
367
383
if _report_old (sem_conv_opt_in_mode ):
368
- set_string_attribute (result , SpanAttributes . NET_HOST_NAME , host )
384
+ set_string_attribute (result , NET_HOST_NAME , host )
369
385
if _report_new (sem_conv_opt_in_mode ):
370
386
set_string_attribute (result , SERVER_ADDRESS , host )
371
387
372
388
373
389
def _set_http_net_host_port (result , port , sem_conv_opt_in_mode ):
374
390
if _report_old (sem_conv_opt_in_mode ):
375
- set_int_attribute (result , SpanAttributes . NET_HOST_PORT , port )
391
+ set_int_attribute (result , NET_HOST_PORT , port )
376
392
if _report_new (sem_conv_opt_in_mode ):
377
393
set_int_attribute (result , SERVER_PORT , port )
378
394
379
395
380
396
def _set_http_target (result , target , path , query , sem_conv_opt_in_mode ):
381
397
if _report_old (sem_conv_opt_in_mode ):
382
- set_string_attribute (result , SpanAttributes . HTTP_TARGET , target )
398
+ set_string_attribute (result , HTTP_TARGET , target )
383
399
if _report_new (sem_conv_opt_in_mode ):
384
400
if path :
385
401
set_string_attribute (result , URL_PATH , path )
@@ -389,7 +405,7 @@ def _set_http_target(result, target, path, query, sem_conv_opt_in_mode):
389
405
390
406
def _set_http_host_server (result , host , sem_conv_opt_in_mode ):
391
407
if _report_old (sem_conv_opt_in_mode ):
392
- set_string_attribute (result , SpanAttributes . HTTP_HOST , host )
408
+ set_string_attribute (result , HTTP_HOST , host )
393
409
if _report_new (sem_conv_opt_in_mode ):
394
410
if not result .get (SERVER_ADDRESS ):
395
411
set_string_attribute (result , SERVER_ADDRESS , host )
@@ -402,7 +418,7 @@ def _set_http_host_server(result, host, sem_conv_opt_in_mode):
402
418
# https://github.com/open-telemetry/semantic-conventions/blob/main/docs/non-normative/http-migration.md#common-attributes-across-http-client-and-server-spans
403
419
def _set_http_peer_ip_server (result , ip , sem_conv_opt_in_mode ):
404
420
if _report_old (sem_conv_opt_in_mode ):
405
- set_string_attribute (result , SpanAttributes . NET_PEER_IP , ip )
421
+ set_string_attribute (result , NET_PEER_IP , ip )
406
422
if _report_new (sem_conv_opt_in_mode ):
407
423
# Only populate if not already populated
408
424
if not result .get (CLIENT_ADDRESS ):
@@ -411,14 +427,14 @@ def _set_http_peer_ip_server(result, ip, sem_conv_opt_in_mode):
411
427
412
428
def _set_http_peer_port_server (result , port , sem_conv_opt_in_mode ):
413
429
if _report_old (sem_conv_opt_in_mode ):
414
- set_int_attribute (result , SpanAttributes . NET_PEER_PORT , port )
430
+ set_int_attribute (result , NET_PEER_PORT , port )
415
431
if _report_new (sem_conv_opt_in_mode ):
416
432
set_int_attribute (result , CLIENT_PORT , port )
417
433
418
434
419
435
def _set_http_net_peer_name_server (result , name , sem_conv_opt_in_mode ):
420
436
if _report_old (sem_conv_opt_in_mode ):
421
- set_string_attribute (result , SpanAttributes . NET_PEER_NAME , name )
437
+ set_string_attribute (result , NET_PEER_NAME , name )
422
438
if _report_new (sem_conv_opt_in_mode ):
423
439
set_string_attribute (result , CLIENT_ADDRESS , name )
424
440
@@ -450,10 +466,8 @@ def _set_status(
450
466
451
467
if _report_old (sem_conv_opt_in_mode ):
452
468
if span .is_recording ():
453
- span .set_attribute (
454
- SpanAttributes .HTTP_STATUS_CODE , status_code
455
- )
456
- metrics_attributes [SpanAttributes .HTTP_STATUS_CODE ] = status_code
469
+ span .set_attribute (HTTP_STATUS_CODE , status_code )
470
+ metrics_attributes [HTTP_STATUS_CODE ] = status_code
457
471
if _report_new (sem_conv_opt_in_mode ):
458
472
if span .is_recording ():
459
473
span .set_attribute (HTTP_RESPONSE_STATUS_CODE , status_code )
@@ -470,4 +484,4 @@ def _set_status(
470
484
def _get_schema_url (mode : _StabilityMode ) -> str :
471
485
if mode is _StabilityMode .DEFAULT :
472
486
return "https://opentelemetry.io/schemas/1.11.0"
473
- return SpanAttributes . SCHEMA_URL
487
+ return Schemas . V1_21_0 . value
0 commit comments