Telescope
可用监听器
- 请求监视器
- 异常监视器
- 数据查询监视器
- gRPC请求监视器
- Redis监视器
- 日志监视器
- 命令行监视器
- 事件监视器
- HTTP Client 监视器
- 缓存监视器
- 定时任务监视器
安装
shell
composer require friendsofhyperf/telescope:~3.1.0
使用 vendor:publish
命令来发布其公共资源
shell
php bin/hyperf.php vendor:publish friendsofhyperf/telescope
运行 migrate
命令执行数据库变更来创建和保存 Telescope 需要的数据
shell
php bin/hyperf.php migrate
使用
监听器和中间件,二选一即可
请求监听器
在 config/autoload/listeners.php
配置文件添加监听器
php
<?php
return [
FriendsOfHyperf\Telescope\Listener\RequestHandledListener::class,
FriendsOfHyperf\Telescope\Listener\SetRequestLifecycleListener::class,
];
中间件
在 config/autoload/middlewares.php
配置文件加上全局中间件
如需记录http请求,请使用http
中间件
php
<?php
return [
'http' => [
FriendsOfHyperf\Telescope\Middleware\TelescopeMiddleware::class,
],
];
如需记录gRPC请求,请使用grpc
中间件
php
<?php
return [
'grpc' => [
FriendsOfHyperf\Telescope\Middleware\TelescopeMiddleware::class,
],
];
查看仪表板
http://127.0.0.1:9501/telescope
数据库配置
在 config/autoload/telescope.php
管理数据库连接配置,默认使用default
连接
php
'connection' => env('TELESCOPE_DB_CONNECTION', 'default'),
标签
您可能希望将自己的自定义标签附加到条目。为此,您可以使用 Telescope::tag
方法。
批量过滤
您可能只想记录某些特殊条件下的条目。为此,您可以使用 Telescope::filter
方法。
例子
php
use FriendsOfHyperf\Telescope\Telescope;
use Hyperf\Event\Contract\ListenerInterface;
use Hyperf\Framework\Event\BootApplication;
use FriendsOfHyperf\Telescope\IncomingEntry;
class TelescopeInitListener implements ListenerInterface
{
public function listen(): array
{
return [
BootApplication::class,
];
}
public function process(object $event): void
{
// attach your own custom tags
Telescope::tag(function (IncomingEntry $entry) {
if ($entry->type === 'request') {
return [
'status:' . $entry->content['response_status'],
'uri:'. $entry->content['uri'],
];
}
});
// filter entry
Telescope::filter(function (IncomingEntry $entry): bool {
if ($entry->type === 'request'){
if ($entry->content['uri'] == 'xxxx') {
return false;
}
}
return true;
});
}
}