module GraphQL::Tracing::NewRelicTrace

def execute_query(query:)

def execute_query(query:)
  set_this_txn_name =  query.context[:set_new_relic_transaction_name]
  if set_this_txn_name == true || (set_this_txn_name.nil? && @set_transaction_name)
    NewRelic::Agent.set_transaction_name(transaction_name(query))
  end
  NewRelic::Agent::MethodTracerHelpers.trace_execution_scoped("GraphQL/execute") do
    super
  end
end

def initialize(set_transaction_name: false, **_rest)

Parameters:
  • set_transaction_name (Boolean) -- If true, the GraphQL operation name will be used as the transaction name.
def initialize(set_transaction_name: false, **_rest)
  @set_transaction_name = set_transaction_name
  super
end

def platform_authorized(platform_key)

def platform_authorized(platform_key)
  NewRelic::Agent::MethodTracerHelpers.trace_execution_scoped(platform_key) do
    yield
  end
end

def platform_authorized_key(type)

def platform_authorized_key(type)
  "GraphQL/Authorize/#{type.graphql_name}"
end

def platform_execute_field(platform_key)

def platform_execute_field(platform_key)
  NewRelic::Agent::MethodTracerHelpers.trace_execution_scoped(platform_key) do
    yield
  end
end

def platform_field_key(field)

def platform_field_key(field)
  "GraphQL/#{field.owner.graphql_name}/#{field.graphql_name}"
end

def platform_resolve_type(platform_key)

def platform_resolve_type(platform_key)
  NewRelic::Agent::MethodTracerHelpers.trace_execution_scoped(platform_key) do
    yield
  end
end

def platform_resolve_type_key(type)

def platform_resolve_type_key(type)
  "GraphQL/ResolveType/#{type.graphql_name}"
end