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]))