使用 Vigilance 监控 Laravel 队列、命令和调度器在任何驱动程序上的表现

最后更新于 经过

使用 Vigilance 镜像监控任何驱动程序上的 Laravel 队列、命令和调度器

警觉 这是一个监控仪表盘,用于追踪后台任务在生产环境中的实际运行情况。它会记录作业、Artisan 命令和计划任务从排队到运行、完成或失败的整个过程,并捕获参数、退出代码和异常跟踪信息。它与现有工具的不同之处在于,它不关心你使用哪种队列驱动程序:数据库、Redis、SQS、Beanstalkd 等,并且会将所有报告同步到同一位置。它需要 PHP 8.2+、Laravel 12 或 13、Livewire 3.5+ 或 4,并采用 MIT 许可证。

每次比赛,每位车手一次记录。

Horizo​​n 只监控 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 驱动程序提供 Horizo​​n 功能的工作进程监控器;以及通过 MCP 服务器对 AI 代理的只读访问权限。

您可以阅读文档和源代码。 GitHub

Yannick Lyn Fatt 的照片

Laravel News 的特约撰稿人和全栈 Web 开发人员。

归档于:
立方体

Laravel 时事通讯

加入超过 4 万名开发者的行列,不错过任何新的技巧、教程等内容。

图像
SerpApi

适用于您的 LLM 和 AI 应用的 Web 搜索 API

访问 SerpApi
鱼叉:新一代时间跟踪和发票标志

Harpoon:新一代时间跟踪和发票系统

新一代时间跟踪和计费软件,帮助您的机构规划和预测盈利的未来。

Harpoon:新一代时间跟踪和发票系统
Tinkerwell 徽标

廷克威尔

Laravel 开发者必备的代码运行器。可在本地和生产环境中体验 AI、自动补全和即时反馈功能。

廷克威尔
Shift 标志

转移

还在运行旧版本的 Laravel?立即实现 Laravel 自动升级和代码现代化,让您的应用程序保持最新状态。

转移
PhpStorm 标志

PhpStorm

首选的 PHP IDE,对 Laravel 及其生态系统提供广泛的开箱即用支持。

PhpStorm
绝不妥协标志

绝不妥协

来自 No Compromises 播客的两位经验丰富的开发者 Joel 和 Aaron 现在可以为您的 Laravel 项目提供服务。⬧ 固定费用 9500 美元/月。⬧ 无冗长的销售流程。⬧ 无需签订合同。⬧ 100% 退款保证。

绝不妥协
Lucky Media 标志

幸运传媒

Get Lucky Now——拥有十余年经验的 Laravel 开发理想之选!

幸运传媒
Kirschbaum 标志

樱桃树

提供创新和稳定性,确保您的Web应用程序取得成功。

樱桃树
SaaSykit:Laravel SaaS 入门套件徽标

SaaSykit:Laravel SaaS 入门套件

SaaSykit 是一个多租户 Laravel SaaS 入门套件,包含运行现代 SaaS 所需的所有功能,例如支付、美观的结账界面、管理面板、用户仪表盘、身份验证、现成组件、统计数据、博客、文档等等。

SaaSykit:Laravel SaaS 入门套件
Laravel Cloud 标志

Laravel 云

轻松创建和管理服务器,并在几秒钟内部署 Laravel 应用程序。

Laravel 云
了解 Softtech 的标志

了解软科技

Acquaint Softtech 提供 AI 就绪的 Laravel 开发人员,48 小时内即可上手,每月费用为 3000 美元,没有冗长的销售流程,并提供 100% 退款保证。

了解软科技
观看纪录片《PHP的故事》预告片

观看纪录片《PHP的故事》预告片

阅读文章
使用 Laravel 构建 AI:让你的 AI 代理拥有实时网络搜索功能(图片)。

使用 Laravel 构建 AI:让你的 AI 代理拥有实时网络搜索功能

阅读文章
Lattice:用 PHP 图片描述 Inertia UI

Lattice:用 PHP 描述 Inertia UI

阅读文章
我们如何使用 Fast Laravel Image 在边缘缓存 Laravel 新闻

我们如何使用 Fast Laravel 在边缘缓存 Laravel 新闻

阅读文章
Laravel 13.16.0 镜像中的 artisan dev 命令

Laravel 13.16.0 中的 artisan dev 命令

阅读文章
LaraOwl:Laravel 应用的自托管监控镜像

LaraOwl:Laravel 应用的自托管监控

阅读文章