跳转到主要内容

什么是 Laravel Pulse

Laravel Pulse 是一个能一眼掌握应用性能与使用情况的监控仪表盘。 你可以用它定位慢任务、慢接口等瓶颈,也可以了解最活跃的用户。

Telescope 与 Pulse 的区别

需要针对单个事件深度调试时,请使用 Laravel Telescope

数据流图


安装

Pulse 的官方存储实现需要 MySQL、MariaDB 或 PostgreSQL。如果你使用其他数据库引擎,请为 Pulse 数据单独准备一个 MySQL、MariaDB 或 PostgreSQL 数据库。
1

安装扩展包

使用 Composer 安装 Pulse。
2

发布配置文件与迁移

通过 vendor:publish Artisan 命令发布文件。
3

执行迁移

创建用于保存 Pulse 数据的表。
迁移完成后,就可以通过 /pulse 路由访问仪表盘。

单独发布配置文件

也可以只发布配置文件进行定制。

访问仪表盘

认证设置

默认情况下,只有 local 环境可以访问仪表盘。 在生产环境中,请通过自定义 viewPulse 授权 Gate 来控制访问。
把上面的代码加入 app/Providers/AppServiceProvider.phpboot 方法。

仪表盘的自定义

可以发布仪表盘视图,自定义卡片和布局。
发布后编辑 resources/views/vendor/pulse/dashboard.blade.php。 仪表盘基于 Livewire 实现,因此无需构建 JavaScript 即可定制。
每个卡片可以通过 colsrows 属性调整尺寸和位置。

记录器(Recorders)

记录器负责捕获应用的事件并写入 Pulse 数据库。 配置位于 config/pulse.phprecorders 部分。

Requests / Slow Requests

Requests 记录器会捕获对应用的请求信息。 可以设置慢路由的阈值(默认 1000ms)、采样率以及需要忽略的路径。

Slow Jobs

SlowJobs 记录器会捕获超出阈值的慢任务(默认 1000ms)。 可以为不同任务设置不同的阈值。

Exceptions

Exceptions 记录器会捕获应用中可上报的异常,并按异常类和发生位置分组。

Cache

CacheInteractions 记录器会捕获缓存命中与未命中,也可以用正则把类似的键分组。

Queues

Queues 记录器会捕获队列中任务的吞吐量(排队、处理中、已完成、释放、失败)。

Servers

Servers 记录器会捕获运行应用的服务器的 CPU、内存与磁盘使用情况。 使用该记录器需要在每台被监控的服务器上保持 pulse:check 命令常驻运行。
服务器名默认使用 PHP gethostname() 的返回值。要自定义可以设置环境变量。

Users

UserRequestsUserJobs 记录器会捕获发起请求或任务的用户信息,展示在 “Application Usage” 卡片中。

Redis Ingest

在高流量环境下,可以先把条目发送到 Redis 流,再由 Pulse 从流中读取写入数据库。
使用 Redis 摄取时需要用 pulse:work 命令监听流。

采样

高流量场景下,如果记录所有事件,数据库中可能会积累数百万行。 启用采样后,只会记录部分事件,仪表盘会以近似值显示。
近似值前会显示 ~。 指标条目数越多,即使降低采样率也能保持较高的精度。

环境变量

主要配置可以通过环境变量控制。

自定义卡片

你可以创建自己的 Pulse 卡片展示应用专属的数据。 卡片以 Livewire 组件的形式实现。
在卡片视图中,可以使用 Pulse 提供的 Blade 组件保持统一的外观。
使用 Pulse::record 方法可以采集自定义数据。
创建好的组件可以嵌入到仪表盘视图中。

小结

下一步

错误处理

了解应用的异常处理与上报机制。

日志

介绍 Laravel 日志系统的配置与使用方式。
最后修改于 2026年7月18日