Taylor 在 Laracon AU 展示了 Laravel Telescope!

file
Laravel Ecosystem 又多了一个非常 NB 的调试工具,专门为 Laravel 而生,免费!它可以代替 laravel debugbarclockwork(其实各有优点,也不能说完全取代)。

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 博客里写的比较详细了,我在这里做些总结:

  1. 支持的 PHP 版本
    这个是场外回答的,他没肯定,提到了 5.5,5.6,7+。(测试版本需要 "php": "^7.1.3""laravel/framework" : "~5.7.7",到底支不支持低版本暂不确定)

  2. 能不能用于 API 开发
    必须的,这也是目前 debugbar 的最大缺陷。

  3. 数据存储在哪里
    可以存储在项目的同一个数据库里,也可以存储在 redis 里,或者:你可以有单独的一个数据库,专门用来存储不同项目的 telescope 数据,个人觉得这个还有更大的用处,假设你有10个项目的数据,因为在同一个数据库,可以数据分析,做成图形报告什么的,比如哪个项目的 exception 最多,发生的频率等等。

  4. 可不可以控制存储多少数据
    有配置文件,你可以控制存储的量:比如 100 条,超过会自动删除(还可以配置删除超过一定时间的数据)。14个 Watchers 也都可以单独设置,例如生产环境中你不需要记录每个请求,就可以 disable 掉。此外还可以在 Telescope Service Provider 里用方法控制:

    function ($entry) {
    if (local) { return true; }
    
    return $entry->isReportableException ||
        $entry->isfailedJob() ||
        $entry->isScheduledTask() ||
        $entry->hasMonitoredTag();
    }
  5. Authorization
    和 Laravel Nova 的配置一样,指定可以登入的所有邮件 或者用 ViewTelescope Gate

  6. 有个 tag 的概念,比如 HTTP Request 会自动 tag 已登入的用户,Job 可以 tag 相关联的用户,所以可以用 tags 筛选记录,查看关于某用户的所有 watchers。

  7. 关于 Mail Watcher
    这个我觉得是非常方便,因为以前用的是 Mailcatcher 拦截测试本地邮件,后来换成了Mailtrap,现在有了这个,可以直接在 telescope 里查看下载发送的邮件。只需要在本地环境把 mail driver 改成 log:

    MAIL_DRIVER=log
  8. 关于 Dump Watcher
    这个绝对赞,dump 将会把数据输出到 telescope 里!

  9. 关于 Query Watcher
    不用多说,这个可以帮助查看你的 sql 语句,N+1 问题等。你还可以设置一个时间,比如 如果语句查询的时间超过1秒,那么这些 query 将会被 tag 为 slow,页面还会用 红色 字体标识。

  10. 关于 Model Watcher
    可以查看 model 什么时候被创建和更新了,会显示被更新的数据,这个感觉如果扩展下,应该可以查看 model 的历史版本。

  11. Taylor 在 twitter 里提到了会加入 filters,从而保证一些 private data 不被记录。

最后说一下,因为是 open srouce,未来肯定会有更多的功能被加进去,绝对是一利器!

PS:我还会出一篇博客,把学到的东西分享下,因为幻灯片很多都没出来,要靠回忆。。。
file

本帖已被设为精华帖!
附言 1  ·  5年前

内容已经更新!

本帖由系统于 5年前 自动加精
jltxwesley
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 26
Jennie

辛苦了

5年前 评论
JaguarJack

我想错了,我以为是单独出来的

5年前 评论
装逼侠

Nb

5年前 评论

@jltxwesley 好的,之前没有找到 访问的面板的入口,现在已经访问到了 谢谢

5年前 评论
jltxwesley

@vopdoo

https://github.com/laravel/telescope 你要看下readme,我已经在一个项目中开始用了。

5年前 评论

这个怎么用?

5年前 评论
月光

要大一统了, 激动

5年前 评论
jltxwesley

@Littlesqx 谢谢提醒,一早起来就看见了 :smile: 今天去试试

5年前 评论

此处应该有666

5年前 评论
jltxwesley

@monkey

是呀,有了这个,项目中应该可以删除几个 package 了。

5年前 评论
monkey

超级期待!!!

5年前 评论
wanghan

@jltxwesley 期待啊!!!!!!!!!!

5年前 评论
jltxwesley

@wanghan

是一个调试工具,很强大,会用它代替 Debugbar 和 clockwork。

5年前 评论
jltxwesley

@Insua

可以的,这也是为什么创建这个的原因之一,API 开发可以用。

5年前 评论
jltxwesley

@Instanced

Matt 就在现场写的博客,他是最后一个演讲,也很赞。

5年前 评论
jltxwesley

@Summer

😄周末花点时间整理整理,还有不少好的演讲,学到了不少。

5年前 评论
jltxwesley

@dope2008

免费,是 Open Source 的。

5年前 评论
wanghan

这都是啥东西

5年前 评论

不知道api开发能不能用 debugbar api开发就不能用

5年前 评论
Summer

期待期待哈

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!