virchow/virlumen-telescope

用于lumen的望远镜

dev-master 2021-06-16 04:05 UTC

This package is not auto-updated.

Last update: 2024-09-19 17:43:09 UTC


README

继承自laravel官方的laravel/telescope,为lumen做了简化处理
(由于个人能力有限,仅做了一些常用事件的处理)

与laravel/telescope的区别

  • 由于lumen相对于laravel简化了很多,所以有一些laravel的事件,无法再直接监听,其中最主要的就是没有了对外提供的app()->terminating()方法,而laravel/telescope的数据入库确实是在这里处理的。所以不得已只能将这里的处理,分发到不同的地方处理
  • 对于request请求,由于lumen没有RequestHandled的事件监听,所以放在了中间件来生成数据,并使用Terminable中间件来保存数据
  • 对于command命令,修改了artisan脚本,同样使用terminate的方法,写入数据

使用方法

  1. composer require virchow/virlumen-telescope
  2. bootstrap/app.php中,引入中间件和注册服务类
     ...
     $app->middleware([
         Virchow\VirlumenTelescope\Middleware\Telescope::class
     ]);
     ...
     $app->register(Virchow\VirlumenTelescope\Providers\TelescopeProdiver::class);
     ...
    

    注意:由于默认监听了redis,所以在使用前,建议做好redis的注册,可以直接使用illuminate/redis

  3. 使用lumen的config创建方法,创建telescope.config并注册
  4. 迁移数据库文件
  5. 如果需要监听command命令,需要修改artisan脚本,手动调用terminate方法,如下

     $kernel = $app->make(
         'Illuminate\Contracts\Console\Kernel'
     );
        
     // exit($kernel->handle(new ArgvInput, new ConsoleOutput));
        
     $status = $kernel->handle($input = new ArgvInput, new ConsoleOutput);
     $kernel->terminate($input, $status);
     exit($status);
    

说明

  • 由于我更多的是使用做api服务,所以将laravel/telescope的视图等服务全部移除了。为了能够查询到数据,我又使用laravel框架搭建了一个telescope的监测系统,能够添加多个项目的监测。详见https://gitee.com/weixuhui/telescope-dashboard.git