使用 Sentry 做异常监控 - 借助飞书捷径,我快速完成了 Sentry 上报异常的自动推送,点赞!

17,616 阅读6分钟

本文为稀土掘金技术社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究!

前言

最近小编在做关于 Sentry 上报异常自动推送给工作群的功能。一开始想的技术方案非常普遍,就是实现一个 node 服务,暴露一个接口给 Sentry 应用的 webhook。这样,Sentry 上报的异常,就可以先推送给 node 服务,然后借助 node 服务再推送给飞书(企业微信、钉钉)机器人。

在小编正准备着手码代码的时候,偶然得知飞书提供的飞书捷径功能可以通过可视化的配置实现上面的技术方案,并且不用写一行代码,而且不用部署 node 服务,不由得喜出望外,马不停蹄赶紧去尝试。经过一番捣鼓,顺利实现了所有预期需求,成就感顿时拉满。

在这里,小编特意对整个配置过程做了梳理,形成文档,希望同样对这一方面感兴趣并且也有相同诉求的小伙伴们也能 get 到这个小技巧,😄。

本文的目录结构如下:

配置一个可自动推送 Sentry 异常信息的飞书捷径

废话不多说,我们直接步入正题。

配置一个满足条件的飞书捷径,我们需要完成下面四个步骤:

  1. 在飞书消息中创建一个异常消息上报群,并给消息群配置一个飞书机器人

  2. 在飞书工作台中配置一个飞书捷径

  3. 给一个指定的 Sentry 项目配置一个 Webhook,并接入飞书捷径提供的 webhook 地址;

  4. 测试整个全链路配置是否生效;

接下来小编就给大家一一展示各个步骤是如何配置的。

配置异常消息上报群

不管大家在工作中使用的是飞书,还是企业微信、钉钉,都可以在消息群中配置一个机器人来自动推送消息。

飞书为例,配置过程如下:

  1. 创建一个异常消息上报群

    image.png

  2. 给消息群配置一个飞书机器人

    Sep-11-2022 15-53-22.gif

在配置的飞书机器人中,webhook 信息是最重要的,将会在后面的飞书捷径配置中用到。

配置飞书捷径

配置好消息群推送机器人以后,我们接下来开始配置一个简单的飞书捷径

整个配置过程如下:

  1. 打开飞书工作台,找到飞书捷径功能,然后点击创建飞书捷径

    Sep-11-2022 16-03-17.gif

    这样我们就可以创建一个飞书捷径了。

  2. 配置一个触发器

    Sep-11-2022 16-10-58.gif

    触发器的配置非常简单,直接选择 Sentry,然后选择新事件,就可以了。

  3. 配置一个操作

    Sep-11-2022 16-21-03.gif

    在配置一个操作时,需要:

    • 第一步,选择 webhook 应用;
    • 第二步,选择自定义请求;
    • 第三步,选择请求方式为 POST,数据类型为 application/json, url 为前面飞书推送机器人webhook,数据格式为飞书推送机器人富文本类型消息(详见 使用说明 - 富文本)。

    这样,一个飞书捷径操作就配置好了。

  4. 保存配置

    配置好触发器、操作,直接点击创建按钮。

    Sep-11-2022 16-32-56.gif

这样通过上面四个步骤,一个可对接 Sentry webhook,并可推送 Sentry 异常消息到飞书消息群的飞书捷径就配置好了。(配置好的飞书捷径,可以通过右上角的编辑按钮或者直接点击重复编辑)。

配置 Sentry Webhook

配置好飞书捷径以后,我们接下来需要在 SentryProject 中配置 Webhook,接入飞书捷径。

过程如下:

  1. 选定一个 Sentry Project,打开 Setting 页面,在 Legacy Intergrations 中开启 Webhook 功能;

    image.png

  2. Setting -> Alerts 中的 Webhook 中,接入飞书捷径触发器的 webhook

    image.png

    image.png

这样 Sentry Webhook 也配置好了。

测试配置

最后一步,我们来测试一下配置的飞书捷径是否生效。

我们可以通过 Setting Project -> Alerts -> WebHook 中的 Test Plugin 功能进行测试。

Sep-11-2022 16-52-13.gif

亲测有效哦,哈哈!

到这里,一个简单可用的飞书捷径就配置完成了。不过距离实际使用,还有一些差距,我们还需要继续完善它。

完整版的 Sentry 异常自动推送

一个完整可用的 Sentry 异常自动推送,需要满足以下几个条件:

  • 上报的异常可通过飞书捷径推送到异常消息群;

  • 推送的消息中包含异常的关键信息;

  • 不同的异常推送给不同的负责人;

为了实现这三个功能,我们需要对 Sentry Project飞书捷径做相关配置。

异常自动推送

要实现异常自动提送,我们需要在 Sentry Project 中创建一个 Alert Rule

image.png

image.png

点击 Create Alert Rule 按钮,开始配置 Alert Rule

image.png

点击 Set Conditions 按钮,进入配置页面。

image.png

配置满足条件的异常通过 Webhook 发送通知。

这样,Sentry 异常自动推送功能就配置好了。之后 Sentry 上报的异常都会自动通过 Webhook 推送给我们配置的消息群,通知开发人员及时去处理。

推送消息指定关键信息

将异常消息推送给消息群时,我们需要在推送消息中携带遗产改的关键信息,方便开发人员去快速定位问题。

这个需要我们在飞书捷径中去做配置。

打开 飞书捷径 -> 自定义飞书捷径 -> 操作 -> 数据格式,我们可以添加一些 Sentry 异常关键信息。

image.png

添加过程很简单,选好要添加的异常信息,然后在指定位置添加就可以了。

添加好异常信息的数据格式如下:

image.png

这样推送到消息群中的消息,就会携带异常的详细信息。点击请查看链接,可以直接跳转到 Sentry 异常页面。

不同的异常推送给不同的异常负责人

不同的异常推送给不同的异常负责人,我们也可以通过飞书捷径来实现。

这一次,我们需要在飞书捷径中配置分支功能,具体如下:

image.png

具体配置过程:

  • 配置设置条件;

    我们可以在这里配置不同的 Sentry Project 异常走不同的处理分支。

    image.png

    配置好的设置条件如下:

    image.png

  • 配置操作;

    我们可以在每个分支中配置一个 webhook 操作,在数据格式中添加消息要推送的成员。

    image.png

这样不同的异常推送给不同的负责人就完成了。

结束语

总的来说,通过飞书捷径来实现 Sentry 上报异常自动推送还是非常简单方便的,不用写代码,不用部署 node 服务,不知道大家有没有学废呢?当然,这个方案的前提是团队使用飞书,如果没有使用飞书,那还是老老实实的部署一个 node 服务吧,哈哈。

传送门

前端监控相关文章: