Sentry 自动化异常提醒

简介

Sentry 是什么?中文翻译过来是 哨兵 的意思,从字面中可以知道 『站岗、放哨、巡逻、稽查的士兵』,不错,Sentry 是程序的 哨兵 ,它可以监控我们在生产环境中项目的运行状态,一旦某段代码运行报错,或者异常,会第一时间把报错的 路由异常文件请求方式 等一些非常详细的信息以消息或者邮件给我们,让我们第一时间知道:程序出错了,然后我们可以从 Sentry 给我们的详细的错误信息中瞬间找到我们需要处理的代码,在老板不知情的情况下悄悄把 Bug 修复调,你肯定不想等着老板来找你吧。

开始

你如果试用 Sentry 官方提供给你的服务是需要收费的,不过可以免费试用,当然你也可以自己搭建 Sentry文档 自行搭建当然就不收费啦。文档最下方有两种安装方式一个是 docker 一个是 pythonDocker 安装 HerePython 安装 Here

file

这是 Sentry 的官网,我们先不管来体验一把,注册一个账号

file

准备完毕之后先看文档,其实官方给出的文档非常详细

file

选择我们大爱的 PHP Laravel 框架,

拉取

$ composer require sentry/sentry-laravel

添加进服务提供者和门面

'providers' => array(
    // ...
    Sentry\SentryLaravel\SentryLaravelServiceProvider::class,
)

'aliases' => array(
    // ...
    'Sentry' => Sentry\SentryLaravel\SentryFacade::class,
)

然后在 App/Exceptions/Handler.php report 修改如下方法

public function report(Exception $exception)
{
    if ($this->shouldReport($exception)) {
        app('sentry')->captureException($exception);
    }
    parent::report($exception);
}

生成配置文件, 配置文件在 config/sentry.php

$ php artisan vendor:publish --provider="Sentry\SentryLaravel\SentryLaravelServiceProvider"

file

在配置文件中 dsn 就在我们看的文档下方,每个用户的 dsn 都是唯一的,在你的项目中配置了 dsn ,Sentry 就能监控你的项目。

file

好了基本配置就这么完事儿,然后现在我们访问当前项目,然后在路由上面乱输入一通。

file

我们会及时收到错误反馈

file

当然也会往我们的邮箱里面发送
file

并且非常详细!!

Sentry 可以和澳大利亚公司旗下的产品 HipChat 互相通信 www.atlassian.com/software

file

HipChat 也会受到 Sentry 的错误消息 ^_^

End !

参考:www.laravist.com/series/tools-that...

PS

感谢关注「GitHub 热门」公众号,带你了解技术圈内热门新鲜事!

file

本作品采用《CC 协议》,转载必须注明作者和本文链接
感谢关注「GitHub 热门」公众号
本帖由 Summer 于 7年前 加精
Destiny
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 29

我的哥,这个可以有! @Summer 你也装一个!

7年前 评论
Destiny

@JokerLinly 。。。

7年前 评论
dividez

666666666666666666666666

7年前 评论

@Destiny 配置 DNS 那里我不大理解要填的内容

7年前 评论

@JokerLinly 是填入 sentry 给的地址么?然后收到错误反馈其实是在 Sentry 的网站里面才能看到?

7年前 评论
Destiny

@JokerLinly 会发送到你邮箱里面,我修改下内容

7年前 评论
Destiny

@JokerLinly dsn 在文档下方,写到生成的那个配置文件里面,或者 env ,填入了这个 sentry 就可以监控到你的项目了

7年前 评论
Summer

@JokerLinly 国内响应并不好

7年前 评论

国内用bearychat吧

7年前 评论

@Summer 有源代码可以自建呢

7年前 评论

如果有使用docker的习惯,自行搭建过程还是非常便捷的

7年前 评论

纠正一下,Sentry 并不是 Atlassian 旗下的产品, 虽然可以和 HipChat 联动...

7年前 评论
Destiny

@NauxLiu 哦哦,哈哈,我马上修改。。。。。轩哥今天怎么没来啊,祥哥都来了。

7年前 评论
Destiny

@cjjian 佳佳。。。。没你快

7年前 评论
Destiny

@cjjian

file

娃哈哈哈哈

7年前 评论
Destiny

@NauxLiu 。。。。。信,听说你看了好久电视剧。。哈哈

7年前 评论
Destiny

@lx1036 嘿嘿,都是祥哥提点。。

7年前 评论

"当让也会往我们的邮箱里面发送" 正文错字!

7年前 评论
Destiny

@aqyuyang :+1: 已修改!

7年前 评论
dividez

嗯,快!

7年前 评论

之前用的国内的 oneAPM,监看效果很给力,不过上市之后就收费了。不过国外的服务不考虑一下网速么?

7年前 评论
Destiny

@daydaygo 自己搭建下 sentry 这个服务速度还是很快的。

7年前 评论
mouyong

@Destiny 最喜欢你这样勤快的孩子了,给你个大大的赞 :kissing_heart:,棒棒哒

7年前 评论

实际测试中发现无响应,查询官网资料https://docs.sentry.io/clients/php/integrations/laravel/,可知

php artisan sentry:test命令测试

[sentry] There was an error sending the test event:
Could not resolve host: sentry.xxxx.com; Name or service not known

报域名或服务未知,在/etc/hosts中添加域名映射即可

6年前 评论
Destiny

@Qinzm :+1: :kissing_heart:

6年前 评论

从队列内部调用 app('sentry')->captureException($exception); 貌似不好用, 还有我测试 队列 --tries=1 队列报错 sentry 也不能监听到此错误. 大佬有什么经验吗

5年前 评论

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