什么是 Laravel Pulse
Laravel Pulse 是一个能一眼掌握应用性能与使用情况的监控仪表盘。 你可以用它定位慢任务、慢接口等瓶颈,也可以了解最活跃的用户。Telescope 与 Pulse 的区别
需要针对单个事件深度调试时,请使用 Laravel Telescope。
数据流图
安装
1
安装扩展包
使用 Composer 安装 Pulse。
2
发布配置文件与迁移
通过
vendor:publish Artisan 命令发布文件。3
执行迁移
创建用于保存 Pulse 数据的表。
/pulse 路由访问仪表盘。
单独发布配置文件
也可以只发布配置文件进行定制。访问仪表盘
认证设置
默认情况下,只有local 环境可以访问仪表盘。
在生产环境中,请通过自定义 viewPulse 授权 Gate 来控制访问。
app/Providers/AppServiceProvider.php 的 boot 方法。
仪表盘的自定义
可以发布仪表盘视图,自定义卡片和布局。resources/views/vendor/pulse/dashboard.blade.php。
仪表盘基于 Livewire 实现,因此无需构建 JavaScript 即可定制。
cols 与 rows 属性调整尺寸和位置。
记录器(Recorders)
记录器负责捕获应用的事件并写入 Pulse 数据库。 配置位于config/pulse.php 的 recorders 部分。
Requests / Slow Requests
Requests 记录器会捕获对应用的请求信息。
可以设置慢路由的阈值(默认 1000ms)、采样率以及需要忽略的路径。
Slow Jobs
SlowJobs 记录器会捕获超出阈值的慢任务(默认 1000ms)。
可以为不同任务设置不同的阈值。
Exceptions
Exceptions 记录器会捕获应用中可上报的异常,并按异常类和发生位置分组。
Cache
CacheInteractions 记录器会捕获缓存命中与未命中,也可以用正则把类似的键分组。
Queues
Queues 记录器会捕获队列中任务的吞吐量(排队、处理中、已完成、释放、失败)。
Servers
Servers 记录器会捕获运行应用的服务器的 CPU、内存与磁盘使用情况。
使用该记录器需要在每台被监控的服务器上保持 pulse:check 命令常驻运行。
gethostname() 的返回值。要自定义可以设置环境变量。
Users
UserRequests 与 UserJobs 记录器会捕获发起请求或任务的用户信息,展示在 “Application Usage” 卡片中。
Redis Ingest
在高流量环境下,可以先把条目发送到 Redis 流,再由 Pulse 从流中读取写入数据库。pulse:work 命令监听流。
采样
高流量场景下,如果记录所有事件,数据库中可能会积累数百万行。 启用采样后,只会记录部分事件,仪表盘会以近似值显示。~。
指标条目数越多,即使降低采样率也能保持较高的精度。
环境变量
主要配置可以通过环境变量控制。自定义卡片
你可以创建自己的 Pulse 卡片展示应用专属的数据。 卡片以 Livewire 组件的形式实现。Pulse::record 方法可以采集自定义数据。
小结
下一步
错误处理
了解应用的异常处理与上报机制。
日志
介绍 Laravel 日志系统的配置与使用方式。