1.0.1 • Published 4 years ago

tstats v1.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

Tstats

CircleCI codecov npm

A library for collecting app metrics from nest.js application.

TSTATS contains decorator(s) and interceptor(s) for tracing and collecting performance metrics from nest.js application.
This library was created as a nest.js module and heavily depended on Prometheus and Zipkin.

Features

  • Injects global interceptor and collect performance metrics on requests and publishes for Prometheus.
  • Injects global middleware and Traces every request with Zipkin (zipkin-express).
  • Provides decorator for Zipkin segmentation.

Getting started

Just install the library tstats:

$ npm i tstats -S
$ yarn add tstats

Usage

APPLY MODULE

import { TstatsModule } from 'tstats/dist/tstats-module';

@Module({
  imports: [
    TstatsModule.register({
          namespace: 'NAMESPACE_FOR_PROMETHEUS',
          appName: 'APPLICATION_NAME_FOR_PROMETHEUS_AND_IN_GENERAL',
          zipkin: {
            serviceName: 'ZIPKIN_SERVICE_NAME',
            url: 'http://[ZIPKIN_URL]/api/v2/spans'
          },
          enabled: true
        })
  ],
  providers: []
})

export class ApplicationModule {}

ZIPKIN SEGMENTATION This decorator not compulsory to use but most of the time You will need it.

class SomeClassToTrace {
    
    @ZipkinSegment()
    public async someAsyncMethodToTrace() {
        return await someAsyncJob();
    }
    
    @ZipkinSegment('Optional name')
    public someMethodToTrace() {
        return someJob();
    }

}

Configuration

Module Options

ParamTypeOptionalDescription
namespacestringNOPrometheus summary namespace
appNamestringNOPrometheus service name
zipkinZipkinOptionsNOZipkin Options
enabledbooleanYESIs module active (ex: enabled = env == 'prod')

ZipkinOptions

ParamTypeOptionalDescription
serviceNamestringNOZipkin service name app identifier
urlstringNOZipkin url