import { Controller, Get, Header, Res } from '@nestjs/common'; import { ApiTags, ApiOperation, ApiExcludeEndpoint } from '@nestjs/swagger'; import { Response } from 'express'; import { MetricsService } from './metrics.service'; @ApiTags('Metrics') @Controller('metrics') export class MetricsController { constructor(private readonly metricsService: MetricsService) {} @Get() @ApiExcludeEndpoint() // 不在 Swagger 文档中显示 @ApiOperation({ summary: 'Prometheus 指标端点' }) async getMetrics(@Res() res: Response): Promise { const metrics = await this.metricsService.getMetrics(); res.header('Content-Type', this.metricsService.getContentType()); res.send(metrics); } }