apollo-studio-tracing
This gem extends the GraphQL Ruby gem to add support for sending trace data to Apollo Studio. It is intended to be a full-featured replacement for the unmaintained apollo-tracing-ruby gem, and it is built HEAVILY from the work done within the Gusto apollo-federation-ruby gem as well an exploratory branch created here.
DISCLAIMER
This gem is still in a beta stage and may have some bugs or incompatibilities. See the Known Issues and Limitations below. If you run into any problems, please file an issue.
Installation
Add this line to your application's Gemfile:
gem 'apollo-studio-tracing'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install apollo-studio-tracing
Getting Started
- Add
use ApolloStudioTracing
to your schema class. - Change your controller to add
apollo_tracing_enabled: true
to the execution context. Ensure thatapollo_client_name
andapollo_client_version
are set as well, for proper client information in Studio:
def execute
# ...
context = {
apollo_client_name: request.headers["apollographql-client-name"],
apollo_client_version: request.headers["apollographql-client-version"],
apollo_tracing_enabled: Rails.env.production?,
}
# ...
end
Updating the Apollo .proto definition
Install Google Protocol Buffers via Homebrew
$ brew install protobuf
Regenerate the Ruby protos with the included script:
$ bin/generate-proto.sh
Removing old client
Downloading latest Apollo Protobuf IDL
Generating Ruby client stubs
Known Issues and Limitations
- Only works with class-based schemas, the legacy
.define
API will not be supported