import { Injectable } from '@nestjs/common';
import { InjectMetric } from '@willsoto/nestjs-prometheus';
import { Counter, Gauge, Histogram } from 'prom-client';

@Injectable()
export class DbMetricsService {
    constructor(
        @InjectMetric('db_active_connections')
        public readonly activeConnections: Gauge<string>,

        @InjectMetric('db_idle_connections')
        public readonly idleConnections: Gauge<string>,

        @InjectMetric('db_query_total')
        public readonly queryTotal: Counter<string>,

        @InjectMetric('db_query_failed_total')
        public readonly queryFailed: Counter<string>,

        @InjectMetric('db_query_duration_seconds')
        public readonly queryDuration: Histogram<string>,
    ) { }
}
