简介

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

自动化,实时的异常 收集、监控、提醒服务。

你如果试用 Sentry 官方提供给你的服务是需要收费的,不过可以免费试用。试用版有消息条数限制,注意不要超限。Sentry提供了开源版本,你也可以自己搭建 Sentry :自行搭建当然就不收费啦,这一点很赞。你可以查看 文档 自行安装,文档介绍的很详细。文档最下方有两种安装方式一个是 docker 一个是 python。 一般推荐docker,这个方便很多。

解决什么问题

比如服务端开发人员异常日志太多不便于查找,或太多了懒得查找了,或干脆没有记录。

如服务端开发人员没有生产环境主机权限,无法去查看异常日志。

Sentry将异常信息汇总、过滤、通知、图形化、报表展示,便于开发人员发现问题,调试解决问题

Sentry 使用体验

这是 Sentry 的官网 ,当然你也可以自己部署Sentry服务,我们先不管来体验一把,注册一个账号

Sentry 实时异常信息监控系统介绍 - 图1

登录系统后我们要创建一个项目,这个项目要对应我们需要监控异常的的项目。

Sentry 实时异常信息监控系统介绍 - 图2

创建项目时要选择所属语言和框架,基本支持大部分的常见语言和框架。我们以php laravel 项目为例。

项目创建成功后他会提示你如何将异常监控引入你的代码中

Sentry 实时异常信息监控系统介绍 - 图3

文字版:

  1. 1、安装sentry/sentry-laravel
  2. $ composer require sentry/sentry-laravel:1.6.1
  3. 注意: If youre on Laravel 5.5 or later the package will be auto-discovered.
  4. Otherwise you will need to manually configure it in your config/app.php.
  5. 我的测试laravel6.x 版本,跳过了这一步
  6. 2、加入sentry代码到laravel异常监控中
  7. public function report(Exception $exception)
  8. {
  9. if (app()->bound('sentry') && $this->shouldReport($exception)) {
  10. app('sentry')->captureException($exception);
  11. }
  12. parent::report($exception);
  13. }
  14. 除了如上所示加到异常监控中,我们还可以主动收集信息,在你任意想监控的地方可以通过主动调用上面代码实施监控
  15. 3、创建Sentry配置文件
  16. $ php artisan vendor:publish --provider="SentryLaravelServiceProvider"
  17. 4、将dsn加入到.env文件
  18. 这个dsn相当于远程sentry服务地址
  19. SENTRY_LARAVEL_DSN=https://e92f4e9b81524e89b7qwef64134c57f7@sentry.io/1238517
  20. 3、测试
  21. Route::get('/debug-sentry', function () {
  22. throw new Exception('My first Sentry error!');
  23. });
  24. laravel项目中加入以上路由,在浏览器访问一下就会将异常信息推送到Sentry控制台中。

按照以上步骤修改代码后点击底部按钮进入异常监控台:

Sentry 实时异常信息监控系统介绍 - 图4

请求一下laravel项目刚才我们添加的会抛出异常的路由,此时我们就看到了请求的异常信息,并且收到异常监控邮件。上图中我们可以看到异常出现次数、异常出现频率图

点击进入异常详情,如下所示:

Sentry 实时异常信息监控系统介绍 - 图5

此时我们可以看到非常详细的异常信息,包括异常内容、浏览器信息、PHP版本、访问者系统版本、访问路径、请求header、抛出异常用户环境百分比等大量信息。非常便于我们调试代码。

对于异常通知

Sentry在收到异常信息时,默认会给我们注册时填写的邮箱发送异常监控邮件。

除了邮件外Sentry也可以通过HipChat、钉钉等产品进行通知,需要时在研究一下,

End !

参考文章:https://learnku.com/articles/4235/sentry-automation-exception-alert