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  ·  1年前

内容已经更新!

本帖由系统于 1年前 自动加精
jltxwesley
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 26
Summer

期待期待哈

1年前 评论

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

1年前 评论
wanghan

这都是啥东西

1年前 评论
jltxwesley

@dope2008

免费,是 Open Source 的。

1年前 评论
jltxwesley

@Summer

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

1年前 评论
jltxwesley

@Instanced

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

1年前 评论
jltxwesley

@Insua

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

1年前 评论
jltxwesley

@wanghan

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

1年前 评论
wanghan

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

1年前 评论
monkey

超级期待!!!

1年前 评论
jltxwesley

@monkey

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

1年前 评论
Everan

辛苦了

1年前 评论

此处应该有666

1年前 评论
jltxwesley

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

1年前 评论

要大一统了, 激动

1年前 评论

这个怎么用?

1年前 评论
jltxwesley

@vopdoo

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

1年前 评论

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

1年前 评论
装逼侠

Nb

1年前 评论
JaguarJack

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

1年前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!