警觉 这是一个监控仪表盘,用于追踪后台任务在生产环境中的实际运行情况。它会记录作业、Artisan 命令和计划任务从排队到运行、完成或失败的整个过程,并捕获参数、退出代码和异常跟踪信息。它与现有工具的不同之处在于,它不关心你使用哪种队列驱动程序:数据库、Redis、SQS、Beanstalkd 等,并且会将所有报告同步到同一位置。它需要 PHP 8.2+、Laravel 12 或 13、Livewire 3.5+ 或 4,并采用 MIT 许可证。
每次比赛,每位车手一次记录。
Horizon 只监控 Redis 队列,而 Telescope 则专为本地调试而非生产环境而设计。Vigilance 则为每次运行写入一行记录,并在整个运行生命周期内持续更新,最终形成一条涵盖已排队作业、CLI 或调度器调用的命令以及调度器本身的单一时间线。每条记录包含执行参数、最终状态以及抛出异常时经过脱敏处理的异常跟踪信息。所有密钥都会在存储之前自动移除。
由于存储每次成功运行的数据成本很高,Vigilance 会在调度时进行采样,并保留失败的数据,而不管采样率如何:
警戒采样率
=
0.1警戒保留天数
=
7警戒数据库连接
=
监测
保留 10% 的成功运行结果,同时保留所有失败结果,可以保证繁忙队列中的数据量可控,并且指向
VIGILANCE_DB_CONNECTION
将监控写入操作与应用程序的主连接隔离,从而将监控写入操作与应用程序的主连接隔离开来。清理操作会根据保留设置,按计划命令运行。
根据打印表格进行人工分拣
选择启用控制功能后,Vigilance 可以直接从控制面板调度任务。您可以使用以下方式标记任务:
Dispatchable
合约,仪表盘通过反射读取构造函数签名来构建相应的表单:
使用
警戒\合同\可派遣
;班级
流程播客
实现
应该排队
,
可调度{
民众
静止的
细绳
警戒标签
=
“处理播客”
;
民众
功能
__构造
(
民众
播客
$podcast,
民众
布尔值
通知
=
真的
){}}
生成的表单可以处理标量、枚举、日期和 Eloquent 模型绑定,因此需要一个期望传入参数的构造函数。
Podcast
该模型会生成一个字段,用于解析记录。同样的机制也允许从用户界面运行已列入允许列表的 Artisan 命令。这两个功能默认都处于关闭状态,需要通过配置标志进行控制:
警戒控制已启用
=
真的
自定义指标和核心网站指标
除了运行历史记录外,Vigilance 还收集两种类型的应用程序数据。业务指标使用计数器和计量器 API,您可以从自己的代码中调用该 API:
使用
警觉
;警觉
::
增量
(
“注册”
(英文):警觉
::
测量
(
'cart_value'
购物车
->
全部的
());
对于前端数据,启用真实用户监控 (RUM) 并将 Blade 指令添加到布局中,即可从真实访问者收集核心 Web 指标 (LCP、INP、CLS、FCP、TTFB):
警惕_朗姆酒
=
真的
@vigilanceRum
这些数据会输入到仪表板的性能视图中,该视图会在队列和命令时间线旁边报告 p50、p95 和 p99 延迟和错误率。
安装和保护仪表盘
安装软件包,运行安装程序,然后进行迁移:
作曲家
要求
anousss007/警惕php
工匠
警惕:安装php
工匠
迁移
仪表盘默认仅限本地访问,直到您明确授权访问为止。您可以通过服务提供商的回调函数来定义谁可以查看它。
boot()
方法,或者使用门:
使用
警觉
;警觉
::
授權
(
fn
(请求)=>
数组
请求
->
用户
()
?->
电子邮件, [
'you@example.com'
,]));
从那里,它就住在那里
/vigilance
默认情况下。
这涵盖了 Vigilance 记录的核心内容,但其仪表盘的功能远不止于队列历史记录。它将异常情况分组到一个带有指纹识别的问题收件箱中,涵盖 Web 请求、排队作业、命令和浏览器;通过错误预算和消耗率警报跟踪服务级别目标;并通过比较部署前后的错误率来监控版本运行状况。其他可选功能包括:带有每个请求瀑布图和 N+1 检测的请求和作业跟踪;记录可用性和延迟的正常运行时间检查;与跟踪关联的可搜索日志浏览器;向 Slack、Discord、Teams 或 Webhook 发送警报;为非 Redis 驱动程序提供 Horizon 功能的工作进程监控器;以及通过 MCP 服务器对 AI 代理的只读访问权限。
您可以阅读文档和源代码。 GitHub 。







