Files
immich/server/src/repositories/metric.repository.ts
T
Mert c58a70ac8f feat(server): job metrics (#8255)
* metric repo

* add metric repo

* remove unused import

* formatting

* fix

* try disabling job metrics for e2e

* import otel in test module
2024-03-24 23:02:04 -04:00

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);
}
}