跨越可观测性鸿沟|高手们都在用的“火焰图”是什么

关键字解析:火焰图(Flame Graph)由性能优化大师 Brendan Gregg 发明,和所有其他的 profiling 方法不同的是,火焰图以一个全局的视野来看待时间分布,列出所有可能导致性能瓶颈的调用栈。通过火焰图,可以非常方便的看到性能资源都消耗在了哪里,从而能够直观的看到程序的性能瓶颈,以进行程序的优化。
为了使服务链路追踪可视化更高效,Erda 在微服务治理平台新版本中也引入了火焰图功能,下面我们一起来看看吧~
功能入口
https://www.erda.cloud/ (需要注册账号,如需演示可加入用户交流群获取免费试用资源)
登陆后点击如下模块:
微服务治理平台 - (具体项目) - 诊断分析 - 链路追踪 – 查看详情 – 火焰图

进入功能界面:

X 轴代表调用耗时时间长度
Y 轴是函数块叠加而成,有点像程序调试堆栈,代表调用的深度
火焰块 X 轴越长,说明 span 调用耗时越长,可联合其火焰图的纵轴判断是否存在子调用过多或者自身调用过慢的情况,更方便排查请求过程中的业务瓶颈或异常点。
鼠标悬浮

火焰的每一层都会标注完整操作名,鼠标悬浮时会显示:
完整的服务名
具体的操作名
调用类型及调用的对象
当前调用耗时
总调用耗时(当前调用耗时 + 子调用耗时)
点击放大

在某一层点击,火焰图会水平放大,该层会占据所有宽度,显示详细信息。
火焰图整体功能演示参看视频:
参考链接 & 延伸阅读
更多技术干货请关注【尔达 Erda】公众号,与众多开源爱好者共同成长
版权声明: 本文为 InfoQ 作者【尔达Erda】的原创文章。
原文链接:【http://xie.infoq.cn/article/731e3002b0c146c703cda5118】。文章转载请联系作者。
评论