This package provides an instrumentation to Node.js code running on functions for collection of distributed tracing and performance monitoring.
From your project directory:
npm install --save epsagon
Simply use the wrapper to send traces from your code:
const epsagon = require('epsagon');
epsagon.init({
token: 'my-secret-token',
appName: 'my-app-name',
metadataOnly: false, // Optional, send more trace data
});
function handler(event, context, callback) {
callback(null, 'It worked!')
}
handler = epsagon.lambdaWrapper(handler)
You should pass the Epsagon token to your action as a default parameter, so that you don't
have to expose important credentials in your code. The name of the parameter can be configured using token_param
, in this example we use EPSAGON_TOKEN
const epsagon = require('epsagon');
function main(params) {
// your main function
}
module.exports.main = epsagon.openWhiskWrapper(main, {
token_param: 'EPSAGON_TOKEN', // name of the action parameter to take the token from
appName: 'my-app-name'
metadataOnly: false // Optional, send more trace data
});
You can then pass the EPSAGON_TOKEN
as a default parameter into your action using the wsk
command line client:
$ wsk action update <myaction> --parameter EPSAGON_TOKEN <your-epsagon-token>
You can add custom labels to your traces. Filters can later be used for filtering traces that contains specific labels:
function handler(event, context, callback) {
epsagon.label('myCustomLabel', 'labelValue');
callback(null, 'It worked!')
}
You can set a trace as an error (although handled correctly) by catching an error:
function handler(event, context, callback) {
try {
// something bad happens
} catch (err) {
epsagon.setError(err);
}
callback(null, 'It worked!')
}
Or manually specify Error object:
function handler(event, context, callback) {
epsagon.setError(Error('My custom error'));
callback(null, 'It worked!')
}
Support for Express, Hapi, and other frameworks is done through epsagon-frameworks
Provided under the MIT license. See LICENSE for details.
Copyright 2019, Epsagon