Package Exports
- epsagon
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (epsagon) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Epsagon Instrumentation for Node.js
This package provides an instrumentation to Node.js code running on functions for collection of distributed tracing and performance monitoring.
Installation
From your project directory:
npm install --save epsagon
Getting started (AWS Lambda)
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)
Getting started (Apache OpenWhisk)
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>
Custom labels
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!')
}
Custom errors
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!')
}
Filter sensitive data
You can pass a list of sensitive properties and they will be filtered out:
epsagon.init({
token: 'my-secret-token',
appName: 'my-app-name',
metadataOnly: false, // Optional, send more trace data
ignoredKeys: ['password', ...]
});
Alternatively you can pass a comma-separated list of sensitive keys using
the EPSAGON_IGNORED_KEYS
environment variable to get the same effect.
Web frameworks
Support for Express, Hapi, and other frameworks is done through epsagon-frameworks
Copyright
Provided under the MIT license. See LICENSE for details.
Copyright 2019, Epsagon