UNPKG

@simonecoelhosfo/optimizely-mcp-server

Version:

Optimizely MCP Server for AI assistants with integrated CLI tools

124 lines 3.27 kB
/** * Execution Monitor * @description Monitors and tracks orchestration template execution with performance metrics * @author Optimizely MCP Server * @version 1.0.0 */ import { OrchestrationConfig } from '../types/index.js'; import { EventEmitter } from 'events'; export interface ExecutionMetrics { executionId: string; startTime: number; endTime?: number; duration?: number; stepMetrics: Map<string, StepMetrics>; memoryUsage: MemoryUsage[]; errors: ErrorMetric[]; status: 'running' | 'completed' | 'failed' | 'timeout' | 'cancelled'; } export interface StepMetrics { stepId: string; stepName: string; startTime: number; endTime?: number; duration?: number; status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped'; retryCount: number; errorMessage?: string; } export interface MemoryUsage { timestamp: number; heapUsed: number; heapTotal: number; external: number; rss: number; } export interface ErrorMetric { timestamp: number; stepId?: string; message: string; stack?: string; recoverable: boolean; } export interface ExecutionEvent { type: 'start' | 'step_start' | 'step_complete' | 'step_error' | 'complete' | 'error' | 'timeout'; executionId: string; timestamp: number; data?: any; } export declare class ExecutionMonitor extends EventEmitter { private logger; private executions; private timeouts; private memoryIntervals; constructor(); /** * Start monitoring an execution */ startMonitoring(executionId: string, config?: OrchestrationConfig): void; /** * Stop monitoring an execution */ stopMonitoring(executionId: string): ExecutionMetrics | undefined; /** * Record step start */ recordStepStart(executionId: string, stepId: string, stepName: string): void; /** * Record step completion */ recordStepComplete(executionId: string, stepId: string): void; /** * Record step error */ recordStepError(executionId: string, stepId: string, error: Error): void; /** * Record step retry */ recordStepRetry(executionId: string, stepId: string): void; /** * Record step skipped */ recordStepSkipped(executionId: string, stepId: string): void; /** * Mark execution as completed */ markCompleted(executionId: string): void; /** * Mark execution as failed */ markFailed(executionId: string, error: Error): void; /** * Get execution metrics */ getMetrics(executionId: string): ExecutionMetrics | undefined; /** * Get all active executions */ getActiveExecutions(): string[]; /** * Get execution summary */ getExecutionSummary(executionId: string): any; /** * Start memory monitoring */ private startMemoryMonitoring; /** * Stop memory monitoring */ private stopMemoryMonitoring; /** * Handle execution timeout */ private handleTimeout; /** * Emit execution event */ private emitEvent; /** * Clean up old metrics */ cleanupOldMetrics(olderThanMs?: number): void; } //# sourceMappingURL=ExecutionMonitor.d.ts.map