For a flame graph representing CPU usage, the top bars show what software functions were being executed at the time the data was captured.
CPU flame graphs are built on stack traces, which list all the functions being executed by the CPU at any given time. But the flame graph's hierarchical presentation of the data encapsulates the flow of actions on a processor.
Examining a graph, an administrator can visually trace which functions are called by other functions. Scanning across different rows can reveal which functions of an individual program, or at a higher level which of a number of concurrently running programs on a machine, are gobbling up a disproportionate amount of the CPU's attention.
Other flame graphs can be constructed to show how resources are being divided up in memory or with disk I/O.
Others have built programs that use flame graphs to visualize data created by popular performance tools, such as DTrace, Windows XPerf, OS X Instruments, Perl performance tools and Google Chrome Developer Tools.
Gregg said that Dave Pacheco's node.js implementation for DTrace may even become the canonical flame-graph application, given that it is more advanced than Gregg's own program.
Beyond flame graphs, Gregg is working on another visualization called frequency trails, an R-based data rendering that shows the characteristics of the outliers in a set of data, which can be useful in determining severe performance issues in cloud computing operations, he said.
Gregg is not a visual person by nature, he said in an interview after his presentation. He is most comfortable with the Unix command line. But the very nature of today's large distributed systems demands visual aids.
"On a cloud, I need to understand 1,000 servers, and I need to understand them right now. Visualization is necessary to do our jobs these days," he said.