> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GraphQL

[GraphQL](https://graphql-ruby.org/) é a gem Ruby para servidores GraphQL. O AppSignal suporta a gem GraphQL por meio do módulo de instrumentation embutido na gem GraphQL.

## Instrumentation

Para instrumentar seu app GraphQL usando o AppSignal, carregue o middleware do AppSignal no seu schema.

<CodeGroup>
  ```ruby Ruby theme={null}
  # TODO: Altere a classe do schema para a sua classe de schema
  class MySchema < GraphQL::Schema
    trace_with(GraphQL::Tracing::AppsignalTrace)
  end
  ```
</CodeGroup>

* Referência: [Documentação do GraphQL AppSignal](https://graphql-ruby.org/queries/tracing.html#appsignal).

## Personalizar namespace e action

Você pode usar os métodos auxiliares de instrumentation do AppSignal para personalizar ainda mais sua instrumentation. No exemplo abaixo, agrupamos as requisições por [namespace](/guides/namespaces) e nome da action:

<CodeGroup>
  ```ruby Ruby theme={null}
  class GraphqlController < ApplicationController
    def create
      result = MySchema.execute(params[:query], :variables => params[:variables], :context => {})
      render :json => result
    ensure
      # Personaliza o namespace
      Appsignal::Transaction.current.set_namespace("graphql")
      # Personaliza o nome da action baseado no operationName, se houver
      Appsignal::Transaction.current.set_action(params[:operationName] || "Unknown")
    end
  ```
</CodeGroup>
