什么是 Laravel Telescope
Laravel Telescope 是 Laravel 官方的调试工具,用于将应用内部状态可视化。 它可以详细记录请求、异常、查询、任务、日志、邮件、通知、缓存操作、计划任务等信息。 它是本地开发环境专用的调试工具。生产环境监控请使用 Laravel Pulse 或 Laravel Nightwatch。监控涉及的层次
安装
安装完成后,你可以通过/telescope 访问仪表盘。
本地专用安装(推荐)
如果目的主要是本地调试,建议以
--dev 方式安装,并在 local 环境中手动注册服务提供者。telescope:install 之后,请从 bootstrap/providers.php 中删除 TelescopeServiceProvider 的注册。
然后在 App\Providers\AppServiceProvider 的 register 方法中手动注册。
composer.json 中禁用 auto-discovery。
可用的监视器(Watcher)
监视器负责在请求或命令执行期间收集遥测数据。 可以在config/telescope.php 中管理启用状态与配置。
Request Watcher
Request Watcher
记录请求、请求头、Session 及响应内容。
可以通过
size_limit 限制记录的响应大小。Query Watcher(特别重要)
Query Watcher(特别重要)
记录 SQL、绑定参数以及执行时间。
默认会将超过 100ms 的查询打上
slow 标签记录下来,非常适合用于性能瓶颈的检测。Job Watcher
Job Watcher
记录队列任务的入队与执行结果。
Exception Watcher
Exception Watcher
记录被 report 的异常和堆栈信息。
Log Watcher
Log Watcher
记录应用日志。
默认记录
error 以上级别,可通过配置降低至 debug。Command Watcher
Command Watcher
记录 Artisan 命令的参数、选项、输出及退出码。
Event Watcher
Event Watcher
记录被 dispatch 的事件的负载与监听器信息(Laravel 内部事件除外)。
Cache Watcher
Cache Watcher
记录缓存的命中、未命中、更新与删除。
Redis Watcher
Redis Watcher
记录应用中执行的 Redis 命令。
Model Watcher
Model Watcher
记录 Eloquent 模型事件,并可根据需要收集 hydration 数量。
Notification Watcher
Notification Watcher
记录发出的通知。
Mail Watcher
Mail Watcher
支持在浏览器中预览发送的邮件,还可以下载为
.eml 文件。HTTP Client Watcher
HTTP Client Watcher
记录发出的 HTTP 客户端请求。
Gate Watcher
Gate Watcher
记录 Gate / Policy 的授权判断结果。
Schedule Watcher
Schedule Watcher
记录被调度执行的命令及其输出。
View Watcher
View Watcher
记录渲染视图的名称、路径、数据以及 composer。
Batch Watcher
Batch Watcher
记录队列批次信息(任务与连接等)。
Dump Watcher
Dump Watcher
在 Telescope 的 Dump 标签打开期间,记录
dump 输出。小结
| 任务 | 推荐做法 |
|---|---|
| 引入 | composer require laravel/telescope --dev |
| 保证仅在本地生效 | 手动注册服务提供者 + dont-discover |
| 数据库性能排查 | 利用 Query Watcher 的慢查询标签(默认 100ms) |
下一步
Laravel Pulse
引入用于生产环境性能聚合的仪表盘。
Laravel Nightwatch
生产环境的实时监控可以使用 Nightwatch。