@vidaxl/apm-adapter

@vidaxl/apm-adapter

Usage no npm install needed!

<script type="module">
  import vidaxlApmAdapter from 'https://cdn.skypack.dev/@vidaxl/apm-adapter';
</script>

README

APM Adapter

Summary

This is an private npm module that provides a wrapper of elastic-apm-node library. It has default configuration for elastic apm.

Usage

  • Install package npm i -S @vidaxl/apm-adapter
  • Use it before all of your routes and server initialization
const ApmAdapter = require('@vidaxl/apm-adapter');

const apmOptions = {
    serverUrl: 'http://localhost:8200',
};
const apmAdapter = new ApmAdapter(apmOptions);
const apmMetadata = apmAdapter
    .start()
    .getMetadata();

if (apmMetadata.isStarted) {
    console.log('APM module started. Meta:', JSON.stringify(apmMetadata, 2, 2));
}

IMPORTANT: Buy default ApmAdapter will automatically create serviceName with environment prefix from NODE_ENV env variable and name field from parent sertvice package.json where this module is used. But you can override it by adding serviceName field to ApmAdapter configurations object. In this case environment prefix also will be addend automatically.

APM Adapter API

  • constructor(options) - Create a instance of class ApmAdapter.

    • options type: Object - A configuration object for ApmAdapter, it has same structure as configuration object for elastic-apm-node (full description). It has one required field:
      • serverUrl type: String | String[] - A single link or a list of links to your Elastic APM server.
  • start() - ApmAdapter instance method. Directly starts Elastic APM module and returns ApmAdapter instance.

  • getDefaultOptions() - ApmAdapter instance method. Returns an object with default configuration for elastic-apm-node.

  • getMetadata() - ApmAdapter instance method. Returns an object with basic meta data:

{
    isStarted: Boolean, // true when apm is started
    adapterVersion: String, // contains version of @vidaxl/apm-adapter package
    env: String, // contains value of procees.env.NODE_ENV
    serviceName: String, // contains name of service as it will be displayed in Elastic APM
    serverUrl: String | String[], // contains value from passed options to constructor
}
  • validateOptions({ serviceName, serverUrl }) - ApmAdapter class/static method. Validates serviceName (if it is present) and serverUrl.
  • getApm() - ApmAdapter class/static method. Returns elastic-apm-node module object.