@nearform/clinic-doctor

Programmable interface to clinic doctor

Stats

StarsIssuesVersionUpdatedCreatedSize
@nearform/clinic-doctor
313252.6.13 years ago4 years agoMinified + gzip package size for @nearform/clinic-doctor in KB

Readme

node-clinic-doctor

Greenkeeper badge npm version build status build status downloads js-standard-style

Programmable interface to clinic doctor

banner

Supported node versions

  • Node.js 9.4.0 and above
  • Node.js 8.10.0 and above

Node.js 8.9.4 also works, however you have to listen to SIGINT and shutdown the process nicely. You can find examples in node-clinic-doctor-examples

Example

const ClinicDoctor = require('clinic-doctor')
const doctor = new ClinicDoctor()

doctor.collect(['node', './path-to-script.js'], function (err, filepath) {
  if (err) throw err

  doctor.visualize(filepath, filepath + '.html', function (err) {
    if (err) throw err
  });
})

Documentation

const ClinicDoctor = require('clinic-doctor')
const doctor = new ClinicDoctor()

doctor.collect(args, callback)

Starts a process by using:

const { spawn } = require('child_process')
spawn(args[0], ['-r', 'sampler.js'].concat(args.slice(1)))

The injected sampler will produce a file in the current working directory, with the process PID in its filename. The filepath relative to the current working directory will be the value in the callback.

stdout, stderr, and stdin will be relayed to the calling process. As will the SIGINT event.

doctor.visualize(dataFilename, outputFilename, callback)

Will consume the datafile specified by dataFilename, this datafile will be produced by the sampler using doctor.collect.

doctor.visualize will then output a standalone HTML file to outputFilename. When completed the callback will be called with no extra arguments, except a possible error.

License

Apache 2.0

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.