JSPM

  • Created
  • Published
  • Downloads 2957
  • Score
    100M100P100Q117816F
  • License MIT

Epsagon Instrumentation for Node.js Frameworks

Package Exports

  • epsagon-frameworks

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-frameworks) 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

Build Status npm version semantic-release

This package provides an instrumentation to Node.js code running on frameworks for collection of distributed tracing and performance monitoring.

Installation

From your project directory:

npm install --save epsagon-frameworks

Express application

If you're running express.js application on any non Lambda environment, you can still use Epsagon! Note: Only Express 4 and above is supported You can accomplish that with the following example:

const express = require('express');
const epsagon = require('epsagon-frameworks');

epsagon.init({
    token: 'my-secret-token',
    appName: 'my-app-name',
    metadataOnly: false,
});

const app = express()

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(3000)

Hapi application

If you're running Hapi.js application on any non Lambda environment, you can still use Epsagon! Note: Only Hapi 17 and above is supported You can accomplish that with the following example:

const Hapi = require('hapi');
const epsagon = require('epsagon-frameworks');

epsagon.init({
    token: 'my-secret-token',
    appName: 'my-app-name',
    metadataOnly: false,
});

const init = async () => {

    const server = Hapi.server({
        port: 3000,
        host: 'localhost'
    });

    server.route({
        method: 'GET',
        path:'/',
        handler: (request, h) => {
            return 'Hello World!';
        }
    });

    await server.start();
    console.log('Server running on %ss', server.info.uri);
};

init();

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!')
}

Provided under the MIT license. See LICENSE for details.

Copyright 2019, Epsagon