lib/graphql/tracing/sentry_trace.rb in graphql-2.2.7 vs lib/graphql/tracing/sentry_trace.rb in graphql-2.2.8
- old
+ new
@@ -14,12 +14,12 @@
"execute_multiplex" => "graphql.execute_multiplex",
"execute_query" => "graphql.execute",
"execute_query_lazy" => "graphql.execute"
}.each do |trace_method, platform_key|
module_eval <<-RUBY, __FILE__, __LINE__
- def #{trace_method}(**data, &block)
- instrument_execution("#{platform_key}", "#{trace_method}", data, &block)
+ def #{trace_method}(**data)
+ instrument_execution("#{platform_key}", "#{trace_method}", data) { super }
end
RUBY
end
def platform_execute_field(platform_key, &block)
@@ -62,12 +62,13 @@
def instrument_execution(platform_key, trace_method, data=nil, &block)
return yield unless Sentry.initialized?
Sentry.with_child_span(op: platform_key, start_timestamp: Sentry.utc_now.to_f) do |span|
- result = block.call
- span.finish
+ result = yield
+ return result unless span
+ span.finish
if trace_method == "execute_multiplex" && data.key?(:multiplex)
operation_names = data[:multiplex].queries.map{|q| operation_name(q) }
span.set_description(operation_names.join(", "))
elsif trace_method == "execute_query" && data.key?(:query)
span.set_description(operation_name(data[:query]))