UNPKG

@ahmedhegazee/nestjs-telescope

Version:

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

223 lines (222 loc) 10.8 kB
import { Response } from 'express'; import { Observable } from 'rxjs'; import { JobWatcherService } from '../../watchers/job/job-watcher.service'; import { CacheWatcherService } from '../../watchers/cache/cache-watcher.service'; import { AnalyticsService, AnalyticsData } from '../../core/services/analytics.service'; import { PerformanceCorrelationService } from '../../core/services/performance-correlation.service'; import { ExportReportingService } from '../../core/services/export-reporting.service'; export declare class ExportDataDto { format: 'json' | 'csv' | 'xlsx' | 'pdf'; type: 'raw' | 'analytics' | 'performance' | 'custom'; timeRange?: { start: string; end: string; }; filters?: { watchers?: string[]; components?: string[]; severities?: string[]; tags?: string[]; }; fields?: string[]; limit?: number; includeMetadata?: boolean; } export declare class GenerateReportDto { type: 'performance' | 'error' | 'system' | 'custom'; template?: string; title?: string; description?: string; timeRange: { start: string; end: string; }; format: 'html' | 'pdf' | 'md'; includeCharts?: boolean; includeRawData?: boolean; } export declare class Week7AnalyticsController { private readonly jobWatcherService; private readonly cacheWatcherService; private readonly analyticsService; private readonly performanceCorrelationService; private readonly exportReportingService; constructor(jobWatcherService: JobWatcherService, cacheWatcherService: CacheWatcherService, analyticsService: AnalyticsService, performanceCorrelationService: PerformanceCorrelationService, exportReportingService: ExportReportingService); getJobMetrics(): import("../../watchers/job/job-watcher.service").JobMetrics; getRecentJobs(limit?: number): import("../../watchers/job/job-watcher.service").JobContext[]; getJobsByQueue(queueName: string, limit?: number): import("../../watchers/job/job-watcher.service").JobContext[]; getQueueHealthByName(queueName: string): import("../../watchers/job/job-watcher.service").QueueHealth | import("../../watchers/job/job-watcher.service").QueueHealth[]; getQueueHealth(): import("../../watchers/job/job-watcher.service").QueueHealth | import("../../watchers/job/job-watcher.service").QueueHealth[]; getJobMetricsStream(): Observable<any>; getCacheMetrics(): import("../../watchers/cache/cache-watcher.service").CacheMetrics; getRecentCacheOperations(limit?: number): import("../../watchers/cache/cache-watcher.service").CacheContext[]; getCacheHealthByInstance(instance: string): import("../../watchers/cache/cache-watcher.service").CacheHealth | import("../../watchers/cache/cache-watcher.service").CacheHealth[]; getCacheHealth(): import("../../watchers/cache/cache-watcher.service").CacheHealth | import("../../watchers/cache/cache-watcher.service").CacheHealth[]; getRedisInfoByInstance(instance: string): any; getRedisInfo(): any; getRedisHealth(): { instance: string; status: string; info: any; }[]; getKeyspaceInfoByInstance(instance: string): Promise<any>; getKeyspaceInfo(): Promise<any>; getCacheMetricsStream(): Observable<any>; getAdvancedAnalytics(startDate?: string, endDate?: string): AnalyticsData | Promise<AnalyticsData>; getAdvancedAnalyticsStream(): Observable<AnalyticsData>; getPerformanceAnalytics(): { responseTimeDistribution: import("../../core/services/analytics.service").PerformanceDistribution; slowestEndpoints: import("../../core/services/analytics.service").EndpointMetrics[]; resourceUsage: import("../../core/services/analytics.service").ResourceUsage; bottleneckAnalysis: import("../../core/services/analytics.service").BottleneckSummary[]; }; getErrorAnalytics(): { errorDistribution: import("../../core/services/analytics.service").ErrorDistribution; topErrors: import("../../core/services/analytics.service").ErrorSummary[]; errorTrends: import("../../core/services/analytics.service").TimeSeries[]; impactAnalysis: import("../../core/services/analytics.service").ErrorImpact[]; }; getUserAnalytics(): { activeUsers: import("../../core/services/analytics.service").UserMetrics[]; sessionAnalysis: import("../../core/services/analytics.service").SessionAnalysis; geographicDistribution: import("../../core/services/analytics.service").GeographicData[]; deviceAnalysis: import("../../core/services/analytics.service").DeviceAnalysis[]; }; getTrendAnalytics(): { trafficTrends: import("../../core/services/analytics.service").TimeSeries[]; performanceTrends: import("../../core/services/analytics.service").TimeSeries[]; errorTrends: import("../../core/services/analytics.service").TimeSeries[]; predictions: import("../../core/services/analytics.service").PredictionData[]; }; getAlertsAndAnomalies(): { activeAlerts: import("../../core/services/analytics.service").AlertSummary[]; alertTrends: import("../../core/services/analytics.service").TimeSeries[]; anomalies: import("../../core/services/analytics.service").AnomalyDetection[]; }; getCorrelationMetrics(): import("../../core/services/performance-correlation.service").PerformanceMetrics; getRecentCorrelations(limit?: number): import("../../core/services/performance-correlation.service").CorrelationContext[]; getCorrelationsByTraceId(traceId: string): import("../../core/services/performance-correlation.service").CorrelationContext; getBottlenecksByComponent(component: string, limit?: number): import("../../core/services/performance-correlation.service").BottleneckAnalysis[]; getActiveTraces(): { traceId: string; watchers: string[]; startTime: Date; }[]; getCorrelationStream(): Observable<any>; exportData(exportDto: ExportDataDto, res?: Response): Promise<import("../../core/services/export-reporting.service").ExportResult>; generateReport(reportDto: GenerateReportDto, res?: Response): Promise<import("../../core/services/export-reporting.service").ReportResult>; getExportHistory(): Promise<{ id: string; type: string; createdAt: Date; filePath: string; }[]>; getReportTemplates(): Promise<{ id: string; name: string; type: string; sections: import("../../core/services/export-reporting.service").ReportSection[]; }[]>; getSystemHealthOverview(): Promise<{ timestamp: Date; jobs: { healthScore: number; healthStatus: "critical" | "healthy" | "warning"; totalJobs: number; failureRate: number; averageExecutionTime: number; }; cache: { healthScore: number; healthStatus: "critical" | "healthy" | "warning"; hitRate: number; averageResponseTime: number; totalOperations: number; }; performance: { averageResponseTime: number; p95ResponseTime: number; errorRate: number; totalRequests: number; }; system: { totalRequests: number; totalErrors: number; activeUsers: number; throughput: number; }; }>; getAllActiveAlerts(): Promise<{ timestamp: Date; totalAlerts: number; alerts: { jobs: any[]; cache: any[]; performance: any[]; system: any[]; }; }>; acknowledgeAlert(alertId: string): { success: boolean; alertId: string; acknowledgedAt: Date; }; getDashboardData(): Promise<{ timestamp: Date; jobs: { metrics: import("../../watchers/job/job-watcher.service").JobMetrics; recentJobs: import("../../watchers/job/job-watcher.service").JobContext[]; queueHealth: import("../../watchers/job/job-watcher.service").QueueHealth | import("../../watchers/job/job-watcher.service").QueueHealth[]; }; cache: { metrics: import("../../watchers/cache/cache-watcher.service").CacheMetrics; recentOperations: import("../../watchers/cache/cache-watcher.service").CacheContext[]; health: import("../../watchers/cache/cache-watcher.service").CacheHealth | import("../../watchers/cache/cache-watcher.service").CacheHealth[]; redisHealth: { instance: string; status: string; info: any; }[]; }; analytics: { overview: { totalRequests: number; totalErrors: number; totalQueries: number; totalCacheOps: number; totalJobs: number; averageResponseTime: number; errorRate: number; throughput: number; activeUsers: number; peakConcurrency: number; }; performance: { responseTimeDistribution: import("../../core/services/analytics.service").PerformanceDistribution; slowestEndpoints: import("../../core/services/analytics.service").EndpointMetrics[]; resourceUsage: import("../../core/services/analytics.service").ResourceUsage; bottleneckAnalysis: import("../../core/services/analytics.service").BottleneckSummary[]; }; trends: { trafficTrends: import("../../core/services/analytics.service").TimeSeries[]; performanceTrends: import("../../core/services/analytics.service").TimeSeries[]; errorTrends: import("../../core/services/analytics.service").TimeSeries[]; predictions: import("../../core/services/analytics.service").PredictionData[]; }; alerts: { activeAlerts: import("../../core/services/analytics.service").AlertSummary[]; alertTrends: import("../../core/services/analytics.service").TimeSeries[]; anomalies: import("../../core/services/analytics.service").AnomalyDetection[]; }; }; correlation: { metrics: import("../../core/services/performance-correlation.service").PerformanceMetrics; recentCorrelations: import("../../core/services/performance-correlation.service").CorrelationContext[]; activeTraces: { traceId: string; watchers: string[]; startTime: Date; }[]; }; }>; }