import { Module, Global } from '@nestjs/common';
import {
PrometheusModule,
makeCounterProvider,
makeGaugeProvider,
} from '@willsoto/nestjs-prometheus';
import { MetricsService } from './metrics.service';
@Global()
@Module({
imports: [
PrometheusModule.register({
path: '/tbl-custom-metrics',
defaultMetrics: {
enabled: false,
},
defaultLabels: {
application: 'tbl-service',
},
}),
],
providers: [
MetricsService,
makeCounterProvider({
name: 'tbl_games_total',
help: 'Total number of games',
labelNames: ['instance'],
}),
makeGaugeProvider({
name: 'tbl_games_active',
help: 'Number of active games',
labelNames: ['instance'],
}),
makeCounterProvider({
name: 'live_games_created_total',
help: 'Total number of live games created',
labelNames: ['instance'],
}),
makeCounterProvider({
name: 'live_games_started_total',
help: 'Total number of live games started',
labelNames: ['instance'],
}),
makeCounterProvider({
name: 'live_games_finished_total',
help: 'Total number of live games finished',
labelNames: ['instance'],
}),
],
exports: [MetricsService],
})
export class MetricsModule {}