/** * Performance мониторинг для workflow сервисов * Отслеживает время загрузки, cache hit/miss ratio, memory usage */ export interface PerformanceMetrics { /** Среднее время загрузки из кэша (мс) */ avgCacheLoadTime: number; /** Среднее время загрузки из файла (мс) */ avgFileLoadTime: number; /** Cache hit ratio (0-1) */ cacheHitRatio: number; /** Количество операций за последнюю минуту */ operationsPerMinute: number; /** Приблизительное использование памяти кэшем (байт) */ cacheMemoryUsage: number; /** Время последней операции */ lastOperationTime: number; /** Топ самых медленных загрузок */ slowestLoads: Array<{ workflowId: string; loadTime: number; source: "cache" | "file"; timestamp: number; }>; /** Топ самых часто используемых workflow */ mostUsedWorkflows: Array<{ workflowId: string; loadCount: number; avgLoadTime: number; }>; } export interface LoadOperation { workflowId: string; startTime: number; endTime: number; source: "cache" | "file"; success: boolean; error?: string; } /** * Класс для мониторинга производительности workflow сервисов */ export declare class WorkflowPerformanceMonitor { private operations; private readonly maxOperationsHistory; private readonly slowestLoadsCount; private workflowStats; /** * Записывает начало операции загрузки */ startOperation(workflowId: string): string; /** * Записывает завершение операции загрузки */ endOperation(workflowId: string, startTime: number, source: "cache" | "file", success: boolean, error?: string): void; /** * Получить текущие метрики производительности */ getMetrics(): PerformanceMetrics; /** * Получить детальную статистику по конкретному workflow */ getWorkflowStats(workflowId: string): { loadCount: number; avgLoadTime: number; lastAccess: number; recentOperations: LoadOperation[]; } | null; /** * Сброс всех метрик (полезно для тестирования) */ reset(): void; /** * Экспорт метрик в формате для логирования */ exportMetrics(): string; /** * Получить рекомендации по оптимизации */ getOptimizationRecommendations(): string[]; }