Skip to content

Commit

Permalink
Merge branch 'main' into add_shoryuken_instrumentation
Browse files Browse the repository at this point in the history
  • Loading branch information
mcinbell authored Sep 26, 2023
2 parents 6043bfc + 0b560e2 commit 129093c
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ def self.destination_name(exchange, routing_key)
def self.extract_context(properties)
# use the receive span as parent context
parent_context = OpenTelemetry.propagation.extract(properties[:tracer_receive_headers])
return [parent_context, nil] if properties[:headers].nil?

# link to the producer context
producer_context = OpenTelemetry.propagation.extract(properties[:headers])
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# frozen_string_literal: true

# Copyright The OpenTelemetry Authors
#
# SPDX-License-Identifier: Apache-2.0

require_relative '../../../../lib/opentelemetry/instrumentation/bunny/patch_helpers'

describe OpenTelemetry::Instrumentation::Bunny::PatchHelpers do
let(:properties) do
{
headers: {
'traceparent' => '00-eab67ae26433f603121bd5674149d9e1-2007f3325d3cb6d6-01'
},
tracer_receive_headers: {
'traceparent' => '00-cd52775b3cb38931adf5fa880f890c25-cddb52a470027489-01'
}
}
end

describe '.extract_context' do
it 'returns the parent context with links when headers from producer exists' do
parent_context, links = OpenTelemetry::Instrumentation::Bunny::PatchHelpers.extract_context(properties)
_(parent_context).must_be_instance_of(OpenTelemetry::Context)
_(links).must_be_instance_of(Array)
_(links.first).must_be_instance_of(OpenTelemetry::Trace::Link)
end

it 'returns the parent context with no links when headers from producer not present' do
properties.delete(:headers)
parent_context, links = OpenTelemetry::Instrumentation::Bunny::PatchHelpers.extract_context(properties)
_(parent_context).must_be_instance_of(OpenTelemetry::Context)
_(links).must_be_nil
end
end
end
1 change: 1 addition & 0 deletions instrumentation/bunny/test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@
c.error_handler = ->(exception:, message:) { raise(exception || message) }
c.logger = Logger.new($stderr, level: ENV.fetch('OTEL_LOG_LEVEL', 'fatal').to_sym)
c.add_span_processor SPAN_PROCESSOR
c.propagators = [OpenTelemetry::Trace::Propagation::TraceContext.text_map_propagator]
end
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,11 @@ def execute_field(field:, query:, ast_node:, arguments:, object:, &block)
platform_key = _otel_execute_field_key(field: field)
return super unless platform_key

attributes = {}
attributes['graphql.field.parent'] = field.owner&.graphql_name
attributes['graphql.field.name'] = field.graphql_name
attributes['graphql.lazy'] = false
attributes = {
'graphql.field.parent' => field.owner&.graphql_name,
'graphql.field.name' => field.graphql_name,
'graphql.lazy' => false
}

tracer.in_span(platform_key, attributes: attributes, &block)
end
Expand All @@ -87,10 +88,11 @@ def execute_field_lazy(field:, query:, ast_node:, arguments:, object:, &block)
platform_key = _otel_execute_field_key(field: field)
return super unless platform_key

attributes = {}
attributes['graphql.field.parent'] = field.owner&.graphql_name
attributes['graphql.field.name'] = field.graphql_name
attributes['graphql.lazy'] = true
attributes = {
'graphql.field.parent' => field.owner&.graphql_name,
'graphql.field.name' => field.graphql_name,
'graphql.lazy' => true
}

tracer.in_span(platform_key, attributes: attributes, &block)
end
Expand All @@ -99,9 +101,10 @@ def authorized(query:, type:, object:, &block)
platform_key = @_otel_authorized_key_cache[type]
return super unless platform_key

attributes = {}
attributes['graphql.type.name'] = type.graphql_name
attributes['graphql.lazy'] = false
attributes = {
'graphql.type.name' => type.graphql_name,
'graphql.lazy' => false
}

tracer.in_span(platform_key, attributes: attributes, &block)
end
Expand All @@ -110,29 +113,32 @@ def authorized_lazy(query:, type:, object:, &block)
platform_key = @_otel_authorized_key_cache[type]
return super unless platform_key

attributes = {}
attributes['graphql.type.name'] = type.graphql_name
attributes['graphql.lazy'] = true
attributes = {
'graphql.type.name' => type.graphql_name,
'graphql.lazy' => true
}

tracer.in_span(platform_key, attributes: attributes, &block)
end

def resolve_type(query:, type:, object:, &block)
platform_key = @_otel_resolve_type_key_cache[type]

attributes = {}
attributes['graphql.type.name'] = type.graphql_name
attributes['graphql.lazy'] = false
attributes = {
'graphql.type.name' => type.graphql_name,
'graphql.lazy' => false
}

tracer.in_span(platform_key, attributes: attributes, &block)
end

def resolve_type_lazy(query:, type:, object:, &block)
platform_key = @_otel_resolve_type_key_cache[type]

attributes = {}
attributes['graphql.type.name'] = type.graphql_name
attributes['graphql.lazy'] = true
attributes = {
'graphql.type.name' => type.graphql_name,
'graphql.lazy' => true
}

tracer.in_span(platform_key, attributes: attributes, &block)
end
Expand Down

0 comments on commit 129093c

Please sign in to comment.