60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# File 'lib/graphql/tracing/appoptics_trace.rb', line 60
def execute_field(query:, field:, ast_node:, arguments:, object:)
return_type = field.type.unwrap
trace_field = if return_type.kind.scalar? || return_type.kind.enum?
(field.trace.nil? && @trace_scalars) || field.trace
else
true
end
platform_key = if trace_field
@platform_key_cache[AppOpticsTrace].platform_field_key_cache[field]
else
nil
end
if platform_key && trace_field
return super if !defined?(AppOpticsAPM) || gql_config[:enabled] == false
layer = platform_key
kvs = metadata({query: query, field: field, ast_node: ast_node, arguments: arguments, object: object}, layer)
::AppOpticsAPM::SDK.trace(layer, kvs) do
kvs.clear super
end
else
super
end
end
|