Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/thlorenz/flamegraph

Generates flamegraphs with Node.js or in the browser.
https://github.com/thlorenz/flamegraph

Last synced: 23 days ago
JSON representation

Generates flamegraphs with Node.js or in the browser.

Lists

README

        

# flamegraph [![build status](https://secure.travis-ci.org/thlorenz/flamegraph.png)](http://travis-ci.org/thlorenz/flamegraph)

[![testling badge](https://ci.testling.com/thlorenz/flamegraph.png)](https://ci.testling.com/thlorenz/flamegraph)

Generates flamegraphs with Node.js or in the browser.

```
cat dtrace.txt | flamegraph -t dtrace > flamegraph.svg
```

[Try the online flamegraph app](http://thlorenz.github.io/flamegraph/web/)

[![assets/flamegraph.gif](assets/flamegraph.gif)](http://thlorenz.github.io/flamegraph/web/)

## Installation

npm install flamegraph

## Usage

**Requires Node.js version `0.11.13` or higher**.

**NOTE** currently not working with cpu profiles saved from Chrome DevTools due to a format change. For more info and to
help fixing it please [see this issue](https://github.com/thlorenz/flamegraph/issues/21).

```
flamegraph

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

OPTIONS:

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

--file -f the input csv file (may also be piped)
--output -o the output svg file (may also be displayed in stdout)
--map -m a mapping / symbols file, named perf-.map, generated using node --perf-basic-prof

--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 dtrace.txt | flamegraph -t dtrace > flamegraph.svg
```

The input data needs to be generated as follows:

- [use perf on linux](https://github.com/thlorenz/flamegraph/blob/master/generate-perf-data.md)
- [use dtrace on OSX](https://github.com/thlorenz/cpuprofilify#instructions)

## 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](https://github.com/thlorenz/docme)*

## Kudos

This library is an adaptation of @brendangregg's [FlameGraph perl scripts](https://github.com/brendangregg/FlameGraph).

## License

MIT