lib/instana/instrumentation/instrumented_request.rb in instana-1.207.0 vs lib/instana/instrumentation/instrumented_request.rb in instana-1.208.0
- old
+ new
@@ -128,10 +128,11 @@
def context_from_trace_parent
return {} unless @env.has_key?('HTTP_TRACEPARENT')
matches = @env['HTTP_TRACEPARENT'].match(W3_TRACE_PARENT_FORMAT)
return {} unless matches
+ return {} if matches_is_invalid(matches)
trace_id = ::Instana::Util.header_to_id(matches['trace'][16..-1]) # rubocop:disable Style/SlicingWithRange, Lint/RedundantCopDisableDirective
span_id = ::Instana::Util.header_to_id(matches['parent'])
{
@@ -139,9 +140,13 @@
external_state: @env['HTTP_TRACESTATE'],
trace_id: trace_id,
span_id: span_id,
from_w3: true
}
+ end
+
+ def matches_is_invalid(matches)
+ matches['trace'].match(/\A0+\z/) || matches['parent'].match(/\A0+\z/)
end
def context_from_trace_state
state = parse_trace_state