nhemsley / flamegraph

Generates flamegraphs with Node.js or in the browser.

Home Page:http://thlorenz.github.io/flamegraph/web/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

flamegraph build status

testling badge

Generates flamegraphs with Node.js or in the browser.

cat instruments-callgraph.csv | flamegraph -t instruments > flamegraph.svg

Try the online flamegraph app

assets/flamegraph.gif

Installation

npm install flamegraph

Usage

Requires Node.js version 0.11.13 or higher.

flamegraph <options>

Generates a flamegraph from the callgraph data of the given `inputtype` that is streamed into it.

OPTIONS:

  --inputtype -t      the type of callgraph 'instruments | perf | cpuprofile'

  --fonttype          font family used                  default: 'Verdana'
  --fontsize          base text size                    default: 12
  --imagewidth        max width, pixels                 default: 1200
  --frameheight       max height is dynamic             default: 16.0
  --fontwidth         avg width relative to fontsize    default: 0.59
  --minwidth          min function width, pixels        default: 0.1
  --countname         what are the counts in the data?  default: 'samples'
  --colors            color theme                       default: 'hot'
  --bgcolor1          background color gradient start   default: '#eeeeee'
  --bgcolor2          background color gradient stop    default: '#eeeeb0'
  --timemax           (override the) sum of the counts  default: Infinity
  --factor            factor to scale counts by         default: 1
  --hash              color by function name            default: true
  --titletext         centered heading                  default: 'Flame Graph'
  --nametype          what are the names in the data?   default: 'Function:'

  --removenarrows     removes narrow functions instead of adding a 'hidden' class   default: true
  --internals         include internal functions        default: false
  --optimizationinfo  include optimization indicators   default: false

  --help      -h  print this help message 

EXAMPLE:

  cat instruments-callgraph.csv | flamegraph -t instruments > flamegraph.svg

The input data needs to be generated as follows:

API

flamegraph(arr, opts) → {string}

Converts an array of call graph lines into an svg document.

Parameters:
Name Type Description
arr Array.<string>

input lines to render svg for

opts Object

objects that affect the visualization

Properties
Name Type Description
profile Object

options passed to cpuprofilify @see cpuprofilify.convert params

fonttype string

type of font to use default: 'Verdana'

fontsize number

base text size default: 12

imagewidth number

max width, pixels default: 1200

frameheight number

max height is dynamic default: 16.0

fontwidth number

avg width relative to fontsize default: 0.59

minwidth number

min function width, pixels default: 0.1

countname string

what are the counts in the data? default: 'samples'

colors string

color theme default: 'hot'

bgcolor1 string

background color gradient start default: '#eeeeee'

bgcolor2 string

background color gradient stop default: '#eeeeb0'

timemax number

(override the) sum of the counts default: Infinity

factor number

factor to scale counts by default: 1

hash boolean

color by function name default: true

titletext string

centered heading default: 'Flame Graph'

nametype string

what are the names in the data? default: 'Function:'

Source:
Returns:

svg the rendered svg

Type
string

flamegraph::fromStream(stream, opts) → {ReadableStream}

Converts a stream of call graph lines into an svg document. Not truly streaming, concats all lines before processing.

Example:

var fromStream = require('flamegraph/from-stream');
fromStream(process.stdin, opts).pipe(process.stdout);
Parameters:
Name Type Description
stream ReadableStream

that will emit the call graph lines to be parsed

opts Object

same as flamegraph

Source:
Returns:

stream that emits the lines of generated svg

Type
ReadableStream

flamegraph::svg(collapsedLines, opts) → {string}

Creates a context from a call graph that has been collapsed (stackcollapse-*) and renders svg from it.

Parameters:
Name Type Description
collapsedLines Array.<string>

callgraph that has been collapsed

opts Object

options

Source:
Returns:

svg

Type
string

generated with docme

Kudos

This library is an adaptation of @brendangregg's FlameGraph perl scripts.

License

MIT

About

Generates flamegraphs with Node.js or in the browser.

http://thlorenz.github.io/flamegraph/web/

License:MIT License


Languages

Language:HTML 67.4%Language:JavaScript 19.2%Language:Perl 12.5%Language:CSS 0.9%