stayallive / lighthouse-graphql-hive
使用 GraphQL Hive 监控 Lighthouse 的性能。
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 可以测量和收集针对所有 GraphQL 操作的数据,并生成相应的分析。
本包旨在将 GraphQL Hive 与 Lighthouse 集成,后者是 GraphQL 服务器的 Laravel 实现。
安装
composer require stayallive/lighthouse-graphql-hive
将以下代码片段添加到您的 config/services.php
文件中
'graphqlhive' => [ 'enabled' => env('GRAPHQL_HIVE_ENABLED', false), 'token' => env('GRAPHQL_HIVE_TOKEN'), 'submitter' => env('GRAPHQL_HIVE_SUBMITTER'), 'queue' => env('GRAPHQL_HIVE_QUEUE'), ],
在您的 .env
文件中至少配置以下内容
GRAPHQL_HIVE_ENABLED=true GRAPHQL_HIVE_TOKEN=<your GraphQL Hive token>
有关如何获取 GraphQL Hive 令牌的更多信息,请参阅此处。
提交者
提交者是运行以聚合和/或将收集的操作数据发送到 GraphQL Hive API 的代码。
目前支持 2 个提交者,如果没有配置任何提交者,则默认使用 Queue 提交者。
队列(默认)
GRAPHQL_HIVE_SUBMITTER=Stayallive\Lighthouse\GraphQLHive\Submitter\Queue\Submitter
此提交者将每个操作推送到队列作业,作业将每个操作发送到 GraphQL Hive。
您还可以通过设置环境变量 GRAPHQL_HIVE_QUEUE
为队列的名称来配置用于调度作业的队列。
注意:在高流量下,这可能会因为许多排队作业被推送到和被 GraphQL Hive 服务器速率限制而导致问题。
Redis
GRAPHQL_HIVE_SUBMITTER=Stayallive\Lighthouse\GraphQLHive\Submitter\Redis\Submitter
此提交者将每个操作推送到 Redis 列表,一个计划命令将每分钟运行一次,批量发送操作到 GraphQL Hive。
注意:此提交者需要配置 Redis 连接。
使用
您只需要安装此包即可受益,除非您已禁用包自动发现,在这种情况下,您需要手动将服务提供者添加到您的 config/app.php
文件中。
您可以选择在请求中添加格式为 name:version
的 graphql-client
标头(如:my-app:1.2.3
),以在 GraphQL Hive 仪表板中查看客户端统计信息。您也可以选择设置 x-graphql-client-name
和 x-graphql-client-version
标头。
安全漏洞
如果您在此包中发现了安全漏洞,请发送电子邮件至 Alex Bouma(地址:alex+security@bouma.me
)。所有安全漏洞都将迅速得到解决。
许可证
此包是开源软件,受 MIT 许可证 的许可。