UNPKG

@ahmedhegazee/nestjs-telescope

Version:

Advanced observability and monitoring solution for NestJS applications with ML-powered analytics, enterprise features, and production-ready scaling

50 lines (49 loc) 1.73 kB
import { DataSource } from 'typeorm'; import { QueryContext } from './query-watcher.interceptor'; import { SlowQueryAnalysis } from './query-watcher.service'; export interface QueryOptimizationSuggestion { type: 'index' | 'rewrite' | 'schema' | 'caching' | 'partitioning'; priority: 'low' | 'medium' | 'high' | 'critical'; table: string; column?: string; currentQuery: string; optimizedQuery?: string; indexDefinition?: string; description: string; estimatedImpact: string; implementationEffort: 'low' | 'medium' | 'high'; } export interface QueryPattern { pattern: string; count: number; averageDuration: number; lastSeen: Date; optimization?: QueryOptimizationSuggestion; } export declare class QueryAnalyzerService { private readonly dataSource; private readonly logger; private readonly queryPatterns; private readonly indexSuggestions; constructor(dataSource: DataSource); analyzeQuery(context: QueryContext): Promise<SlowQueryAnalysis>; private getExecutionPlan; private getPostgresExecutionPlan; private getMySQLExecutionPlan; private extractPostgresOperations; private extractMySQLOperations; private analyzeQueryStructure; private analyzeExecutionPlan; private generateOptimizationHints; private generateIndexSuggestion; private extractColumnsFromWhere; private extractTableName; private determineSeverity; private updateQueryPatterns; private normalizeQueryForPattern; private isFrequentQuery; getQueryPatterns(): QueryPattern[]; getSlowQueryPatterns(): QueryPattern[]; getOptimizationSuggestions(): QueryOptimizationSuggestion[]; clearPatterns(): void; }