Skip to content

Commit 6f7835a

Browse files
lets pivot
1 parent fe1bd89 commit 6f7835a

File tree

1 file changed

+19
-0
lines changed
  • instrumentation/opentelemetry-instrumentation-flask/src/opentelemetry/instrumentation/flask

1 file changed

+19
-0
lines changed

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,9 @@ def response_hook(span: Span, status: str, response_headers: List):
263263

264264
_logger = getLogger(__name__)
265265

266+
class _TraceContext(typing.NamedTuple):
267+
starttime: int
268+
266269
_ENVIRON_STARTTIME_KEY = "opentelemetry-flask.starttime_key"
267270
_ENVIRON_SPAN_KEY = "opentelemetry-flask.span_key"
268271
_ENVIRON_ACTIVATION_KEY = "opentelemetry-flask.activation_key"
@@ -274,9 +277,16 @@ def response_hook(span: Span, status: str, response_headers: List):
274277
if package_version.parse(flask.__version__) >= package_version.parse("2.2.0"):
275278
def _request_ctx_ref() -> weakref.ReferenceType:
276279
return weakref.ref(flask.globals.request_ctx._get_current_object())
280+
def _request_ctx() -> RequestContext:
281+
return flask.globals.request_ctx._get_current_object()
277282
else:
278283
def _request_ctx_ref() -> int:
279284
return weakref.ref(flask._request_ctx_stack.top)
285+
def _request_ctx() -> RequestContext:
286+
return flask._request_ctx_stack.top
287+
288+
def _get_reqctx():
289+
return flask._request_ctx_stack.top
280290

281291
def get_default_span_name():
282292
try:
@@ -405,11 +415,17 @@ def _before_request():
405415

406416
activation = trace.use_span(span, end_on_exit=True)
407417
activation.__enter__() # pylint: disable=E1101
418+
419+
reqctx = _get_reqctx()
408420
flask_request_environ[_ENVIRON_ACTIVATION_KEY] = activation
421+
409422
flask_request_environ[_ENVIRON_REQCTX_REF_KEY] = _request_ctx_ref()
410423
flask_request_environ[_ENVIRON_SPAN_KEY] = span
411424
flask_request_environ[_ENVIRON_TOKEN] = token
412425

426+
reqctx = _get_reqctx()
427+
reqctx._test_ref = _request_ctx_ref()
428+
413429
if enable_commenter:
414430
current_context = context.get_current()
415431
flask_info = {}
@@ -449,6 +465,9 @@ def _teardown_request(exc):
449465

450466
original_reqctx_ref = flask.request.environ.get(_ENVIRON_REQCTX_REF_KEY)
451467
current_reqctx_ref = _request_ctx_ref()
468+
# tear_request FROM the copy_current_Request_context's teardown
469+
if 'asdf' in flask.g:
470+
breakpoint()
452471
if not activation or original_reqctx_ref != current_reqctx_ref:
453472
# This request didn't start a span, maybe because it was created in
454473
# a way that doesn't run `before_request`, like when it is created

0 commit comments

Comments
 (0)