il2cpp-dump-analyzer-mcp
Version:
Agentic RAG system for analyzing IL2CPP dump.cs files from Unity games
142 lines (141 loc) • 3.68 kB
TypeScript
/**
* Monitoring integration service for IL2CPP dump analyzer MCP system
* Coordinates health monitoring, metrics collection, and lifecycle management
*/
import { EventEmitter } from 'events';
import { SupabaseConnectionManager } from '../database/connection-manager';
import { EnhancedSupabaseVectorStore } from '../database/enhanced-vector-store';
import { XenovaEmbeddings } from '../embeddings/xenova-embeddings';
export interface MonitoringConfig {
enabled: boolean;
healthChecks: {
enabled: boolean;
interval: number;
timeout: number;
};
metrics: {
enabled: boolean;
exportInterval: number;
prometheusEnabled: boolean;
};
lifecycle: {
enabled: boolean;
restartPolicy: 'never' | 'on-failure' | 'always';
maxRestarts: number;
};
alerts: {
enabled: boolean;
webhookUrl?: string;
emailEnabled: boolean;
};
}
export interface MonitoringStatus {
overall: 'healthy' | 'degraded' | 'unhealthy';
services: {
health: boolean;
metrics: boolean;
lifecycle: boolean;
};
uptime: number;
lastUpdate: Date;
}
/**
* Comprehensive monitoring integration service
*/
export declare class MonitoringIntegration extends EventEmitter {
private config;
private healthService;
private metricsService;
private lifecycleManager;
private isInitialized;
private isRunning;
private startTime;
constructor(config?: Partial<MonitoringConfig>);
/**
* Initialize monitoring services
*/
private initializeServices;
/**
* Setup event handlers between services
*/
private setupEventHandlers;
/**
* Initialize monitoring with application components
*/
initialize(components: {
connectionManager?: SupabaseConnectionManager;
vectorStore?: EnhancedSupabaseVectorStore;
embeddings?: XenovaEmbeddings;
}): Promise<void>;
/**
* Start all monitoring services
*/
start(): Promise<void>;
/**
* Stop all monitoring services
*/
stop(): Promise<void>;
/**
* Get comprehensive monitoring status
*/
getStatus(): Promise<MonitoringStatus>;
/**
* Get health status
*/
getHealthStatus(): Promise<import("./health-service").HealthStatus>;
/**
* Get metrics in Prometheus format
*/
getPrometheusMetrics(): string;
/**
* Get lifecycle state
*/
getLifecycleState(): import("./lifecycle-manager").LifecycleState;
/**
* Force application restart
*/
forceRestart(reason?: string): Promise<void>;
/**
* Update MCP metrics
*/
updateMCPMetrics(metrics: {
activeConnections?: number;
requestProcessed?: boolean;
responseTime?: number;
error?: boolean;
}): void;
/**
* Record custom metric
*/
recordMetric(metric: {
name: string;
value: number;
labels?: Record<string, string>;
type: 'counter' | 'gauge' | 'histogram' | 'summary';
help?: string;
}): void;
/**
* Send alert notification
*/
private sendAlert;
/**
* Send webhook alert
*/
private sendWebhookAlert;
/**
* Register shutdown handler
*/
onShutdown(handler: () => Promise<void>): void;
/**
* Register startup handler
*/
onStartup(handler: () => Promise<void>): void;
/**
* Get monitoring configuration
*/
getConfig(): MonitoringConfig;
/**
* Update monitoring configuration
*/
updateConfig(updates: Partial<MonitoringConfig>): void;
}