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

举报
开源小E 发表于 2021/12/06 14:14:35 2021/12/06
【摘要】 火焰图(Flame Graph)由性能优化大师 Brendan Gregg 发明,和所有其他的 profiling 方法不同的是,火焰图以一个全局的视野来看待时间分布,列出所有可能导致性能瓶颈的调用栈。通过火焰图,可以非常方便的看到性能资源都消耗在了哪里,从而能够直观的看到程序的性能瓶颈,以进行程序的优化。

关键字解析:
火焰图(Flame Graph)由性能优化大师 Brendan Gregg 发明,和所有其他的 profiling 方法不同的是,火焰图以一个全局的视野来看待时间分布,列出所有可能导致性能瓶颈的调用栈。
通过火焰图,可以非常方便的看到性能资源都消耗在了哪里,从而能够直观的看到程序的性能瓶颈,以进行程序的优化。


为了使服务链路追踪可视化更高效,Erda 在微服务治理平台新版本中也引入了火焰图功能,下面我们一起来看看吧~

功能入口

https://www.erda.cloud/ (需要注册账号,如需演示可加入用户交流群获取免费试用资源)

登陆后点击如下模块:

微服务治理平台 - (具体项目) - 诊断分析 - 链路追踪 – 查看详情 – 火焰图

0.gif

进入功能界面:

1.gif

  • X 轴代表调用耗时时间长度
  • Y 轴是函数块叠加而成,有点像程序调试堆栈,代表调用的深度

火焰块 X 轴越长,说明 span 调用耗时越长,可联合其火焰图的纵轴判断是否存在子调用过多或者自身调用过慢的情况,更方便排查请求过程中的业务瓶颈或异常点。

鼠标悬浮

2.gif

火焰的每一层都会标注完整操作名,鼠标悬浮时会显示:

  • 完整的服务名
  • 具体的操作名
  • 调用类型及调用的对象
  • 当前调用耗时
  • 总调用耗时(当前调用耗时 + 子调用耗时)

点击放大

3.gif

在某一层点击,火焰图会水平放大,该层会占据所有宽度,显示详细信息。

火焰图整体功能演示参看视频:

火焰图整体演示

参考链接 & 延伸阅读


更多技术干货请关注【尔达 Erda】公众号,与众多开源爱好者共同成长~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。