问题发现定位平台功能点需要全面,实现大多基于日志(收集多 KAFKA,分布式存储),日志检索(多采用 ES)。链路分析再次基础上做采样聚合,接口级别的非采样在监控中做(时间流存储,监控报警阈值模型智能预测等),日志针对性做些细粒度的链路分析。技术涉及不多,主要是日志压缩和索引的建设。功能点成体系就好。本文重点关注这个。更多工程内容见:https://segmentfault.com/a/11…
日志规范。定则规范
全链路传递
1.nginx
traceid 当前由几部分组成:(nginx 的 ip)+(生成的时间)+(生成 id 的 nginx 的启动时间 + 生成 id 的 nginx 的进程号)+(循环自增 id + 末两位固定 02)
nginx 扩展 +http header 传递
2.thrift
利用 thrift 0 号位空缺作为 header 使用
3.mq??
问题发现:
1.odin 实时监控,阈值报警。(接口维度,机器维度)
2.woater 实时监控,智能报警
3.srm 灭火图 / 上线事件监控
4. 安全扫描
问题定位
5. 故障分析平台(全链路故障点)
6. 问题分析平台(搜索:ES)
kafka+ES
详细日志查询:大量 debug/trace 等日志。取代机器 +grep:ES 获取机器索引时间 + 日志压缩 / 解压缩,时间定位查询
7. 性能分析(抽样)
业务评估
1. 机器调用关系
2. 服务依赖关系(静态),次数(统计)
链路分析,延时(采样平均),调用次数(静态,动态采样)
3. 模块性能分析(采样统计)
4. 专项(mysql, 定位到代码和人)
成本管理
1. 资源成本统计
2. 实时资源占用监控
整体解决思路