@@ -252,16 +252,32 @@ def _set_http_scheme(result, scheme, sem_conv_opt_in_mode):
252
252
set_string_attribute (result , URL_SCHEME , scheme )
253
253
254
254
255
- def _set_http_host (result , host , sem_conv_opt_in_mode ):
255
+ def _set_http_flavor_version (result , version , sem_conv_opt_in_mode ):
256
256
if _report_old (sem_conv_opt_in_mode ):
257
- set_string_attribute (result , SpanAttributes .HTTP_HOST , host )
257
+ set_string_attribute (result , SpanAttributes .HTTP_FLAVOR , version )
258
258
if _report_new (sem_conv_opt_in_mode ):
259
- set_string_attribute (result , SERVER_ADDRESS , host )
259
+ set_string_attribute (result , NETWORK_PROTOCOL_VERSION , version )
260
+
261
+
262
+ def _set_http_user_agent (result , user_agent , sem_conv_opt_in_mode ):
263
+ if _report_old (sem_conv_opt_in_mode ):
264
+ set_string_attribute (
265
+ result , SpanAttributes .HTTP_USER_AGENT , user_agent
266
+ )
267
+ if _report_new (sem_conv_opt_in_mode ):
268
+ set_string_attribute (result , USER_AGENT_ORIGINAL , user_agent )
260
269
261
270
262
271
# Client
263
272
264
273
274
+ def _set_http_host_client (result , host , sem_conv_opt_in_mode ):
275
+ if _report_old (sem_conv_opt_in_mode ):
276
+ set_string_attribute (result , SpanAttributes .HTTP_HOST , host )
277
+ if _report_new (sem_conv_opt_in_mode ):
278
+ set_string_attribute (result , SERVER_ADDRESS , host )
279
+
280
+
265
281
def _set_http_net_peer_name_client (result , peer_name , sem_conv_opt_in_mode ):
266
282
if _report_old (sem_conv_opt_in_mode ):
267
283
set_string_attribute (result , SpanAttributes .NET_PEER_NAME , peer_name )
@@ -310,27 +326,32 @@ def _set_http_target(result, target, path, query, sem_conv_opt_in_mode):
310
326
set_string_attribute (result , URL_QUERY , query )
311
327
312
328
313
- def _set_http_peer_ip (result , ip , sem_conv_opt_in_mode ):
329
+ def _set_http_host_server (result , host , sem_conv_opt_in_mode ):
314
330
if _report_old (sem_conv_opt_in_mode ):
315
- set_string_attribute (result , SpanAttributes .NET_PEER_IP , ip )
331
+ set_string_attribute (result , SpanAttributes .HTTP_HOST , host )
316
332
if _report_new (sem_conv_opt_in_mode ):
317
- set_string_attribute (result , CLIENT_ADDRESS , ip )
333
+ set_string_attribute (result , CLIENT_ADDRESS , host )
318
334
319
335
320
- def _set_http_peer_port_server (result , port , sem_conv_opt_in_mode ):
336
+ # net.peer.ip -> net.sock.peer.addr
337
+ # https://github.com/open-telemetry/semantic-conventions/blob/40db676ca0e735aa84f242b5a0fb14e49438b69b/schemas/1.15.0#L18
338
+ # net.sock.peer.addr -> client.socket.address for server spans (TODO) AND client.address if missing
339
+ # https://github.com/open-telemetry/semantic-conventions/blob/v1.21.0/CHANGELOG.md#v1210-2023-07-13
340
+ # https://github.com/open-telemetry/semantic-conventions/blob/main/docs/non-normative/http-migration.md#common-attributes-across-http-client-and-server-spans
341
+ def _set_http_peer_ip_server (result , ip , sem_conv_opt_in_mode ):
321
342
if _report_old (sem_conv_opt_in_mode ):
322
- set_int_attribute (result , SpanAttributes .NET_PEER_PORT , port )
343
+ set_string_attribute (result , SpanAttributes .NET_PEER_IP , ip )
323
344
if _report_new (sem_conv_opt_in_mode ):
324
- set_int_attribute (result , CLIENT_PORT , port )
345
+ # Only populate if not already populated
346
+ if not result .get (CLIENT_ADDRESS ):
347
+ set_string_attribute (result , CLIENT_ADDRESS , ip )
325
348
326
349
327
- def _set_http_user_agent (result , user_agent , sem_conv_opt_in_mode ):
350
+ def _set_http_peer_port_server (result , port , sem_conv_opt_in_mode ):
328
351
if _report_old (sem_conv_opt_in_mode ):
329
- set_string_attribute (
330
- result , SpanAttributes .HTTP_USER_AGENT , user_agent
331
- )
352
+ set_int_attribute (result , SpanAttributes .NET_PEER_PORT , port )
332
353
if _report_new (sem_conv_opt_in_mode ):
333
- set_string_attribute (result , USER_AGENT_ORIGINAL , user_agent )
354
+ set_int_attribute (result , CLIENT_PORT , port )
334
355
335
356
336
357
def _set_http_net_peer_name_server (result , name , sem_conv_opt_in_mode ):
@@ -340,13 +361,6 @@ def _set_http_net_peer_name_server(result, name, sem_conv_opt_in_mode):
340
361
set_string_attribute (result , CLIENT_ADDRESS , name )
341
362
342
363
343
- def _set_http_flavor_version (result , version , sem_conv_opt_in_mode ):
344
- if _report_old (sem_conv_opt_in_mode ):
345
- set_string_attribute (result , SpanAttributes .HTTP_FLAVOR , version )
346
- if _report_new (sem_conv_opt_in_mode ):
347
- set_string_attribute (result , NETWORK_PROTOCOL_VERSION , version )
348
-
349
-
350
364
def _set_status (
351
365
span ,
352
366
metrics_attributes : dict ,
0 commit comments