一、运营指标
用户指标数据,通过可以衡量用户体验的的核心行为表现数据指标来衡量效果
业务性能监控,各API状态等后台不可见的算法流程和内容
举例:
新闻产品:首页推荐结果的点击率、各类新闻的占比等(拟合推荐策略效果)
电商产品:单店日销售额、促销产品影响面(评估促销收益比)
云服务产品:云服务可用率、云服务作业成功率
游戏产品:业务规则监控(用户胜率、攻击频率上限)、系统可靠性监控
由于业务规则监控取决于业务方自己的业务属性较多,下文举例系统可靠性监控。
【1】请求数,请求到达速率
【2】正常响应数,正常响应占比
【3】错误响应数,错误响应占比
【4】响应延时
【5】消息队列长度,排队堆积时间、消息量
互联网系统根据计算机网络模型,可靠性监控可以分为下面4层。
【1】应用层:用户访问的前端页面、后端接口请求
【2】服务层:db,中间件等各种进程
【3】硬件层:cpu,内存,磁盘,网络
可靠性监控思考:
【1】不应该用采集的难度决定你使用什么指标去告警。
例如:很多情况下cpu使用率可能是最好采集的,但是未必是最值得告警的。
【2】不要给运维他们想要的告警,而是要做“真正”想要的告警。
例如:运维告诉你它需要对db进程的cpu使用率超过x%的时候告警,它给你的是一个他认为最优的解决方案。但是他真正想要的是知道db服务是否有异常,cpu使用率超过x%未必是最好的告诉你服务是否出现异常的指标。
二、规则告警
告警规则:根据历史数据定义一个正常波动区间,超出波动区间就报警。
告警策略主要字段:名称、资源类型、监控对象、告警级别、告警策略(根据资源类型展示不同的数据信息)、监控指标对象、告警指标间处理逻辑、触发条件、告警频率、状态、最近改变时间
吿警方式:
短信、电话:成本高,实时性好,到达率高
办公APP:成本低,实时性中,到达率中
邮件:成本低,实时性差,到达率高
告警收敛:
【1】服务运营指标收敛策略:按服务名、运营指标去重
【2】模块告警收敛策略:按照集群名称做去重
【3】接口告警收敛策略:按照接口名称做去重
【4】告警频率收敛策略:按照M分钟N次限制告警
【5】不同时段区分告警方式策略:工作日/非工作日,白天/夜晚区分
【6】逐层上报告警策略:先模块负责人告警,n分钟未恢复升级,m分钟未恢复再升级
【7】黑白跳动策略:当系统由正常变为异常,异常恢复正常都通报
是否告警:
曲线平滑:故障一般是对近期趋势的一个破坏,视觉上来说就是不平滑
绝对值的时间周期性:静态或者动态设置最近一段时间的最低值、最高值
波动的时间周期性:假设两个曲线不重合,在相同时间点的波动趋势和振幅也是类似的(即不同时间段的上、下限值的差是一致的)
波动回归正常值:当曲线开始回升到历史范围的时候,一般可以确认这个时间段是真的故障了。同时也可优统计误警率,漏警率。
告警自动消除:
告警的实质就是“把人当服务用”。在一些事情还没有办法做到程序化执行的时候,用告警通知人的方式去干预系统达到修正的目的。后续通过收集异常问题,并制定相应的自动化解决方案,实现告警的自动消除。
三、产品画像
产品画像,可以结合已有的运营指标、研发指标、部署指标、故障指标去实现云服务产品画像。
在选取指标时,需要注意:
【1】指标真实有效,即服务可用率,故障率等指标的归属责任方式明确的
【2】指标同步时,明确指标状态、流程,避免数据在同步过程中变为2份数据。一般也采用ETL离线同步的方式,结合全量表同步与增量表同步。