Skip to main content

Instrument

Instrument

This decorator is used to apply instrumentation to a class. It is intended to be used in conjunction with an InstrumentationStrategy which defines how the instrumentation should be applied.

In order for the instrumentation to be applied, the VENDURE_ENABLE_INSTRUMENTATION environment variable (exported from the @vendure/core package as ENABLE_INSTRUMENTATION_ENV_VAR) must be set to true. This is done to avoid the overhead of instrumentation in environments where it is not needed.

warning

You should not decorate GraphQL resolvers & REST controllers with this decorator. Those will already be instrumented, and adding the @Instrument() decorator will potentially interfere with other NestJS decorators on your resolver methods.

For more information on how instrumentation is used, see docs on the TelemetryPlugin.

Example

import { Instrument } from '@vendure/core';
import { Injectable } from '@nestjs/common';

@Injectable()
@Instrument()
export class MyService {

// Calls to this method will be instrumented
myMethod() {
// ...
}
}
Signature
function Instrument(): ClassDecorator