c58a70ac8f
* metric repo * add metric repo * remove unused import * formatting * fix * try disabling job metrics for e2e * import otel in test module
32 lines
964 B
TypeScript
32 lines
964 B
TypeScript
import { Inject } from '@nestjs/common';
|
|
import { MetricService } from 'nestjs-otel';
|
|
import { CustomMetricOptions, IMetricRepository } from 'src/interfaces/metric.interface';
|
|
|
|
export class MetricRepository implements IMetricRepository {
|
|
constructor(@Inject(MetricService) private readonly metricService: MetricService) {}
|
|
|
|
addToCounter(name: string, value: number, options?: CustomMetricOptions): void {
|
|
if (options?.enabled === false) {
|
|
return;
|
|
}
|
|
|
|
this.metricService.getCounter(name, options).add(value);
|
|
}
|
|
|
|
updateGauge(name: string, value: number, options?: CustomMetricOptions): void {
|
|
if (options?.enabled === false) {
|
|
return;
|
|
}
|
|
|
|
this.metricService.getUpDownCounter(name, options).add(value);
|
|
}
|
|
|
|
updateHistogram(name: string, value: number, options?: CustomMetricOptions): void {
|
|
if (options?.enabled === false) {
|
|
return;
|
|
}
|
|
|
|
this.metricService.getHistogram(name, options).record(value);
|
|
}
|
|
}
|