Taylor 在 Laracon AU 展示了 Laravel Telescope!
Laravel Ecosystem 又多了一个非常 NB 的调试工具,专门为 Laravel 而生,免费!它可以代替 laravel debugbar 和 clockwork(其实各有优点,也不能说完全取代)。
Taylor 已经发布了测试版本:https://github.com/laravel/telescope ,安装很简单,不过暂时需要最新的 laravel。因为是测试版本,所以有 bug 是正常的,会在新版本中 fix。
我有幸在现场听了 Taylor 的演讲,先附上 Matt 写的第一手博客:https://mattstauffer.com/blog/introducing-... ,社区也已经在翻译这篇文章:翻译:Laravel Telescope 完美的应用调试工具 。
整体感受,很强大,会对开发带来极大的方便,而且 production 环境也可以用。不过 Taylor 说了:这个并不是用来代替比如 bugsnag 这样第三方的 application monitor。
从上面的图片中可以看出,它有14个 Watchers/Entries:Requests,Commands,Schedule,Jobs,Exceptions,Logs,Dumps,Queries,Models,Events,Mail,Notifications,Cache,Redis,所以捕捉了很多不同的重要信息。(UI 还支持 Dark Mode)
Matt 博客里写的比较详细了,我在这里做些总结:
-
支持的 PHP 版本
这个是场外回答的,他没肯定,提到了 5.5,5.6,7+。(测试版本需要"php": "^7.1.3"
和"laravel/framework" : "~5.7.7"
,到底支不支持低版本暂不确定) -
能不能用于 API 开发
必须的,这也是目前 debugbar 的最大缺陷。 -
数据存储在哪里
可以存储在项目的同一个数据库里,也可以存储在 redis 里,或者:你可以有单独的一个数据库,专门用来存储不同项目的 telescope 数据,个人觉得这个还有更大的用处,假设你有10个项目的数据,因为在同一个数据库,可以数据分析,做成图形报告什么的,比如哪个项目的 exception 最多,发生的频率等等。 -
可不可以控制存储多少数据
有配置文件,你可以控制存储的量:比如 100 条,超过会自动删除(还可以配置删除超过一定时间的数据)。14个 Watchers 也都可以单独设置,例如生产环境中你不需要记录每个请求,就可以 disable 掉。此外还可以在 Telescope Service Provider 里用方法控制:function ($entry) { if (local) { return true; } return $entry->isReportableException || $entry->isfailedJob() || $entry->isScheduledTask() || $entry->hasMonitoredTag(); }
-
Authorization
和 Laravel Nova 的配置一样,指定可以登入的所有邮件
或者用ViewTelescope Gate
。 -
有个 tag 的概念,比如 HTTP Request 会自动 tag 已登入的用户,Job 可以 tag 相关联的用户,所以可以用 tags 筛选记录,查看关于某用户的所有 watchers。
-
关于 Mail Watcher
这个我觉得是非常方便,因为以前用的是 Mailcatcher 拦截测试本地邮件,后来换成了Mailtrap,现在有了这个,可以直接在 telescope 里查看和下载发送的邮件。只需要在本地环境把 mail driver 改成 log:MAIL_DRIVER=log
-
关于 Dump Watcher
这个绝对赞,dump
将会把数据输出到 telescope 里! -
关于 Query Watcher
不用多说,这个可以帮助查看你的 sql 语句,N+1 问题等。你还可以设置一个时间,比如 如果语句查询的时间超过1秒,那么这些 query 将会被 tag 为 slow,页面还会用 红色 字体标识。 -
关于 Model Watcher
可以查看 model 什么时候被创建和更新了,会显示被更新的数据,这个感觉如果扩展下,应该可以查看 model 的历史版本。 -
Taylor 在 twitter 里提到了会加入 filters,从而保证一些 private data 不被记录。
最后说一下,因为是 open srouce,未来肯定会有更多的功能被加进去,绝对是一利器!
PS:我还会出一篇博客,把学到的东西分享下,因为幻灯片很多都没出来,要靠回忆。。。
内容已经更新!
要钱吗?
期待期待哈
https://mattstauffer.com/blog/introducing-... :smiley:
不知道api开发能不能用 debugbar api开发就不能用
这都是啥东西
@dope2008
免费,是 Open Source 的。
@Summer
😄周末花点时间整理整理,还有不少好的演讲,学到了不少。
@Instanced
Matt 就在现场写的博客,他是最后一个演讲,也很赞。
@Insua
可以的,这也是为什么创建这个的原因之一,API 开发可以用。
@wanghan
是一个调试工具,很强大,会用它代替 Debugbar 和 clockwork。
@jltxwesley 期待啊!!!!!!!!!!
超级期待!!!
@monkey
是呀,有了这个,项目中应该可以删除几个 package 了。
辛苦了
此处应该有666
期待发布~~~~
很6
https://github.com/laravel/telescope
@Littlesqx 谢谢提醒,一早起来就看见了 :smile: 今天去试试
要大一统了, 激动
这个怎么用?
@vopdoo
https://github.com/laravel/telescope 你要看下readme,我已经在一个项目中开始用了。
@jltxwesley 好的,之前没有找到 访问的面板的入口,现在已经访问到了 谢谢
Nb
赞
我想错了,我以为是单独出来的