This is a profiler and tracing library for use with IOpipe and AWS Lambda.
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!');
});
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.
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.
To enable profiling via environment variable, set IOPIPE_ENABLE_PROFILER
to true in your environment.
Apache-2.0 see LICENSE
Copyright 2017, IOpipe, Inc.