
Netflixのクラウド・パフォーマンス・エンジニアリングチームが、オープンソースのパフォーマンス可視化ツール「FlameScope」を制作・公開しました。
Netflix FlameScope - Netflix Technology Blog - Medium
https://medium.com/@NetflixTechBlog/netflix-flamescope-a57ca19d47bb

公開はGitHubで行われていて、誰でも開発に参加可能。
GitHub - Netflix/flamescope: FlameScope is a visualization tool for exploring different time ranges as Flame Graphs.
https://github.com/Netflix/flamescope
どのようなものかを解説するムービーも公開されています。
FlameScope Examples - YouTube

FlameScopeのヒートマップは横軸が秒、縦軸がミリ秒で、発生しているイベントが多いほど色が濃くなります。

たとえば、このヒートマップの数ミリ秒ぶんだけ選択すると……

その範囲部分のFlame Graph(フレームグラフ)が表示されます。フレームグラフの読み方は「GolangでFlame Graphを描く | SOTA」などで示されていますが、1つ1つのボックスが関数を表し、下の方にあるボックスが上にあるボックスの先祖にあたります。ヒートマップでは横軸は時間でしたが、フレームグラフの横軸は関数のSampleの割合を示し、幅の広さは出現頻度を示しています。

ヒートマップの選択範囲が広いと……
フレームグラフはとても高さのあるものになります。
右上にある検索ボックスを使えば該当する関数が含まれているかどうかを調べられます。
なお、exampleディレクトリに新たなプロファイルを追加すると、FlameScope上で閲覧することができます。


