菜单
Enterprise 开源

火焰图

火焰图提供了性能分析数据的可视化摘要。火焰图是分层数据(例如堆栈跟踪和文件系统内容)的完整可视化表示,其中附带了一个指标(通常是资源使用情况)。

持续性能分析的一个基本方面是火焰图,这是一种可视化性能数据的便捷方法。这些图提供了对应用程序中资源分配和瓶颈的清晰、直观的理解。

Brendan Gregg,火焰图的创建者,受到无法使用常规性能分析器查看、读取和理解堆栈跟踪来调试性能问题的启发。

Pyroscope 如何创建火焰图

此图显示了代码如何转换为火焰图。在此示例中,Pyroscope 采样您应用程序的堆栈跟踪,以了解每个函数花费了多少 CPU 周期。然后,它聚合这些数据并将其转换为火焰图。

code to flame graph diagram

火焰图代表什么?

在水平方向上,火焰图表示此应用程序运行的总时间(100%)。每个节点的宽度代表在该函数中花费的时间量。节点越宽,在该函数中花费的时间越多。节点越窄,在该函数中花费的时间越少。

在垂直方向上,火焰图中的节点表示函数调用的层次结构以及在每个函数中花费的时间。顶部节点是根节点,代表应用程序中花费的总时间。其下方的节点代表被调用的函数以及在每个函数中花费的时间。这些节点下方的节点代表从这些函数中调用的函数以及在每个函数中花费的时间。这个过程一直持续到火焰图的底部。

这是一个 CPU 性能分析,但性能分析还可以表示许多其他类型的资源,例如内存、网络、磁盘等。

flame graph

火焰图可视化面板 UI

要了解有关 Grafana、Grafana Cloud 和 Grafana Profiles Drilldown 中火焰图用户界面的更多信息,请参阅火焰图可视化面板

要了解有关 Pyroscope UI 中火焰图的更多信息,请参阅Pyroscope UI