Skip to content

Commit

Permalink
chore: apply good idea from francis
Browse files Browse the repository at this point in the history
  • Loading branch information
robertlaurin committed May 8, 2024
1 parent a8548ef commit d4fd8d5
Showing 1 changed file with 8 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,12 @@ class EventHandler
# @param [Rack::Response] This is nil in practice
# @return [void]
def on_start(request, _)
if untraced_request?(request.env)
ctx = OpenTelemetry::Common::Utilities.untraced
request.env[UNTRACED_CTX_TOKEN] = OpenTelemetry::Context.attach(ctx)
return
end
parent_context = if untraced_request?(request.env)
extract_remote_context(request, OpenTelemetry::Common::Utilities.untraced)
else
extract_remote_context(request)
end

parent_context = extract_remote_context(request)
span = create_span(parent_context, request)
span_ctx = OpenTelemetry::Trace.context_with_span(span, parent_context: parent_context)
rack_ctx = OpenTelemetry::Instrumentation::Rack.context_with_span(span, parent_context: span_ctx)
Expand Down Expand Up @@ -178,9 +177,10 @@ def create_request_span_name(request)
end
end

def extract_remote_context(request)
def extract_remote_context(request, context = Context.current)
OpenTelemetry.propagation.extract(
request.env,
context: context,
getter: OpenTelemetry::Common::Propagation.rack_env_getter
)
end
Expand All @@ -199,10 +199,7 @@ def request_span_attributes(env)
end

def detach_context(request)
if (untracted_ctx_token = request.env[UNTRACED_CTX_TOKEN])
OpenTelemetry::Context.detach(untracted_ctx_token)
return
end
return nil unless request.env[OTEL_TOKEN_AND_SPAN]

token, span = request.env[OTEL_TOKEN_AND_SPAN]
span.finish
Expand Down

0 comments on commit d4fd8d5

Please sign in to comment.