stellar-cyber-mcp-agents
Version:
Model Context Protocol (MCP) server for Stellar Cyber security operations with specialized multi-agent analysis capabilities
132 lines • 3.88 kB
TypeScript
import { EventEmitter } from 'events';
import { AgentId, AgentType, AgentHealth, AgentMetrics } from '../types/agent.js';
export interface PerformanceMetrics {
agentId: AgentId;
timestamp: string;
cpu: {
usage: number;
loadAverage: number[];
};
memory: {
used: number;
total: number;
percentage: number;
heapUsed: number;
heapTotal: number;
};
network: {
bytesIn: number;
bytesOut: number;
requestsPerSecond: number;
avgResponseTime: number;
};
operations: {
completed: number;
failed: number;
pending: number;
avgDuration: number;
successRate: number;
};
health: AgentHealth;
customMetrics?: Record<string, number>;
}
export interface AgentLoad {
agentId: AgentId;
currentLoad: number;
capacity: number;
queueDepth: number;
averageResponseTime: number;
errorRate: number;
lastUpdate: string;
}
export interface ScalingDecision {
agentType: AgentType;
action: 'scale_up' | 'scale_down' | 'redistribute' | 'none';
reason: string;
targetInstances: number;
currentInstances: number;
confidence: number;
timestamp: string;
}
export interface PerformanceAlert {
id: string;
type: 'cpu_high' | 'memory_high' | 'error_rate_high' | 'response_time_high' | 'agent_unresponsive';
severity: 'WARNING' | 'CRITICAL';
agentId: AgentId;
message: string;
metrics: PerformanceMetrics;
threshold: number;
actualValue: number;
timestamp: string;
acknowledged: boolean;
}
export declare class PerformanceMonitor extends EventEmitter {
private readonly metrics;
private readonly agentLoads;
private readonly alerts;
private readonly thresholds;
private readonly retentionPeriod;
private readonly monitoringInterval;
private readonly scalingCooldown;
private lastScalingDecision;
constructor();
recordMetrics(metrics: PerformanceMetrics): void;
private updateAgentLoad;
private checkThresholds;
private createAlert;
private generateAlertMessage;
private processAlert;
private performMonitoringCycle;
private checkUnresponsiveAgents;
private performScalingAnalysis;
private groupAgentsByType;
private analyzeScalingNeed;
private processScalingDecision;
private considerScaling;
private cleanupOldData;
getAgentMetrics(agentId: AgentId, timeRange?: {
start: string;
end: string;
}): PerformanceMetrics[];
getSystemOverview(): any;
private getRecentMetrics;
acknowledgeAlert(alertId: string): boolean;
getActiveAlerts(): PerformanceAlert[];
private getAgentKey;
updateThresholds(newThresholds: Partial<typeof this.thresholds>): void;
getThresholds(): typeof this.thresholds;
destroy(): void;
/**
* Get performance monitor metrics
*/
getMetrics(): {
totalMetrics: number;
activeAgents: number;
alertsCount: number;
systemLoad: {
avgCpuUsage: number;
avgMemoryUsage: number;
totalOperations: number;
totalErrors: number;
};
};
}
/**
* Basic AgentMetrics implementation
*/
export declare class SimpleAgentMetrics implements AgentMetrics {
private counters;
private gauges;
private histograms;
private timers;
incrementCounter(name: string, value?: number): void;
recordGauge(name: string, value: number): void;
recordHistogram(name: string, value: number): void;
recordTimer(name: string, duration: number): void;
getCounters(): Map<string, number>;
getGauges(): Map<string, number>;
getHistograms(): Map<string, number[]>;
getTimers(): Map<string, number[]>;
clear(): void;
}
//# sourceMappingURL=performance-monitor.d.ts.map