Skip to main content

告警

端质量监控的一个重要能力就是告警,及时通知用户哪里发生了异常,才能及时止损,保障研发质量。

概述

Bugly 专业版的配置采用多任务设计,所有项目成员都可以创建自己的告警任务,告警任务之间彼此独立,互不干扰。

一个告警任务由任务名称,告警维度,监控时段,监控频率,告警条件,告警级别,通知方式,以及告警接收人的组成。

  • 监控时段,监控频率:描述什么时候执行告警任务,开启告警检查。
  • 告警维度、告警条件:描述什么情况下应该触发告警消息。
  • 告警级别、通知方式、告警接收人:描述告警发生时,应该通知谁,怎么通知。

简单来讲,用户创建一个告警任务,通过监控时段和监控频率来告诉告警系统,该告警任务以什么样的频率被执行,是每5分钟执行一次检查,还是每小时执行一次检查,或者是每天执行一次检查。通过告警维度和告警条件,用户指定了检查什么数据,以及什么情况下算异常。通过告警级别、通知方式以及告警接收人,约定了当告警发生时,告警消息以什么样的方式,通知给哪个用户。

如下图所示:告警任务名为大盘设备崩溃率异常,从创建任务起,每小时执行一次,检查大盘最近1小时的设备崩溃率是否>=0.12%(即0.0012)。如果最近1小时的设备崩溃率大于或者等于0.12%,则生成告警通知,通过邮件通知用户。

告警

功能亮点

Bugly 专业版对告警功能进行了全新升级,在原来崩溃告警的基础上,增加了许多新特性。

  1. 支持多个告警任务。用户可以配置多个告警任务,这些任务彼此独立,互不干扰。
  2. 支持更多的告警维度。Bugly 专业版支持的监控项,都支持告警,如卡顿,OOM,启动,内存等功能。
  3. 支持终端用户告警。用户可以监控指定用户的数据情况,例如在指定用户发生崩溃时,触发告警。
  4. 支持单个Issue告警。用户也可以针对关注的Issue,设置告警任务。当前相关Issue的数据发生波动时,能够及时了解情况。
  5. 告警配置更加灵活。Bugly 专业版通过提供监控时段,监控频率,过滤条件以及判异条件来提供灵活的告警配置能力。
  6. 告警通知更加清晰。当告警被触发时,Bugly专业版可以通过邮件,或者微信公众号的方式通知用户。
  7. 权限管理更规范 。不同的成员在告警平台都配置了告警任务,规范大家的使用权限非常重要。原则上,只有告警任务的创建者和接收者有权限修改告警任务,其他成员只能查看告警任务。管理员可以修改所有告警任务。

检查频率

监控时段

用来配置期望配置任务的生效时段,默认是全天生效,也可以指定生效时期。在不生效时段,监控任务不会被执行。

提醒

如果告警任务的监控频率是每天,也就是每天检查一次,则告警时段的设置不生效。每天执行的告警任务,暂不支持设置告警任务的执行时间,当前默认是每天的零点开始执行告警任务。

示例,如下图所示,监控时段为早上9点到晚上21点59分,即这个告警任务的监控频率如果是每5分钟,或者每10分钟,或者每小时,则在监控时段之外的时间不会被执行。

告警

监控频率

当前支持每5分钟,每10分钟,每小时,每天四个实时粒度。

示例:2023-06-01 13:13:43 创建任务

每5分钟:2023-06-01 13:15:00 开始,每5分钟检查一次,上一个整5分钟的数据。

每10分钟:2023-06-01 13:20:00 开始,每10分钟检查一次,上一个整10分钟的数据。

每小时:2023-06-01 14:00:00 开始,每小时检查一次,上一个整小时的数据。

每天:2023-06-01 00:00:00 开始,每天检查一次,上一天的数据。

告警

告警维度

告警维度当前支持崩溃,ANR,FOOM/OOM,错误,启动,内存峰值,FPS,挂起率,终端用户以及Issue告警。

终端用户告警支持崩溃,ANR,FOOM/OOM,错误以及卡顿个例。除此之外,还可以配置个例触发的阈值。例如,配置一天内,如果指定用户的卡顿个例上报次数大于3次则触发告警。

单个问题进行告警,当前支持崩溃、ANR、FOOM、错误以及卡顿的问题进行告警。可以通过问题的异常设备数,异常设备波动,问题异常率,问题异常率波动等维度来判定问题是否变严重。例如,某个访问DB的异常,我们没有办法彻底解决,只能降低发生的概率,经过一段时间的努力,终于降低到指定的概率范围。为了避免不恰当的使用导致恶化,我们可以配置一个告警任务来检查,大于指定应用版本的情况下,相应问题影响设备数的变化明显时通知我们。通过配置这个告警,我们将周期性的检查自动化,更加可靠。

告警条件

统计方式

统计方式支持大盘统计和分版本统计。大盘统计指,不区分版本,直接统计大盘数据。分版本统计指,按用户设置的版本选择,分版本统计数据。

  • 大盘统计,不区分版本,直接统计大盘数据。
  • 分版本统计-联网设备数Top,指按联网设备数排序(昨天的联网设备数),取TopN的版本,分别统计这N个版本的数据情况,检查这N个版本是否满足告警条件。如果有版本满足告警条件,则会触发告警,通知用户相关版本异常。
  • 分版本统计-影响设备数Top,指按影响设备数排序(昨天的影响设备数),取TopN的版本,分别统计这N个版本的数据情况。
  • 分版本统计-最近发布版本,指按Bugly观察到版本发布时间排序(跟数据总览/版本指标中的APP版本一致),取最近发布的N个版本,分别统计这N个版本的数据情况。
  • 分版本统计-指定版本,指用户指定N个版本,分别统计这N个版本的数据情况。

告警

过滤条件

过滤条件用来选择哪些数据参与统计,当不设置任何过滤条件时,监控时段内的所有数据都参与统计。

  1. 可以用来过滤指定机型的数据,或者选择指定SDK版本的数据。当前支持SDK版本,以及机型等几个维度的过滤。
  2. 过滤条件支持全且或者全或的关系。当设置多个过滤条件时,可以设置这些过滤条件的关系,是且关系,还是或关系。
  3. 当前只有部分监控项支持过滤条件,如FPS,挂起率,内存峰值等。

告警

判异条件

判异条件,用来设定需要触发告警消息的条件。在监控频率指定的时间段内,关注指标或者关注指标的波动超出阈值时,就会触发告警。

波动分为: 上升波动,下降波动,以及变化波动。

  • 上升波动 = (当前值 - 最近7天相同时段的平均值)/ 最近7天相同时段的平均值
  • 下降波动 = (最近7天相同时段的平均值 - 当前值)/ 最近7天相同时段的平均值
  • 变化波动 = ABS(当前值 - 最近7天相同时段的平均值)/ 最近7天相同时段的平均值

告警

告警通知

告警通知包含告警级别、通知方式和告警接收人。

  • 告警级别,当前支持通知,提醒,严重和紧急四个告警级别。

  • 通知方式,当前支持电子邮箱,微信公众号和告警回调。

  • 通知接收人,告警消息的接收人。

提醒
  1. 只有在个人信息中,登记了电子邮箱的通知接收人才可以通过电子邮箱收到告警通知。
  2. 只有已经绑定了微信公众号「腾讯Bugly」的通知接收人,才可以通过微信公众号「腾讯Bugly」接收告警通知。
  3. 如果想通过告警回调来接收告警消息,需要填写合法的告警回调地址。

告警

电子邮箱

如果通知接收人期望通过电子邮箱接收告警通知,需要在个人信息中,登记电子邮箱信息。

告警

微信公众号

如果通知接收人期望通过微信公众号接收告警通知,需要其先关注微信公众号「腾讯Bugly」,再在设置/告警中,扫码绑定该产品。

重要提醒
  1. 如果名下有多个产品,只需要扫码绑定一次,即可在多个产品的,多个告警任务中使用微信公众号通知。扫码绑定操作,跟帐号相关,跟帐号下的产品不相关。
  2. 如果使用同一个微信扫码绑定微信公众号多次,跟扫码绑定一次,效果是一样的。
  3. 如果分别使用不同的微信,扫码绑定微信公从号多次,则平台会记录并更新最新一次扫码绑定的微信号。

告警

告警

告警回调

告警回调,即Webhook,允许用户填写告警回调地址。当告警任务被触发时,告警消息可以通过告警回调通知到应用期望对接的系统。

当前告警回调会自动识别「企业微信机器人」,「飞书机器人」以及「钉钉机器人」的webhook,并按这些机型人要求的样式来通知webhook。

对于其他的webhook地址,Bugly按以下JSON格式发送告警通知:

{
"msgtype": "markdown",
"markdown": {
"content": "产品: test33 (f321560ce2) \n告警任务: test123 (272) \n告警维度: 崩溃 \n过滤条件: \n判异条件: 2024-03-16 00:10:00~00:15:00, 设备崩溃率变化波动(100%) >= 1 \n触发时间: 2024-03-16 00:15:19 \n详情链接: [告警历史](https://bu gly.tds.qq.com/v2/setting/alert?productId=f321560ce2&pid=1&tab=history)\n"
}
}
告警通知展示内容示例

产品: test33 (f321560ce2)

告警任务: test123 (272)

告警维度: 崩溃

过滤条件:

判异条件: 2024-03-16 00:10:00~00:15:00, 设备崩溃率变化波动(100%) >= 1

触发时间: 2024-03-16 00:15:19

详情链接: [告警历史](https://bu gly.tds.qq.com/v2/setting/alert?productId=f321560ce2&pid=1&tab=history)

例如,以下示例中,通过企业微信的群机器人创建的Webhook,当告警发生时,可以通过「企业微信」收到告警通知。

告警

权限管理

不同的成员在告警平台都配置了告警任务,规范大家的使用权限非常重要。原则上,只有告警任务的创建者和接收者有权限修改告警任务,其他成员只能查看告警任务。管理员可以修改所有告警任务。

操作管理员普通成员
创建新告警任务允许,并且告警接收人可以是任何人允许,告警接收人只能是自己
删除告警任务允许删除任何已经创建的告警任务只允许删除自己创建的任务
编辑告警任务允许编辑任何已经创建的告警任务只允许编辑自己创建的任务
开启/关闭任务允许开启/关闭任何已经创建的告警任务只允许开启/关闭自己创建的任务
调整告警消息的状态允许调整任何告警消息的状态只允许调整,自己作为接受人的告警消息的状态

案例演示

案例一:关注最近发布的5个版本的设备崩溃率情况。

第一步:分析当前数据,选择恰当的阈值。可以在数据总览/版本指标中,观察最近发布版本的质量情况,选择恰当的阈值。

告警

第二步:创建最近发布版本的设备崩溃率监控任务。

告警

异常告警消息示例:

产品: Bugly演示Demo (a278f01047)
告警任务: 最近发布版本的设备崩溃率 (1034)
告警维度: 崩溃
统计方式:分版本统计,最近 5 个发布版本
统计时间: 2023-06-06 00:00:00~23:59:59
触发时间: 2023-06-06 00:05:00
详情链接: 告警历史
App版本:8.9.58.2072,设备崩溃率(0.005175654) >= 0.0041
App版本:8.9.63.2170,设备崩溃率(0.0059973923) >= 0.0041
App版本:8.9.63.2164,设备崩溃率(0.00612483) >= 0.0041
App版本:8.9.58.2106,设备崩溃率(0.007279999) >= 0.0041

案例二:关注联网设备数Top5的版本的设备崩溃率情况。

第一步:分析当前数据,选择恰当的阈值。

告警

第二步:创建联网设备数Top5版本的设备崩溃率监控任务。

告警

案例三:关注产品的大盘设备崩溃率情况。

第一步:分析当前数据,选择恰当的阈值。在崩溃/概览中,查看当前产品的质量情况,如按小时统计的设备崩溃率数据,如示例中设备崩溃按小时统计一般<=0.04%。

告警

第二步:创建大盘设备崩溃率监控任务。如示例中,统计方式选择大盘统计,判异条件设置为,当设备崩溃率 > 0.0004 (即0.04%) 时,触发告警。

告警

案例四:关注VIP用户的崩溃情况。

监控VIP用户的崩溃情况,通过用户ID来监控指定用户的崩溃发生情况。当这些用户有发生崩溃时,通过告警消息通知。

告警

案例五:监控大盘实时崩溃情况

第一步:分析当前数据,选择恰当的阈值。在崩溃/概览中,查看当前产品的实时崩溃数据,如下图所示,查看按5分钟聚合的情况。

告警

第二步:创建大盘实时设备崩溃率监控任务。

监控实时数据,设备崩溃率本身存在波动,设置绝对阈值的方式可能不能很好发现一些突发的情况。我们引入波动的方式,通过监控相同时段,当前统计值与去过7天相同时段的平均值的变化情况,可以看到设备崩溃是不是上升明显。

异常率波动
  • 上升波动 = (当前值 - 最近7天相同时段的平均值)/ 最近7天相同时段的平均值
  • 下降波动 = (最近7天相同时段的平均值 - 当前值)/ 最近7天相同时段的平均值
  • 变化波动 = ABS(当前值 - 最近7天相同时段的平均值)/ 最近7天相同时段的平均值

告警