@agent-relay/resiliency 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/context-persistence.d.ts +140 -0
- package/dist/context-persistence.d.ts.map +1 -0
- package/dist/context-persistence.js +397 -0
- package/dist/context-persistence.js.map +1 -0
- package/dist/crash-insights.d.ts +156 -0
- package/dist/crash-insights.d.ts.map +1 -0
- package/dist/crash-insights.js +492 -0
- package/dist/crash-insights.js.map +1 -0
- package/dist/gossip-health.d.ts +137 -0
- package/dist/gossip-health.d.ts.map +1 -0
- package/dist/gossip-health.js +241 -0
- package/dist/gossip-health.js.map +1 -0
- package/dist/health-monitor.d.ts +97 -0
- package/dist/health-monitor.d.ts.map +1 -0
- package/dist/health-monitor.js +291 -0
- package/dist/health-monitor.js.map +1 -0
- package/dist/index.d.ts +68 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/leader-watchdog.d.ts +109 -0
- package/dist/leader-watchdog.d.ts.map +1 -0
- package/dist/leader-watchdog.js +189 -0
- package/dist/leader-watchdog.js.map +1 -0
- package/dist/logger.d.ts +114 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +250 -0
- package/dist/logger.js.map +1 -0
- package/dist/memory-monitor.d.ts +172 -0
- package/dist/memory-monitor.d.ts.map +1 -0
- package/dist/memory-monitor.js +599 -0
- package/dist/memory-monitor.js.map +1 -0
- package/dist/metrics.d.ts +115 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +239 -0
- package/dist/metrics.js.map +1 -0
- package/dist/provider-context.d.ts +100 -0
- package/dist/provider-context.d.ts.map +1 -0
- package/dist/provider-context.js +362 -0
- package/dist/provider-context.js.map +1 -0
- package/dist/stateless-lead.d.ts +149 -0
- package/dist/stateless-lead.d.ts.map +1 -0
- package/dist/stateless-lead.js +308 -0
- package/dist/stateless-lead.js.map +1 -0
- package/dist/supervisor.d.ts +147 -0
- package/dist/supervisor.d.ts.map +1 -0
- package/dist/supervisor.js +459 -0
- package/dist/supervisor.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Memory Monitor
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive memory monitoring for agent processes:
|
|
5
|
+
* - Detailed memory metrics (RSS, heap, external)
|
|
6
|
+
* - Memory trend analysis (growing/stable/shrinking)
|
|
7
|
+
* - High watermark tracking
|
|
8
|
+
* - Configurable thresholds for proactive alerting
|
|
9
|
+
* - Memory history for trend analysis
|
|
10
|
+
* - Crash prevention through memory pressure detection
|
|
11
|
+
*/
|
|
12
|
+
import { EventEmitter } from 'events';
|
|
13
|
+
export interface MemorySnapshot {
|
|
14
|
+
timestamp: Date;
|
|
15
|
+
rssBytes: number;
|
|
16
|
+
heapUsedBytes: number;
|
|
17
|
+
heapTotalBytes: number;
|
|
18
|
+
externalBytes: number;
|
|
19
|
+
cpuPercent: number;
|
|
20
|
+
}
|
|
21
|
+
export interface AgentMemoryMetrics {
|
|
22
|
+
name: string;
|
|
23
|
+
pid: number;
|
|
24
|
+
current: MemorySnapshot;
|
|
25
|
+
highWatermark: number;
|
|
26
|
+
lowWatermark: number;
|
|
27
|
+
averageRss: number;
|
|
28
|
+
trend: 'growing' | 'stable' | 'shrinking' | 'unknown';
|
|
29
|
+
trendRatePerMinute: number;
|
|
30
|
+
alertLevel: 'normal' | 'warning' | 'critical' | 'oom_imminent';
|
|
31
|
+
lastAlertAt?: Date;
|
|
32
|
+
memoryHistory: MemorySnapshot[];
|
|
33
|
+
startedAt: Date;
|
|
34
|
+
uptimeMs: number;
|
|
35
|
+
}
|
|
36
|
+
export interface MemoryThresholds {
|
|
37
|
+
warningBytes: number;
|
|
38
|
+
criticalBytes: number;
|
|
39
|
+
oomImminentBytes: number;
|
|
40
|
+
trendGrowthRateWarning: number;
|
|
41
|
+
historyRetentionMinutes: number;
|
|
42
|
+
historyMaxSamples: number;
|
|
43
|
+
}
|
|
44
|
+
export interface MemoryMonitorConfig {
|
|
45
|
+
checkIntervalMs: number;
|
|
46
|
+
thresholds: MemoryThresholds;
|
|
47
|
+
enableTrendAnalysis: boolean;
|
|
48
|
+
enableProactiveAlerts: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface MemoryAlert {
|
|
51
|
+
type: 'warning' | 'critical' | 'oom_imminent' | 'trend_warning' | 'recovered';
|
|
52
|
+
agentName: string;
|
|
53
|
+
pid: number;
|
|
54
|
+
currentRss: number;
|
|
55
|
+
threshold: number;
|
|
56
|
+
message: string;
|
|
57
|
+
recommendation: string;
|
|
58
|
+
timestamp: Date;
|
|
59
|
+
}
|
|
60
|
+
export interface CrashMemoryContext {
|
|
61
|
+
agentName: string;
|
|
62
|
+
pid: number;
|
|
63
|
+
crashTime: Date;
|
|
64
|
+
lastKnownMemory: MemorySnapshot | null;
|
|
65
|
+
peakMemory: number;
|
|
66
|
+
averageMemory: number;
|
|
67
|
+
memoryTrend: string;
|
|
68
|
+
recentHistory: MemorySnapshot[];
|
|
69
|
+
likelyCause: 'oom' | 'memory_leak' | 'sudden_spike' | 'unknown';
|
|
70
|
+
analysisNotes: string[];
|
|
71
|
+
}
|
|
72
|
+
export declare class AgentMemoryMonitor extends EventEmitter {
|
|
73
|
+
private agents;
|
|
74
|
+
private pids;
|
|
75
|
+
private intervalId?;
|
|
76
|
+
private config;
|
|
77
|
+
private isRunning;
|
|
78
|
+
private alertCooldowns;
|
|
79
|
+
constructor(config?: Partial<MemoryMonitorConfig>);
|
|
80
|
+
/**
|
|
81
|
+
* Register an agent for memory monitoring
|
|
82
|
+
*/
|
|
83
|
+
register(name: string, pid: number): void;
|
|
84
|
+
/**
|
|
85
|
+
* Update PID for an agent (after restart)
|
|
86
|
+
*/
|
|
87
|
+
updatePid(name: string, newPid: number): void;
|
|
88
|
+
/**
|
|
89
|
+
* Unregister an agent
|
|
90
|
+
*/
|
|
91
|
+
unregister(name: string): void;
|
|
92
|
+
/**
|
|
93
|
+
* Start memory monitoring
|
|
94
|
+
*/
|
|
95
|
+
start(): void;
|
|
96
|
+
/**
|
|
97
|
+
* Stop memory monitoring
|
|
98
|
+
*/
|
|
99
|
+
stop(): void;
|
|
100
|
+
/**
|
|
101
|
+
* Get memory metrics for all agents
|
|
102
|
+
*/
|
|
103
|
+
getAll(): AgentMemoryMetrics[];
|
|
104
|
+
/**
|
|
105
|
+
* Get memory metrics for a specific agent
|
|
106
|
+
*/
|
|
107
|
+
get(name: string): AgentMemoryMetrics | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* Get crash context for an agent (for crash analysis)
|
|
110
|
+
*/
|
|
111
|
+
getCrashContext(name: string): CrashMemoryContext;
|
|
112
|
+
/**
|
|
113
|
+
* Get system-wide memory summary
|
|
114
|
+
*/
|
|
115
|
+
getSystemSummary(): {
|
|
116
|
+
totalAgents: number;
|
|
117
|
+
totalMemoryBytes: number;
|
|
118
|
+
agentsByAlertLevel: Record<string, number>;
|
|
119
|
+
topMemoryConsumers: Array<{
|
|
120
|
+
name: string;
|
|
121
|
+
rssBytes: number;
|
|
122
|
+
}>;
|
|
123
|
+
systemMemory: {
|
|
124
|
+
total: number;
|
|
125
|
+
free: number;
|
|
126
|
+
available: number;
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Sample memory for all registered agents
|
|
131
|
+
*/
|
|
132
|
+
private sampleAll;
|
|
133
|
+
/**
|
|
134
|
+
* Sample memory for a single agent
|
|
135
|
+
*/
|
|
136
|
+
private sampleAgent;
|
|
137
|
+
/**
|
|
138
|
+
* Update metrics with new snapshot
|
|
139
|
+
*/
|
|
140
|
+
private updateMetrics;
|
|
141
|
+
/**
|
|
142
|
+
* Analyze memory trend
|
|
143
|
+
*/
|
|
144
|
+
private analyzeTrend;
|
|
145
|
+
/**
|
|
146
|
+
* Check and emit alerts
|
|
147
|
+
*/
|
|
148
|
+
private checkAlerts;
|
|
149
|
+
/**
|
|
150
|
+
* Get memory for a process using ps
|
|
151
|
+
*/
|
|
152
|
+
private getProcessMemory;
|
|
153
|
+
/**
|
|
154
|
+
* Get system memory info
|
|
155
|
+
*/
|
|
156
|
+
private getSystemMemory;
|
|
157
|
+
/**
|
|
158
|
+
* Check if a process is alive
|
|
159
|
+
*/
|
|
160
|
+
private isProcessAlive;
|
|
161
|
+
/**
|
|
162
|
+
* Structured logging
|
|
163
|
+
*/
|
|
164
|
+
private log;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Format bytes for human-readable display
|
|
168
|
+
*/
|
|
169
|
+
declare function formatBytes(bytes: number): string;
|
|
170
|
+
export { formatBytes };
|
|
171
|
+
export declare function getMemoryMonitor(config?: Partial<MemoryMonitorConfig>): AgentMemoryMonitor;
|
|
172
|
+
//# sourceMappingURL=memory-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-monitor.d.ts","sourceRoot":"","sources":["../src/memory-monitor.ts"],"names":[],"mappings":"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"}
|