Requirements

You must use the following versions of IOpipe client in order to enable profiling support:

About Profiling

We've developed the IOpipe profiler to enable you to run profiling in your serverless functions. Note: Profiling in any environment will impact the performance of your application, we recommend enabling it while actively developing.  When in production, enable it only while debugging issues.

When you've added the profiling plugin and enabled profiling in your function, you'll see a link to the .zip file on the individual invocation page; clicking this link will download a file you can then load into your profiler of choice, such as Chrome DevTools Profiler for Node.js

Enabling profiling on Node.js Functions

Required: Node 8.10+
You'll need to install the iopipe-plugin-profiler plugin as a dependency for your project, and instantiate it in the plugins array in the configuration object.

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

const iopipe = iopipeLib({
  token: 'xxx',
  plugins: [profilerPlugin({enabled: true})]
});

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


By default, profiling is disabled, meaning the profiler will not run on your function unless configured to do so. To enable profiling, set enabled: true  in the plugin's configuration, or set the environment variable IOPIPE_ENABLE_PROFILING=true . You can also enable memory heap snapshots with heapSnapshot: true or environment variable IOPIPE_ENABLE_HEAPSNAPSHOT=true 

Enabling profiling on Python Functions 

The instructions for enabling profiling in Python functions and viewing the data in pstats is available on the Python Agent repo.

Enabling profiling on Java Functions

The instructions for enabling profiling in Python functions and viewing the data in VisualVM is available on the Java Agent repo.


If you find any out of date info, errors, or just have any other questions, you can talk to our engineers and our community of users directly on Slack

Did this answer your question?