stayallive / lighthouse-graphql-hive
Performance monitoring Lighthouse with GraphQL Hive.
Fund package maintenance!
stayallive
Installs: 21 883
Dependents: 0
Suggesters: 0
Security: 0
Stars: 22
Watchers: 6
Forks: 0
Open Issues: 0
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7
- laravel/framework: ^10|^11
- nuwave/lighthouse: ^6
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.15
- orchestra/testbench: ^8|^9
- phpunit/phpunit: ^10|^11
README
GraphQL Hive can measure and collect data against all your GraphQL operations and generate analytics on them.
This package aims to integrate GraphQL Hive with Lighthouse, a GraphQL server for Laravel.
Installation
composer require stayallive/lighthouse-graphql-hive
Add the following snippet to your config/services.php
file:
'graphqlhive' => [ 'enabled' => env('GRAPHQL_HIVE_ENABLED', false), 'token' => env('GRAPHQL_HIVE_TOKEN'), 'submitter' => env('GRAPHQL_HIVE_SUBMITTER'), 'queue' => env('GRAPHQL_HIVE_QUEUE'), ],
In your .env
configure at least the following:
GRAPHQL_HIVE_ENABLED=true GRAPHQL_HIVE_TOKEN=<your GraphQL Hive token>
Read more about how to obtain a GraphQL Hive token here.
Submitters
A submitter is the code that runs to aggregate and/or send the operation data collected to the GraphQL Hive API.
There are 2 submitters currently supported, we default to using the Queue submitter if none is configured:
Queue (default)
GRAPHQL_HIVE_SUBMITTER=Stayallive\Lighthouse\GraphQLHive\Submitter\Queue\Submitter
This submitter will push every operation to a queued job, the job will send every operation to GraphQL Hive.
You can configure the queue used to dispatch the jobs too by setting the GRAPHQL_HIVE_QUEUE
environment variable to the name of the queue.
Note: On high volumes this might cause issues with many queued jobs being pushed and being rate limited by the GraphQL Hive server.
Redis
GRAPHQL_HIVE_SUBMITTER=Stayallive\Lighthouse\GraphQLHive\Submitter\Redis\Submitter
This submitter will push every operation to a Redis list, a scheduled command will run every minut to batch send the operation to GraphQL Hive.
Note: This submitter requires a configured Redis connection.
Usage
You should only have to install this package to benefit, unless you have disabled package auto discovery, in that case you will need to add the service provider to
your config/app.php
manually.
You can optionally add the graphql-client
header to your requests in the format name:version
(like: my-app:1.2.3
) to see client stats in
the GraphQL Hive dashboard. You can also opt to set x-graphql-client-name
and x-graphql-client-version
headers instead.
Security Vulnerabilities
If you discover a security vulnerability within this package, please send an e-mail to Alex Bouma at alex+security@bouma.me
. All security vulnerabilities will be swiftly
addressed.
License
This package is open-sourced software licensed under the MIT license.