elastic-apm-nest
NestJS Elastic APM library.
Installation
npm i elastic-apm-nest --save
Usage
To your tsconfig.json
add following lines:
"paths":
If your baseUrl
in tsconfig.json
is set to some directory, remember to change the path of elastic-apm-node
For example if your baseUrl: "./src"
you need to replace .
with ..
"paths":
; initializeAPMAgent; ;; bootstrap;
As NestJS is not allowing you to use some sort of ConfigService
there you need to add to your repository dotenv package or something similar to pass configuration.
Adding ApmModule
;;;;
Module exports
ApmService
- Wrapper for raw APM Agent instance
APM_INSTANCE
- Raw APM Agent instance
APM_MIDDLEWARE
- APM Raw Http middleware for express
APM_OPTIONS
- Current configuration for elastic-apm-nest
APM Decorator
There is possibility to use ApmCurrentTransaction
to inject current transaction
getHelloWorld @ApmCurrentTransaction transaction: Transaction, : string
Default ApmHttpUserContextInterceptor behavior
It won't set UserContext in transaction if httpUserMapFunction
is not provided
Handling not supported methods
You can inject APM_INSTANCE
which contains created APM instance via initializeAPMAgent
function.
Testing locally
- Run
npm run build:test
- Copy absolute path to generated
.tgz
file - Run in other project
npm install <path_to_.tgz_file>
ToDo
- [] Improve tests
- [] Add examples
- [] Add renovate
- Improve typings for elastic-apm