- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
静态调用链路发现在APM中的应用
技术创新,变革未来
大纲
APM发展历程
动态调用链路的模式及“优缺点”
原理
实现技术及手段
与动态调用链路(及监控)的结合
应用场景分析
APM的前世今生
APM2.0
APM1.0
APM3.0
企业级
移动互联网 互联网
物联网 人工智能
APM的核心能力:调用链路监控
服务化后系统运维的新难题
服务化拆分是系统发展的必然趋势
Google Dapper
动态调用链路监控的典型实现手段
基于调用链的全链路分析及监控
日志平台
S1-T1-T1’
S2-T2-T2’
S3-T3-T3’
….
统计分析 中心
T T1 T5 T6 T7 T2 T3 T8 T4
缺少埋点
网络延时
缓存调用
数据库调用
调用链A
调用链B
调用链C
调用链D
Total
DB1
Read/m
28453
544
12821
9987
51805
write/m
4421
22
0
2233
6676
DB2
Read/m
19611
500
12821
5521
38453
write/m
43643
1022
25642
13276
83582
T
Action
S5
S6
Cache
T1 S1
T5
T6
T7
DB
T2 T3 T4
S2 S3 S4
T8
request
response
traceId
“动态调用链路分析”的缺陷
基于埋点、或基于线程堆栈技术,只能发现实际调用的业务逻辑。大量没有埋点或 未被触发的调用逻辑则成了“失落的世界”,无法触碰。
我们看到的,只是冰山的一角
换个角度看问题的解决之道
业务 产品 架构 需求 设计 设计
软件研发是一项协作性的智力行为,所有的思考、意图、策略最终 都体现在了代码上。因此,一个系统的代码就是一本“书”,读懂 它,我们就能知道系统的“前世今生”。
问题是,我们如何“读懂”这本“书”。
入口
关系
继承 实现
代码关系
链路关系
我们的应对之道
一切源于源代码…
“静态调用链路发现”的原理及实现
Eclipse JDT
引用(import)
变量
方法
继承、实现
注释
Method代码 扫描
方法内变量
其它类方法调用
本类方法调用
方法内Block(IF-END IF、FOR-END FOR、WHILE…)
调用关系
(层级)
主动调用关系
被动调用关系
过滤
利用JDT获得源代 码的基本结构
通过逐行解析获 取代码块对外部
方法的调用详情
生成方法调用 矩阵
“静态调用链路”的基本形态
正向调用关系:
实现关系
代码Block
注释自动提取
“静态调用链路”的基本形态
逆向调用关系:
实现关系
注释自动提取
多种日志收集方式并存的采集端架构
Service Method
Spring Method Interceptor
调用
调用
内存消息队列
Dao plugin
调用
Dao Method
预统计
Message
traceID 方法名 耗时
错误信息
u 日志文件拉取
通过log4j的MDC添加traceID
Logstash增量拉取日志数据
u 批量消息推送
纯内存操作,无磁盘IO
预统计
批量发送
u 定期采集系统性能日志
CPU、磁盘、内存、SWAP、系统负载
JVM堆栈、线程、GC
① 单机每秒12W消息处理效率,资源占用不超过10%
② 内存消息队列采用快速抛弃方式,防止堆积
③ 单线程消息处理,避免资源锁
Cache
Sender
系统日志采集
监控数据接收服务端整体架构
日志消息接收器
时间片管理器
(Thread)
时间片
存 队
内
消
息
列
分析器集合
统计分析器
存储分析器
链路分析器
告警分析器
预警分析器
… … …
存储
DB
DB
RDB
ES
SLA定义
日志
内
存消
息队
列
代码仓库
扫描
可视化
调用关系矩阵
全内存异步操作(避免磁盘IO、避免资源锁冲突)
查询
“静态调用链路”与监控数据的结合
离散监控数据关系化
与普通监控数据结合(可视化)
调用关系完整化
与调用链监控数据结合(完善)
应用场景:故障定界定位
1.故障现象
2.异常分析
3.逆向排查
4.原因定位
比例异常
多处调用
定时任务
API
业务服务
挤占
应用场景:架构优化(冗余链路清理)
多余的业务逻辑链路
异常处理链路
旧版本兼容
无触发逻辑
静态调用链路的额外应用场景(工程效能)
设计稿
实际链路
设计稿校验
设计稿
接口文档
调用关系文档
•…
文档
接口文档
调用关系文档
校验
总结
1. 回顾了APM发展的3个阶段;
分析了动态调用链路的实现模式及“优缺点”;
提出了扫描代码库来获取方法级别的调用链路的思路;
介绍了基于Eclipse JDT的代码结构解析及调用关系分析 的技术及手段;
介绍了静
您可能关注的文档
- Web服务性能架构优化.pptx
- Disaster Engineer逆向运维架构.pptx
- Web服务架构治理及性能优化.pptx
- 从金融视角看数据资产管理.pptx
- Web应用服务架构的性能优化.pptx
- 广告系统服务化优化架构.pptx
- 极致体验的H5电商架构.pptx
- 基因大数据产业发展.pptx
- 金融IT运维对应用性能的提升.pptx
- 金融级系统容灾最佳实践.pptx
- 2024年山东省聊城东阿县事业单位选聘32人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2024年山东省聊城莘县事业单位招聘单位高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 汽机专业题库及解析.docx
- 基本常规医疗流程答案.doc
- 大金空调故障代码汇总.docx
- 理综-山西省阳泉市2023-2024学年高三年级上学期期末考试试题和答案.docx
- 数学-海南省天一大联考2023-2024学年高三学业水平诊断(二)带答案.docx
- 地理-湖南省长沙市雅礼中学2023-2024学年高三上学期月考试卷带答案.docx
- 生物-湖南省长沙市雅礼中学2023-2024学年高三上学期月考试卷带答案.docx
- 数学-湖南省长沙市雅礼中学2023-2024学年高三上学期月考试卷带答案.docx
文档评论(0)