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