Sentry 自动化异常提醒
简介
Sentry 是什么?中文翻译过来是 哨兵
的意思,从字面中可以知道 『站岗、放哨、巡逻、稽查的士兵』,不错,Sentry 是程序的 哨兵
,它可以监控我们在生产环境中项目的运行状态,一旦某段代码运行报错,或者异常,会第一时间把报错的 路由
,异常文件
,请求方式
等一些非常详细的信息以消息或者邮件给我们,让我们第一时间知道:程序出错了
,然后我们可以从 Sentry
给我们的详细的错误信息中瞬间找到我们需要处理的代码,在老板不知情的情况下悄悄把 Bug
修复调,你肯定不想等着老板来找你吧。
开始
你如果试用 Sentry 官方提供给你的服务是需要收费的,不过可以免费试用,当然你也可以自己搭建 Sentry
:文档 自行搭建当然就不收费啦。文档最下方有两种安装方式一个是 docker
一个是 python
,Docker 安装 Here,Python 安装 Here
这是 Sentry 的官网,我们先不管来体验一把,注册一个账号
准备完毕之后先看文档,其实官方给出的文档非常详细
选择我们大爱的 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"
在配置文件中 dsn
就在我们看的文档下方,每个用户的 dsn 都是唯一的,在你的项目中配置了 dsn ,Sentry 就能监控你的项目。
好了基本配置就这么完事儿,然后现在我们访问当前项目,然后在路由上面乱输入一通。
我们会及时收到错误反馈
当然也会往我们的邮箱里面发送
并且非常详细!!
Sentry 可以和澳大利亚公司旗下的产品 HipChat 互相通信 www.atlassian.com/software
HipChat 也会受到 Sentry
的错误消息 ^_^
End !
参考:www.laravist.com/series/tools-that...
PS
感谢关注「GitHub 热门」公众号,带你了解技术圈内热门新鲜事!
本作品采用《CC 协议》,转载必须注明作者和本文链接
我的哥,这个可以有! @Summer 你也装一个!
@JokerLinly 。。。
666666666666666666666666
@Destiny 配置 DNS 那里我不大理解要填的内容
@JokerLinly 是填入 sentry 给的地址么?然后收到错误反馈其实是在 Sentry 的网站里面才能看到?
@JokerLinly 会发送到你邮箱里面,我修改下内容
@JokerLinly dsn 在文档下方,写到生成的那个配置文件里面,或者 env ,填入了这个 sentry 就可以监控到你的项目了
@Destiny 速度最快。:+1: :joy:
@JokerLinly 国内响应并不好
国内用bearychat吧
@Summer 有源代码可以自建呢
如果有使用docker的习惯,自行搭建过程还是非常便捷的
纠正一下,Sentry 并不是 Atlassian 旗下的产品, 虽然可以和 HipChat 联动...
@NauxLiu 哦哦,哈哈,我马上修改。。。。。轩哥今天怎么没来啊,祥哥都来了。
@cjjian 佳佳。。。。没你快
@Destiny


@cjjian
娃哈哈哈哈
@NauxLiu 说睡过头你信么 ?
@NauxLiu 。。。。。信,听说你看了好久电视剧。。哈哈
@lx1036 嘿嘿,都是祥哥提点。。
"当让也会往我们的邮箱里面发送" 正文错字!
@aqyuyang :+1: 已修改!
嗯,快!
之前用的国内的 oneAPM,监看效果很给力,不过上市之后就收费了。不过国外的服务不考虑一下网速么?
@daydaygo 自己搭建下 sentry 这个服务速度还是很快的。
@Destiny 最喜欢你这样勤快的孩子了,给你个大大的赞 :kissing_heart:,棒棒哒
实际测试中发现无响应,查询官网资料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中添加域名映射即可
@Qinzm :+1: :kissing_heart:
从队列内部调用
app('sentry')->captureException($exception);
貌似不好用, 还有我测试 队列 --tries=1 队列报错 sentry 也不能监听到此错误. 大佬有什么经验吗