@@ -54,29 +54,44 @@ async def hello(request):
54
54
)
55
55
from opentelemetry .propagate import extract
56
56
from opentelemetry .propagators .textmap import Getter
57
+ from opentelemetry .semconv ._incubating .attributes .http_attributes import (
58
+ HTTP_FLAVOR ,
59
+ HTTP_HOST ,
60
+ HTTP_METHOD ,
61
+ HTTP_ROUTE ,
62
+ HTTP_SCHEME ,
63
+ HTTP_SERVER_NAME ,
64
+ HTTP_STATUS_CODE ,
65
+ HTTP_TARGET ,
66
+ HTTP_URL ,
67
+ HTTP_USER_AGENT ,
68
+ )
69
+ from opentelemetry .semconv ._incubating .attributes .net_attributes import (
70
+ NET_HOST_NAME ,
71
+ NET_HOST_PORT ,
72
+ )
57
73
from opentelemetry .semconv .metrics import MetricInstruments
58
- from opentelemetry .semconv .trace import SpanAttributes
59
74
from opentelemetry .trace .status import Status , StatusCode
60
75
from opentelemetry .util .http import get_excluded_urls , remove_url_credentials
61
76
62
77
_duration_attrs = [
63
- SpanAttributes . HTTP_METHOD ,
64
- SpanAttributes . HTTP_HOST ,
65
- SpanAttributes . HTTP_SCHEME ,
66
- SpanAttributes . HTTP_STATUS_CODE ,
67
- SpanAttributes . HTTP_FLAVOR ,
68
- SpanAttributes . HTTP_SERVER_NAME ,
69
- SpanAttributes . NET_HOST_NAME ,
70
- SpanAttributes . NET_HOST_PORT ,
71
- SpanAttributes . HTTP_ROUTE ,
78
+ HTTP_METHOD ,
79
+ HTTP_HOST ,
80
+ HTTP_SCHEME ,
81
+ HTTP_STATUS_CODE ,
82
+ HTTP_FLAVOR ,
83
+ HTTP_SERVER_NAME ,
84
+ NET_HOST_NAME ,
85
+ NET_HOST_PORT ,
86
+ HTTP_ROUTE ,
72
87
]
73
88
74
89
_active_requests_count_attrs = [
75
- SpanAttributes . HTTP_METHOD ,
76
- SpanAttributes . HTTP_HOST ,
77
- SpanAttributes . HTTP_SCHEME ,
78
- SpanAttributes . HTTP_FLAVOR ,
79
- SpanAttributes . HTTP_SERVER_NAME ,
90
+ HTTP_METHOD ,
91
+ HTTP_HOST ,
92
+ HTTP_SCHEME ,
93
+ HTTP_FLAVOR ,
94
+ HTTP_SERVER_NAME ,
80
95
]
81
96
82
97
tracer = trace .get_tracer (__name__ )
@@ -140,29 +155,27 @@ def collect_request_attributes(request: web.Request) -> Dict:
140
155
http_url += "?" + urllib .parse .unquote (query_string )
141
156
142
157
result = {
143
- SpanAttributes . HTTP_SCHEME : request .scheme ,
144
- SpanAttributes . HTTP_HOST : server_host ,
145
- SpanAttributes . NET_HOST_PORT : port ,
146
- SpanAttributes . HTTP_ROUTE : _get_view_func (request ),
147
- SpanAttributes . HTTP_FLAVOR : f"{ request .version .major } .{ request .version .minor } " ,
148
- SpanAttributes . HTTP_TARGET : request .path ,
149
- SpanAttributes . HTTP_URL : remove_url_credentials (http_url ),
158
+ HTTP_SCHEME : request .scheme ,
159
+ HTTP_HOST : server_host ,
160
+ NET_HOST_PORT : port ,
161
+ HTTP_ROUTE : _get_view_func (request ),
162
+ HTTP_FLAVOR : f"{ request .version .major } .{ request .version .minor } " ,
163
+ HTTP_TARGET : request .path ,
164
+ HTTP_URL : remove_url_credentials (http_url ),
150
165
}
151
166
152
167
http_method = request .method
153
168
if http_method :
154
- result [SpanAttributes . HTTP_METHOD ] = http_method
169
+ result [HTTP_METHOD ] = http_method
155
170
156
171
http_host_value_list = (
157
172
[request .host ] if not isinstance (request .host , list ) else request .host
158
173
)
159
174
if http_host_value_list :
160
- result [SpanAttributes .HTTP_SERVER_NAME ] = "," .join (
161
- http_host_value_list
162
- )
175
+ result [HTTP_SERVER_NAME ] = "," .join (http_host_value_list )
163
176
http_user_agent = request .headers .get ("user-agent" )
164
177
if http_user_agent :
165
- result [SpanAttributes . HTTP_USER_AGENT ] = http_user_agent
178
+ result [HTTP_USER_AGENT ] = http_user_agent
166
179
167
180
# remove None values
168
181
result = {k : v for k , v in result .items () if v is not None }
@@ -183,7 +196,7 @@ def set_status_code(span, status_code: int) -> None:
183
196
)
184
197
)
185
198
else :
186
- span .set_attribute (SpanAttributes . HTTP_STATUS_CODE , status_code )
199
+ span .set_attribute (HTTP_STATUS_CODE , status_code )
187
200
span .set_status (
188
201
Status (http_status_to_status_code (status_code , server_span = True ))
189
202
)
0 commit comments