技术人人都是xx
如何成为一名架构师,架构师成长之路_golang架构师_个人渣记录仅为自己搜索用的博客-CSDN博客
子文章 稳定性之 监控,报警,定位 偏数据分析视角,业务订单,智能定位. 2/5/15 of 安全生产_个人渣记录仅为自己搜索用的博客-CSDN博客
简单几个词总结
核心在自动化,重在日常,快在告警定位(2/5/15 监控告警 定位分析 解决), 补充在复盘
可读性
ddd 1.面相能力编程
可测性 - 新功能可自动化测试-新老兼容
人人都是测试专家- testCase怎么写,才能完备._个人渣记录仅为自己搜索用的博客-CSDN博客_写一个testcase要多久
稳健性 - 稳定性经验数字化
把所有的线上故障总结统一起来
北极星指南针 架构经验数字化 高可用性. 复用 . 经验- 定期检查
结构化思考, 金字塔思考, 时间序 + 道法术器
事前: 设计金字塔,重点在性能(拆分,热点,缓存,异步,强弱依赖,动静分离), 预防 ( 回放, 攻防混沌演练, 压测,主动巡检 ), 监控告警(结构化统计)
事中: 定位(含用例回放), 回滚/扩容 , 应急手段
事后: 复盘
故障原因印象流.
自身代码
1. 代码改动的发布 bug
依赖
2. 下游依赖 bug .(软件,硬件)
3. 本业务机器故障.
容量
4. 稳定性雪崩
3.1下游慢等性能问题导致的雪崩
3.2 mysql 慢查等索引性能问题导致的雪崩.
5. 大促等流量激增导致的雪崩
6. 机房迁移.
传统部分业务机房迁移_个人渣记录仅为自己搜索用的博客-CSDN博客
稳定性相关大纲_个人渣记录仅为自己搜索用的博客-CSDN博客 重复
代码
发布前
1. 重构必须要有单测覆盖率. 如果小方法因为重构被删除了. 如何办?
1.1 必须要有集成测试. 或者某个接口不会变的集成测试.
if(a>b){
}
这里面其实有两个分支.都要覆盖. 学会看懂覆盖率
1.2 使用流量回放. 把random方法全部mock掉. 根据traceId来mock. 把所有都覆盖到. 覆盖不到的使用手写集成测试.
发布后
2/5/15 很关键
1.3 异常情况考虑和review
1.3.1 空指针. 异常错误码
1.3.2 进阶 难点
异常导致级联雪崩的例子_个人渣记录仅为自己搜索用的博客-CSDN博客
监控,报警,定位 架构师该做什么. 偏数据分析视角,智能定位. 2/5/15 of 稳定性
- 监控告警
- 统计
- 5要素,成功率(错误码过滤)
- 错误码统计
- 线程池,io
- 统计
- 提前预警
- 线程池
- jvm
- 内存
- gc
- 机器
- 内存
- 带宽
- cpu
- 线程池
- 定位(接口粒度)
- top耗时traceId
- 错误码traceId
- error新增日志监控,依赖良好的平台模糊归类(余弦算法等) - 没有的话就将 入口方法+日志类打印出来+异常堆栈的首类
- 维度下钻统计法,这种需要依赖良好的工具,输入指定的指标和维度值,进行手动下钻分析和自动分析. (可以服用维度之间的层级,降低 数据分析立方体) [平台型产品需要区分业务方] 单个业务方传参出错,(android,ios出错). 这种方法如果统计不全,或者没有事先配置好 值班报表,就很难使用.
- 值班大盘
- 绝对值. 5要素
- 核心数据 周同比
- 异常error日志查看,分析
- 慢sql traceId
- 不同维度快速下钻
运行
如何避免上述问题? 体感报警,体感监控体系
问题定位2/5/15 稳定性 问题定位[基于此监控系统] 系统优化[内部调用异常数据流量,基于此系统上的压测瓶颈发现]
日志标准化非常重要 链路的熟悉 - 特别是非标链路的熟悉 - 没有标准化监控_个人渣记录仅为自己搜索用的博客-CSDN博客
rpc线程池和业务自己相关的监控,日志在哪看也非常重要. sofaThread就是一套开源的面向监控的封装sofa-common-tools: sofa-common-tools 是 SOFAStack 中间件依赖的一个通用工具包,通过自动感知应用的日志实现,提供中间件与应用隔离的日志空间打印能力
重复文章:
稳定性 监控 业务后期 - 架构师 - fei33423 - 博客园
补充照片上没有的两点.
拆分: 水平拆分,垂直拆分,基础(中台)拆分. 读放大.
各个内部中间件系统最好也改造接上各核心节点监控. 分成各区间段.
数据驱动的稳定性建设基础: 1.入口监控 (dubbo,mq,定时任务 dubbo,内部定时任务) 2.出口监控(mq,dubbo,http,thrift,mysql,redis)
流量大的接口要隔离.
埋点树: 要有ui 自动下一批子节点找出来. 用来确认埋点是否ok.
异常检测-机器学习总结_个人渣记录仅为自己搜索用的博客-CSDN博客
自动写监控
的能力. 把告警分析经验聚合起来
自动写核对 自动化监控/测试/核对 业务冻结和事务冻结字段分开 解决过桥/过渡账户冻结问题_个人渣记录仅为自己搜索用的博客-CSDN博客
发布监控:
看错误Exception,错误量. 不要看成功率,成功量.
监控: 1.量够看成功率,上周同比,上上周同比.. 将绝对值转换为率来判断,比如 大于多少算不正常,不正常的比例. 这样就自动化,不用担心. 2. 量不够看连续绝对值. 确定一个阈值,平台最好可配置时间段阈值
耗时这个指标绝对值有异常就要报警,比较重要. 体感角度监控. 从线程池角度监控: 乘积要监控.
梳理: 看绝对值. 成功率低的,耗时高的.
看耗时,一般上线都是低峰期. 耗时要特别关注.
看耗时提高(早高峰崩溃),相比6周同期,相比上周同期
1. 监控. 总量,率,失败数,耗时,总量*耗时, size,错误类型, exception. error日志.
低流量报警: 关注失败率和code率. 如果有些接口失败但用户体感无影响. 要进行改造.先暂时过滤.
流量: 需要一个系统,
整理出: 1. 离线稳定性分析大盘,架构师专注查看. 这样架构师不需手动执行n各sql,然后整理到webExcel中
2. 分配给各同学, web excel
3. 各个同学整理答复, 更新进度.
- 检查是否全面覆盖.
- 入口: lwp,http,hsf,mq,定时任务
- 出口:http,hsf,mq,mysql,tair,redis,hbase,异步发送到队列返回的时间. tair要区分keyType.
- 按入口各指标top5列出,指定同学分析定位.
- 依赖链路分析. 总时间 是否 =总下游依赖调用时间
- 按入口/出口(直接,异步间接)数量比top5分析
- 按入口-出口(直接,异步间接)总耗时top5分析.
- 异步怎么办?
- 按出口各指标top5分析.
- 绝对值耗时分析: 按区间分析.
存储:
1. 持久化存储
2. 内存
自动化大盘,监控.
灰度监控,比较人肉,淹没在全量监控中.
[创新] 可视化web中台. 趋势图, 圆饼图, 漏斗图. 分组(kv),指标. 多key(无key)
[创新] 指标api后端中台. 服务端通过数据采集, 然后通过接口传递给可视化平台. 同比,环比,报表可点击.[ 阿里xflush + 业务自动化]
指标+ 指标上的指标.
链路: 入口到db的读放大
在线
2. 演练
3. 降级
4, 雪崩下问题定位
5. 指标平台. 按维度报警.
秘钥覆盖率, 大组织的,一部分人发了加密消息, 另外50w不能解密,向第三方取秘钥. 挂掉.
针对业务数据我们可以利用历史数据使用Holt-Winters等模型进行业务数据预测.