主要应用于对企业运营过程中的各专项业务进行在线监控
当然,既然是监控,肯定也得与一定的报警渠道相关联
那如何关联呢
当然是依据一些样本数据啊
此外还得有一些报警的临界值才行
一切,且听云天河慢慢道来
首先明确任务,设计符合当前监控指标的系统
一般从以下几方面给出
泛指一个大的项目
比如,一个公司做物联网也做互联网金融,他们分成了两个部门
但是总监是一个人,管这两个业务
则会分成两个业务来写
泛指自身业务的某个集成服务
比如,短信服务、订单服务...
比如,短信服务的发送数量、发送成功率...
它是判断是否属于报警情况的条件
比如,5分钟内数量低于7天平均值60%
泛指通知到相关人员的渠道
现在通常使用 玎玎、邮件、短信、电话 来通知到相关人员
一般来说要求的是不同级别的通知,给予不同的通知渠道
玎玎
与邮件
:不是特别重要,看到了再查查是什么情况,可能是技术层面导致的
短信
:需要出来一个人解决问题或者来给出新的监控规则
电话
:主线业务出了大问题,必须要求有人实时知道并通知运营部门,给出新决策
选择采样的数据库
SQL
采集的SQL脚本里面,一般会以时间为模板变量
示例,验证码发送成功率
SELECT
count( IF ( STATUS IN ( 2 ), id, NULL ) ) / count( id ) * 100 AS pass_rate
FROM
sms_verify_logs
WHERE
created_at >= "{{$start_time}}"
AND created_at < "{{$end_time}}"
通常 $start_time 这个变量表示执行这个统计时间的 时间粒度
前的大小
如,当前采样的时间粒度
是1分钟,则 $start_time 是一分钟前的时间
$end_time 一般表示开始执行脚本的时间
因此每一分钟的数据都会被采集到,方便我们后面依据这些数据计算报警实际样本
API
如果只有关系型数据库太局限,如果业务复杂度高了,那么,其他类型的数据库的种类也会多起来的
这时候为了便于拿到数据,我们会让其他项目开放监控内容的API
使得我们可以跨越不同数据库间的障碍
但本次云天河不作细节描述
规则一般从以下几个方面配置
如图,为所需的报警实际样本
的配置
如图,短信发送数量,5分钟内
的规则配置
如图,此外可能需要多个条件复合判断、依据不同的业务紧急程度,设置发送报警的时间区间
报警接收人员应该在配置好当前报警策略后分配
首先配置接收报警的用户信息(至少包括:名称、邮箱、手机号)
然后将对应用户某一个用户管理组去
然后通过配置管理组,加入一些监控项,统一让其下的人能收到通知
为什么我们会分管理组呢?
因为这是业务监控,涉及多个部门(运营部、技术部...)一起关注
但是不同部门,所关注的方向会有差异
所以这样设计比较好
报警渠道就我上面说的:玎玎、邮箱、短信、电话 渠道就差不多了
发送的报警信息,主要包含
业务名+模块名+阀值文字+当前真实报警样本值
+当前值
报警脚本应该考虑分三种情况统计
以报警样本的统计周期为级别进行统计
如,选择的样本单位
为分钟,则每分钟跑一次统计脚本,样本单位
为小时,则每小时跑一次统计脚本
注:统计脚本,是依据前文我们每分钟跑出来的样本数据进行统计的
逻辑步骤大致如下:
样本单位
,搜索出该级别的数据统计项在每次统计数据的时候,就与真实报警样本值
进行对比
时间粒度
区间内是否满足过报警规则,上次若报警,而当前不报警,则回复取消报警邮件或玎玎
Grafanna
评论列表点此评论