写在前面的话
19年设计过apm的告警功能,现在22年了,最近看到有关某智能运维公司的融资欺瞒史,想到各种ai智能化的场景,很多仅仅是以工具代替了人,以硬编码逻辑代替了人脑(并不是歧视人工智能,而是歧视那些以人工智能大忽悠薅社会主义羊毛割韭菜的公司),所以写了这篇文章。
用户访问指标检测的误区
智能告警?能把指标收集后针对阈值进行触发告警,就已经非常不错了。要是能支持对单个指标或多维度进行自定义告警,也就很牛逼了。
告警一般需要那些
告警名称
告警名称便于管理标识,一般可以用应用名+指标+类型来命名,比如 CMS- LCP
检测指标
顾名思义是指标
常见检测指标
- JS错误数
- JS错误率
- 资源错误数
- 资源错误率
- 首次渲染平均时间
- 页面加载平均耗时
- LCP(largest_contentful_paint)
- FID(first_input_delay)
- CLS(cumulative_layout_shift)
- FCP(first_contentful_paint)
触发条件
设置告警级别的触发条件。
- 告警级别:包含紧急(红色)、重要(橙色)、警告(黄色)、无数据(灰色)、正常(绿色)五个等级,每个等级只能设置一个触发条件。
- 触发条件:基于配置条件判断操作符和检测周期。若查询结果带单位,则提示单位进位后的结果。告警级别紧急(红色)、重要(橙色)、警告(黄色)基于配置条件判断操作符,说明如下:
告警级别无数据(灰色)、正常(绿色)基于配置检测周期,说明如下:
- 检测周期=检测频率
- 自定义检测周期=检测频率 * N
1.无数据(灰色):无数据状态支持「触发无数据事件」、「触发恢复事件」、「不触发事件」三种配置,需要手动配置无数据处理策略。
检测规则生效后,第一次检测无数据且持续无数据,不产生无数据告警事件;若检测有数据且在配置的自定义检测周期内,数据上报发生断档,则产生无数据告警事件。
2.正常(绿色):检测规则生效后,产生紧急、重要、警告异常事件后,在配置的自定义检测周期内,数据检测结果恢复正常,则产生恢复告警事件。
注意:恢复告警事件不受告警沉默限制。若未设置恢复告警事件检测周期,则告警事件不会恢复,且一直会出现在「事件」-「未恢复事件列表」中。检测频率: 当前检测规则的执行频率,即 检测周期,默认 1 分钟检测一次。
个人或者小公司该怎么选择告警
个人或者小公司因为公司资源投入不够,大多无法构建自己的性能体系,更无法去针对性的设置告警。如果不想系统裸奔,一般多会选择购买告警服务。
其他告警厂商,应该如何比对
其他告警厂商可能比较多,应该如何比对呢? 主要看:
1.告警支持的指标和维度
正常看来,至少应该能够允许针对以下指标进行告警
- JS错误数
- JS错误率
- 资源错误数
- 资源错误率
- 首次渲染平均时间
- 页面加载平均耗时
- LCP(largest_contentful_paint)
- FID(first_input_delay)
- CLS(cumulative_layout_shift)
- FCP(first_contentful_paint)
一般来说,至少要允许能够按照页面维度进行告警
- 页面path
- 请求
- 动作
2.告警的时延
正常来看,应该是分钟级别告警,不过也可以根据实际成本适当方框。
3.告警方式
一般都支持:邮件/钉钉/企业微信等
4.告警沉默
对于无告警,要允许告警抑制或者不能重复告警