从发现到定位,去哪儿网一站式可观测平台
如果无法正常显示,请先停止浏览器的去广告插件。
1.
2. 从发现到定位,去哪儿网一站
式可观测平台
姓 名:肖双
3. 个人简介
肖双
基础架构-基础平台技术负责人
2018年加入去哪儿网,目前负责去哪儿网CI/CD、
监控平台和云原生相关平台建设。期间负责落地了
去哪儿网容器化平台建设,协助业务线大规模应用
迁移至容器平台,完成监控系统Watcher2.0的改造
升级和根因分析系统落地。对监控告警、CI/CD、
DevOps有深入的理解和实践经验。
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
4. 打造更便捷的观测平台
如何更快的发现故障
目录
微服务架构下,如何辅助开
发快速定位
5. 01
打造更便捷的观
测平台
6. 打造更便捷的观测平台
场景
APP1
APP2
/foo
Prometheus app1_api_foo_qps{status=200}
app2_api_foo_qps{status=200}
Graphite app1.api.foo.qps;status=200
app2.api.foo.qps;status=200
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
7. 打造更便捷的观测平台
需要尽可能多的记忆指标名
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
8. 打造更便捷的观测平台 - 去哪儿网资源管理
人员
共同语言
主机/容器
存储
Appcode
中间件
数据互通
计算
代码
CI/CD
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
9. 打造更便捷的观测平台 - 应用空间
主机/容器
监控
单击此处编辑标题
以模版形式提供
业务自定
义指标
Appcode
中间件监
控
单击此处编辑标题
无需做任何配置
域名监控
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
10. 打造更便捷的观测平台 - 应用空间
• 打通环境管理
• 正则匹配搜索
• 指标数浏览
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
11. 打造更便捷的观测平台 - 应用空间
• 单机指标下钻
• 聚合排序
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
12. 打造更便捷的观测平台 - 应用空间
• 打通CMDB
• 动态模版
• 支持下钻单主机
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
13. 打造更便捷的观测平台 - 应用空间
• 打通DB元数据
• 实例下钻
• 动态模版
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
14. 打造更便捷的观测平台 - 应用空间
• 统一管理报警
• 报警实时追踪统
计
• 批量处理
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
15. 02
如何更快的发现故
障
16. 如何更快发现故障 - 故障数据分析
故障平均发现时间
4分钟
订单类故障1分钟发现率
20%
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
17. 如何更快发现故障 - 现状
分钟级设计 采集使用Graphite协议
当前监控系统,无论数据采集 指标的采集和格式都是遵循
Graphite协议,而建设秒级指
标时必须考虑其兼容性
还是报警都是分钟级设计,采
集使用Pull模式,定时每分钟
拉取。
存储IO高,占空间大
之前TSDB采用的Graphite的Carbon+
Whisper,Whipser因为空间预分配策
略和写放大问题,会导致磁盘IO高以
及磁盘空间占用过多。
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
18. 如何更快发现故障 - 采集器Client端现状
Counter.Incr()
Timer.Timing()
Server
问题:
1. 调度器固定的每分钟调度生成数据快照
2. 指标仓库只支持分钟级数据的存储
Local Metric Repository
Scheduler
Snaphost
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
19. 如何更快发现故障 - 采集器Client端改造
指标仓库方案1:
1. 参考Prometheus的模式Client不做快照只做数
据累加或记录,由Server端在拉取时做默认的增量
配置
管理
Counter.Incr()
Timer.Timing
()
Server
计算
优点:客户端节省内存
缺点:
计算层/Tdigest-数据采样
判断此指标是否要进行秒级采集
1. 采集架构改动过大,且可能存在数据精度问题
2. 拉取时做增量计算对Server端压力太大
指标仓库方案2:
数据区/
Local Metric Repository
秒级
数据区/
分钟
1. 客户端多份数据计算和存储,生成多快照
优点:
1. 采集架构改动小,没有数据精度问题, server 压力小
Scheduler
Snaphost1 缺点:
Snaphost2 1. 会多占用一部分内存
Snaphost3 优化:
1. 使用Tdigest做数据采样,内存占用量可接受
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
20. 如何更快发现故障 - 采集器Server端现状
问题:
Worker节点
1. 任务量大时通过MQ派发耗时
长
Master
节点
Worker节点
Task …
MQ
每分钟分发全量任务
2. Python做大量聚合计算时,
CPU消耗高
Worker节点
WorkerN …
Python开发,多进程多线程模型
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
21. 如何更快发现故障 - 采集器Server端改造
Etcd
t
en
v
E
sh
Pu
Ev
en
t W
at
ch
Task …
Maste
r1
• 以APP维度调度
Task …
Maste
r2
Worker节点
Maste
r3
Worker节点
• 支持分钟级和秒级配置和
Task … Worker节点
Task … WorkerN…
Watch
DB
• Worker自调度
Go + Goroutine
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
采集
22. 如何更快发现故障 - 存储改造 - 选型
0
1
M3DB
优点:
1. 高压缩比,高性能
2. 可伸缩
3. 支持Graphite协议以及部分聚合函
数
缺点:
1. 部署维护复杂
2. 社区活跃度低
3. 更新迭代慢
VictoriaMetrics
优点:
1. 高性能,单机读写可达千万级指
标
2. 每个组件都可以任意伸缩
3. 原生支持Graphite协议
4. 部署简单
5. 社区活跃度高,更新迭代快
缺点:
1. 针对Graphite聚合读场景下,性
能下降严重
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
23. 如何更快发现故障 - 存储压测
主机信息
项目 数据
• CPU: 32C 写指标量 1KW/分钟
读QPS 2000/s
• 内存: 64G 平均响应时间 100ms
磁盘使用量 40G
主机Load 5-6
•
磁盘:
3.2TSSD
压测问题:
1. 单指标查询性能良好,但是聚合指标,尤其是大量聚合指标且带有聚合函数查询时性
能下降严重,甚至会超时。
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
24. 如何更快发现故障 - 存算分离
Query
聚合计算
无状态、任意扩展
聚合指标解析查询
CarbonAPI
CarbonAPI
CarbonAPI
数据剪裁处理
其他定制化功能
元数据DB
VM存储
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
25. 如何更快发现故障 - 最终架构
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
26. 如何更快发现故障 - 效果
订单故障发现时长
订单故障发现时长
3Min 降低到 1Min 之内
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
27. 03
微服务架构下,如何
辅助开发快速定位
28. 辅助开发定位 - 微服务化后定位难
• 链路复杂
• 依赖复杂
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
29. 辅助开发定位 - 自动链路关联
• 指标关联trace
• 接口维度异常数据
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
30. 辅助开发定位 - 应用异常分析
• 应用维度异常数据
• 关联事件、报警、
日志、中间件状态
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
31. 辅助开发定位 - 应用详情
• 入口/出口详情
• 依赖状态详情
• 异常日志概览
• JVM状态概览
• 其他异常信息概览
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
32. 辅助开发定位 - 事件关联
• 图维度的事件订阅
• 事件自动聚合拆分
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
33. 04
总结和未来规划
34. 总结和未来规划
2022年
•
•
2024-
1分钟发现
•
智能异常检测 - 雷达
•
2020年之前
•
2023年
一站式平台(更便捷的管理监
控和报警)
• 数据互通
• 报警治理
•
•
快速定位
自动根因分析
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
持续优化定位
自愈和快速恢复
35. Thanks
高效运维社区
DevOps 时代
GOPS 全球运维大会暨研运数智化技术峰会2024 · 上海站
荣誉出品