搭了个 Laravel Pulse 在线 demo,欢迎体验
在线体验 Pulse 面板: pulse-demo.xuchunyang.cn/pulse

下午试了试 Laravel Pulse 面板,顺便用 Forge 部署到了线上,为了能有东西监控,针对性地加了:
- eloquent 数据库 (「用户管理」、「电影列表」)
- 队列 (「测试 Queue 任务」)
- 缓存 (「用户登录」)
- 服务器端发起 http 请求 (「抓取网站 SEO」)
监听 Event 事件
Pulse 面板主要通过监听各种 Event 事件,获得各种数据。安装 Pulse 后,会发现增加了很多监听:
➜ pulse-demo git:(main) artisan event:list | grep -i -B 1 pulse
Illuminate\Auth\Events\Logout .......................................
⇂ Closure at: /vendor/laravel/pulse/src/PulseServiceProvider.php:120
--
Illuminate\Cache\Events\CacheHit ....................................
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
--
Illuminate\Cache\Events\CacheMissed .................................
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
--
Illuminate\Database\Events\QueryExecuted ............................
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
--
Illuminate\Queue\Events\JobFailed ...................................
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
--
Illuminate\Queue\Events\JobProcessed ................................
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
--
Illuminate\Queue\Events\JobProcessing ...............................
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
--
Illuminate\Queue\Events\JobQueued ...................................
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
--
Illuminate\Queue\Events\JobReleasedAfterException ...................
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
Illuminate\Queue\Events\Looping .....................................
⇂ Closure at: /vendor/laravel/pulse/src/PulseServiceProvider.php:129
Illuminate\Queue\Events\WorkerStopping ..............................
⇂ Closure at: /vendor/laravel/pulse/src/PulseServiceProvider.php:129
Laravel\Octane\Events\RequestReceived ...............................
⇂ Closure at: /vendor/laravel/pulse/src/PulseServiceProvider.php:152
--
Laravel\Octane\Events\TaskReceived ..................................
⇂ Closure at: /vendor/laravel/pulse/src/PulseServiceProvider.php:152
Laravel\Octane\Events\TickReceived ..................................
⇂ Closure at: /vendor/laravel/pulse/src/PulseServiceProvider.php:152
Laravel\Pulse\Events\ExceptionReported ..............................
⇂ Closure at: /vendor/laravel/pulse/src/Recorders/Exceptions.php:40
Laravel\Pulse\Events\SharedBeat .....................................
⇂ Closure at: /vendor/laravel/pulse/src/Pulse.php:123
➜ pulse-demo git:(main)
默认的采样率相当于是 100%,比如所有的 CacheHit 事件都会被一一记录,对于某些应用估计会影响性能,但我还没了解过自定义采样率。
服务器状态其实跟 Laravel 没多少关系,它也是单独实现的,在 Forge 上会让你开启一个 pulse:check 的后台 daemon,定期更新服务器信息。

关于 LearnKu
主题发表之后,提示成功了,但是怎么找不到,自己的用户中心也没有,导致我以为没发表成功,又写了一遍,这才明白怎么回事儿。
触发敏感词了,我给你审核了
我开了公共访问,所以没有登录也能查看 Pulse 面板。Livewire 的作者在 Twitter 上表示,也在使用,我看下了 livewire.laravel.com/pulse 确实有,但是咱们看不到。
Twitter 上一些牛人也开发/在计划一些 Pulse 扩展,比如集成 Oh Dear,N+1 问题等,官网上的定制截图显示的是一个代码部署的集成,Forge 有 API 估计方便集成。这些都不是大的项目,相当于一个小插件,估计折腾起来不难,但需要会 Livewire,我还不会。
这是干嘛用的?
给 artisan about 命令做了一个卡片,直接把的 artisan about 命令的 JSON 结果渲染到了网页,用到了 Livewire 组件,会每 5s 刷新一次
Laravel 的生态真是没有对手