菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
2190
26

Taylor 在 Laracon AU 展示了 Laravel Telescope!

原创
05/13 14:22
阅读数 2922

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

发表评论

0/200
2190 点赞
26 评论
收藏
为你推荐 换一批