接人 Sentry 机器人
不区分项目平台, 配置一致
1.打开飞书客户端
2.点击 +
按钮,选择创建群组
3.创建群组,填写群名称,点击创建
4.打开对话框,点击 ⚙
按钮
5.选择添加机器人
6.搜索 Sentry
,并添加
7.添加后在群里 @Sentry助手
,发送后,并点击 创建配置
8.点击复制按钮,并点击保存 webhook
9.选择项目
10.选择刚刚创建的项目,点击进入
11.进入项目设置页面
12.进入 webhook
设置页面
13.把飞书提供 webhook 地址
的填上,点击 Save Changes
,然后点击测试插件,飞书会发送一条信息
14.飞书会推送一条信息,配置完成!!!
配置自定义消息模板
:::tip
由于默认飞书的 Sentry机器人
信息不清晰,可以使用 飞书捷径
+ 自定义机器人
两种机器人来实现自定义消息模板
:::
上面 1-5
步一样
1.添加机器人,自行修改机器人名称、描述,下一步
2.拿到 webhook地址
,安全配置自行选择
3.搜索 飞书捷径
,并添加
4.找到 飞书捷径
机器人,点开 打开应用
5.创建飞书捷径,点击 选择触发器
,选择 webhook
6.webhook地址
记录下来,添加在上面第 13
步的配置中,参数
中填写下面数据(不需要改修改直接粘贴上去),点击确认完成配置
{
"id": "2",
"project": "项目名",
"project_name": "项目名",
"url": "sentry错误详情链接",
"event": {
"release": "版本号",
"environment": "英文环境名",
"extra": {
"date": "日期",
"environment": "中文环境名",
"hash": "路由",
"origin": "域名",
"errTitle": "域名",
"errType": "request|try",
"request": {
"message": "",
"url": "",
"method": "",
"status": 1,
"body": {},
"bodyText": "",
"data": {},
"dataText": "",
"headers": {}
},
"scid": "scid",
"search": "域名参数"
},
"title": "错误信息",
"id": "1"
}
}
7.点击下面按钮进行分支判断
8.设置两个条件,注意第二个选择项目的区别
第一个条件配置 | 第二个条件配置 |
---|---|
9.点击选择操作,选择 webhook
应用
10.配置设置选项
:::tip
请求方式: POST
URL: 为自定义机器人的 webhook 地址
数据类型: application/json
Data: 飞书消息卡片模板格式(具体说明点击 👆 链接)
Data 变量参数为上面 第6步 的数据格式
:::
:::danger
下面两个数据格式中 <event.xxx.xxx>
为选择的变量数据。
条件判断为 第8部 添加的值
:::
接口错误效果图
脚本错误效果图
- 接口报错数据格式
条件为: event.extra.errType(文本)等于 request
{
"msg_type": "interactive",
"update_multi": true,
"card": {
"config": { "wide_screen_mode": true },
"elements": [
{ "tag": "markdown", "content": "**时间:** <event.extra.date>" },
{ "tag": "markdown", "content": "**SCID:** <event.extra.scid>" },
{ "tag": "markdown", "content": "**环境:** <event.extra.environment>" },
{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**路由:**\n <event.extra.hash>" } }] },
{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**域名:**\n <event.extra.origin>" } }] },
{ "tag": "hr" },
{ "tag": "markdown", "content": "**接口地址:**\n <event.extra.request.url>" },
{
"tag": "div",
"fields": [
{ "is_short": true, "text": { "tag": "lark_md", "content": "**请求类型:**\n <event.extra.request.method>" } },
{ "is_short": true, "text": { "tag": "lark_md", "content": "**状态码:**\n <event.extra.request.status>" } }
]
},
{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**请求体:**\n <event.extra.request.bodyText>" } }] },
{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**响应数据:**\n <event.extra.request.dataText>" } }] },
{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**错误信息:**\n <event.title>" } }] },
{ "tag": "action", "actions": [{ "tag": "button", "text": { "tag": "plain_text", "content": "查看详情" }, "url": "<event.url>", "type": "danger" }] },
{ "tag": "hr" },
{ "elements": [{ "content": "[来自Sentry](<event.url>)", "tag": "lark_md" }], "tag": "note" }
],
"header": { "template": "red", "title": { "content": "<event.extra.errTitle>", "tag": "plain_text" } }
}
}
- 脚本报错数据格式
条件为: event.extra.errType(文本)不包含 request
{
"msg_type": "interactive",
"update_multi": true,
"card": {
"config": { "wide_screen_mode": true },
"elements": [
{ "tag": "markdown", "content": "**时间:** <event.extra.date>" },
{ "tag": "markdown", "content": "**SCID:** <event.extra.scid>" },
{ "tag": "markdown", "content": "**环境:** <event.extra.environment>" },
{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**路由:**\n <event.extra.hash>" } }] },
{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**域名:**\n <event.extra.origin>" } }] },
{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**错误信息:**\n <event.title>" } }] },
{ "tag": "action", "actions": [{ "tag": "button", "text": { "tag": "plain_text", "content": "查看详情" }, "url": "<event.url>", "type": "danger" }] },
{ "tag": "hr" },
{ "elements": [{ "content": "[来自Sentry](<event.url>)", "tag": "lark_md" }], "tag": "note" }
],
"header": { "template": "red", "title": { "content": "<event.extra.errTitle>", "tag": "plain_text" } }
}
}