@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
TypeScript
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;
}