import { DataSource } from 'typeorm'; import { HttpLogEntity, HttpLogQueryOptions, HttpLogStats } from '../entities/http-log.entity'; /** * HTTP日志查询服务 */ export declare class HttpLogQueryService { private readonly dataSource?; private readonly logger; private logRepository; constructor(dataSource?: DataSource); /** * 查询HTTP日志 */ findLogs(options?: HttpLogQueryOptions): Promise<{ logs: HttpLogEntity[]; total: number; page: number; limit: number; totalPages: number; }>; /** * 根据ID查询单条日志 */ findLogById(id: string, includeDetails?: boolean): Promise; /** * 根据请求ID查询日志 */ findLogByRequestId(requestId: string): Promise; /** * 查询错误日志 */ findErrorLogs(options?: { startDate?: Date; endDate?: Date; errorCode?: string; statusCode?: number; page?: number; limit?: number; }): Promise<{ logs: HttpLogEntity[]; total: number; }>; /** * 查询慢请求日志 */ findSlowRequests(minResponseTime?: number, options?: { page?: number; limit?: number; }): Promise<{ logs: HttpLogEntity[]; total: number; }>; /** * 查询重试日志 */ findRetryLogs(options?: { minRetries?: number; page?: number; limit?: number; }): Promise<{ logs: HttpLogEntity[]; total: number; }>; /** * 获取统计信息 */ getStats(options?: { startDate?: Date; endDate?: Date; userId?: string; serviceName?: string; groupBy?: 'hour' | 'day' | 'week'; }): Promise; /** * 删除旧日志 */ deleteOldLogs(daysToKeep?: number): Promise; /** * 清空所有日志 */ clearAllLogs(): Promise; /** * 根据日志ID生成curl命令 * @param logId 日志ID * @returns curl命令字符串 */ generateCurlFromLog(logId: string): Promise; /** * 根据请求ID生成curl命令 * @param requestId 请求ID * @returns curl命令字符串 */ generateCurlFromRequestId(requestId: string): Promise; /** * 根据日志生成可重放的请求配置 * @param logId 日志ID * @returns 请求配置对象 */ generateReplayConfigFromLog(logId: string): Promise; /** * 根据请求ID生成可重放的请求配置 * @param requestId 请求ID * @returns 请求配置对象 */ generateReplayConfigFromRequestId(requestId: string): Promise; /** * 批量生成curl命令 * @param options 查询选项 * @returns curl命令数组 */ generateBatchCurlCommands(options?: HttpLogQueryOptions): Promise>; /** * 获取日志的完整重放信息 * @param logId 日志ID * @returns 包含curl命令和重放配置的对象 */ getLogReplayInfo(logId: string): Promise<{ log: HttpLogEntity; curlCommand: string | null; replayConfig: any | null; } | null>; /** * 根据请求ID获取日志的完整重放信息 * @param requestId 请求ID * @returns 包含curl命令和重放配置的对象 */ getLogReplayInfoByRequestId(requestId: string): Promise<{ log: HttpLogEntity; curlCommand: string | null; replayConfig: any | null; } | null>; /** * 初始化仓库 */ private initializeRepository; /** * 计算响应时间百分位数 */ private calculatePercentiles; /** * 格式化统计结果 */ private formatStats; /** * 构建查询 */ private buildQuery; /** * 清理敏感信息用于生成curl命令 * 移除或替换敏感的请求头和认证信息 * @param headers 原始请求头 * @returns 清理后的请求头 */ private sanitizeHeadersForCurl; private parseLogBody; }