@commercetools/ts-sdk-apm
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

@commercetools/ts-sdk-apm

commercetools Typescript SDK Application Performance Monitoring.

This package is used to monitor the application performance of the Typescript SDK. It exposes a middleware creator method that accepts some options for monitoring and tracing the SDK performance.

Installation

To use this package we need to install the package and add the newrelic configuration file.

Using npm

$ npm install @commercetools/ts-sdk-apm

or using yarn

$ yarn add @commercetools/ts-sdk-apm

Usage

Import the package and add it to the SDK client using withTelemetryMiddleware() method.

// import the @commercetools/ts-sdk-apm package
import { ClientBuilder } from '@commercetools/sdk-client-v2'
import { createTelemetryMiddleware } from '@commercetools/ts-sdk-apm'

// newrelic options
const telemetryOptions = {
  createTelemetryMiddleware
}

// create the client and include the telemetry middleware
const client = new ClientBuilder()
  .withClientCredentialsFlow(...)
  .withHttpMiddleware(...)
  .withTelemetryMiddleware(telemetryOptions) // telemetry middleware
  ...
  .build()
...

Using a custom (user-defined options)

All the monitoring and tracing functionality has been implemented by default however, the telemetryOptions accepts three function parameters createTelemetryMiddleware, apm and tracer, the createTelemetryMiddleware and tracer can be custom implemented.

type telemetryOptions = {
  createTelemetryMiddleware: (options: Omit<telemetryOptions, 'createTelemetryMiddleware'>) => Middleware;
  apm?: () => typeof require('newrelic');
  tracer?: () => typeof require('/absolute-path-to-a-tracer(opentelemetry)-module')
}

Example

const telemetryOptions = {
  createTelemetryMiddleware, // coming from the `@commercetools/ts-sdk-apm or a custom implementation
  tracer: () =>
    require(require('path').join(
      __dirname,
      '..',
      '..',
      'custom-telemetry-module.js'
    )), // make sure the require takes in an absolute path to the custom tracer module.
}

The tracer is responsible for tracing http calls right from the resource request call to the external commercetools backend service and everything that goes on in-between.

Package Sidebar

Install

npm i @commercetools/ts-sdk-apm

Weekly Downloads

357

Version

2.0.0

License

MIT

Unpacked Size

19.1 kB

Total Files

16

Last publish

Collaborators

  • commercetools-admin
  • emmenko
  • hajoeichler
  • yanns
  • tdeekens
  • timonrey
  • vineetkumarkushwaha
  • markusazer
  • jherey
  • danrleyt
  • jenschude
  • chukwuemeka