/node-big-rig

A CLI version of Big Rig

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Node Big Rig

NPM version Build Status Dependency Status

Node Big Rig comes in two flavors:

  1. A module for doing trace analysis inline to other tasks.
  2. A CLI tool.

Big Rig CLI

Both the module and CLI perform the same analysis as the web app, just without a UI. This makes it a good fit for use in CI environments, or as part of bigger workflows.

Installation

CLI

npm install -g bigrig

Module

npm install bigrig

Usage

CLI

To use the CLI you call bigrig and pass it the path to a trace file:

bigrig --file /path/to/trace.json

This will, by default, simply return a JSON string that you can parse or manipulate as you see fit.

If you wish to see a pretty printed version, add the --pretty-print flag:

bigrig --file /path/to/trace.json --pretty-print

You should then see a pretty printed output of the time breakdown for the trace.

Module

You can also use Big Rig's module as part of a wider workflow.

var bigrig = require('bigrig');
var fs = require('fs');

// Read trace file contents.
fs.readFile('/path/to/trace.json', 'utf8', function(err, data) {
  if (err)
    throw err;

  results = bigrig.analyze(data);

  // Now do something with the results, like
  // post to a dashboard.
});

Getting a trace

You can get a trace from:

  • WebPagetest. Run your test with Chrome, and check "Capture Dev Tools Timeline" under the Chrome options. Download the timeline file (which is a trace file) and pass it to Big Rig.
  • Chrome DevTools. Take a timeline recording, and then right click on the timeline, save the file, and pass it to Big Rig.
  • Big Rig's Test Runner. This uses Chrome Driver under the hood, and will allow you to run an automated test (including for Android) and get back a trace file.

Please note: you can only have one tab open when running the trace. If you have multiple tabs Big Rig won't be able to disambiguate and process the correct tab. You should also ideally disable any extensions you have running, as these can skew results. You can add the --strict flag if you want Big Rig to throw an error when it encounters extensions.

License

See /LICENSE

Owner

Paul Lewis - @aerotwist

Thanks

The tracing code is a manipulated version of Chrome's Trace Viewer. A huge thanks to the Chromium engineers for making it possible to analyze traces.

Please note: this is not an official Google product.