@iopipe/profiler

IOpipe plugin for running the v8 profiler on your functions

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
918May 10, 2021Jul 6, 2017Minified + gzip package size for @iopipe/profiler in KB

Readme

IOpipe Profiler Plugin

styled with prettier semantic-release

This is a profiler and tracing library for use with IOpipe and AWS Lambda.

Installation:

With yarn (recommended) in project directory:

yarn add @iopipe/profiler

With npm in project directory:

npm install @iopipe/profiler

Then include the plugin with IOpipe in your serverless function:

const iopipeLib = require('@iopipe/iopipe');
const profiler = require('@iopipe/profiler');

const iopipe = iopipeLib({
  token: 'TOKEN_HERE',
  plugins: [profiler({ enabled: true, heapSnapshot: true })]
});

exports.handler = iopipe((event, context) => {
  context.succeed('Wow!');
});

Engines

To use >=2.0 of this library, you must be running on Node.js 8 or higher (8.10 and up on AWS Lambda). If you are running on 6.10 on Lambda, use a 1.x version, as the native profiler is not available on that runtime, and will be compiled in the 1.x version of this library.

Config

enabled (bool: optional = false)

By default, this plugin will not run the profiler. You must enable profiling on your function either by setting this variable, or setting IOPIPE_ENABLE_PROFILER=true in your environment. The environment variable setting (either true or unset) takes precedence over plugin config.

heapSnapshot (bool: optional = false)

By default, this plugin will not take heap snapshots. To enable heap snapshots, either set this value to true, or setting IOPIPE_ENABLE_HEAPSNAPSHOT=true in your environment. The environment variable setting (either true or unset) takes precedence over plugin config.

recSamples (bool: optional = true)

Record samples, defaults to true.

sampleRate (number: optional = 1000)

Change the sampling interval, in microseconds. Defaults to 1000us.

debug (bool: optional = false)

Show debugging logs.

networkTimeout (number: optional = 5000)

Set timeout in ms for network requests.

Environment Variables

To enable profiling via environment variable, set IOPIPE_ENABLE_PROFILER to true in your environment.

License

Apache-2.0 see LICENSE

Copyright 2017, IOpipe, Inc.

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.