claude-flow-novice 1.6.2 → 1.6.4
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/.claude/settings.json +16 -5
- package/.claude/settings.local.json +3 -2
- package/.claude-flow-novice/dist/src/api/auth-service.js +84 -38
- package/.claude-flow-novice/dist/src/api/auth-service.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/index.js +3 -0
- package/.claude-flow-novice/dist/src/coordination/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v1-transparency/interfaces/v1-transparency-system.js +12 -0
- package/.claude-flow-novice/dist/src/coordination/v1-transparency/interfaces/v1-transparency-system.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v1-transparency/v1-to-v2-bridge.js +433 -0
- package/.claude-flow-novice/dist/src/coordination/v1-transparency/v1-to-v2-bridge.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v1-transparency/v1-transparency-adapter.js +1468 -0
- package/.claude-flow-novice/dist/src/coordination/v1-transparency/v1-transparency-adapter.js.map +1 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/apm-integration.js +724 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/apm-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/datadog-collector.js +363 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/datadog-collector.js.map +1 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/index.js +97 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/newrelic-collector.js +384 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/newrelic-collector.js.map +1 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/performance-optimizer.js +612 -0
- package/.claude-flow-novice/dist/src/monitoring/apm/performance-optimizer.js.map +1 -0
- package/.claude-flow-novice/dist/src/monitoring/metrics-collector.js +282 -0
- package/.claude-flow-novice/dist/src/monitoring/metrics-collector.js.map +1 -0
- package/.claude-flow-novice/dist/src/providers/provider-manager.js +5 -3
- package/.claude-flow-novice/dist/src/providers/provider-manager.js.map +1 -1
- package/.claude-flow-novice/dist/src/providers/tiered-router.js +9 -17
- package/.claude-flow-novice/dist/src/providers/tiered-router.js.map +1 -1
- package/.claude-flow-novice/dist/src/web/api/apm-routes.js +355 -0
- package/.claude-flow-novice/dist/src/web/api/apm-routes.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/frontend/src/utils/security.js +425 -0
- package/.claude-flow-novice/dist/src/web/frontend/src/utils/security.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/security/security-middleware.js +379 -0
- package/.claude-flow-novice/dist/src/web/security/security-middleware.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/websocket/apm-websocket-handler.js +441 -0
- package/.claude-flow-novice/dist/src/web/websocket/apm-websocket-handler.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/websocket/websocket-manager.js +255 -1
- package/.claude-flow-novice/dist/src/web/websocket/websocket-manager.js.map +1 -1
- package/.claude-flow-novice/metrics.db +0 -0
- package/AGENT_PERFORMANCE_GUIDELINES.md +88 -0
- package/CLAUDE.md +103 -3
- package/config/hooks/post-edit-pipeline.js +68 -118
- package/config/hooks/pre-tool-memory-safety.js +209 -0
- package/package.json +9 -4
- package/scripts/cleanup-idle-sessions.sh +59 -0
- package/scripts/monitor-loop.sh +65 -0
- package/scripts/monitor-memory.sh +47 -0
- package/scripts/monitor.py +43 -0
- package/scripts/test-provider-routing.cjs +7 -9
- package/wiki/Provider-Routing.md +57 -69
- package/.claude-flow-novice/metrics.db-shm +0 -0
- package/.claude-flow-novice/metrics.db-wal +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/monitoring/apm/apm-integration.ts"],"names":["Logger","DataDogCollector","NewRelicCollector","DistributedTracer","PerformanceOptimizer","APMIntegration","logger","config","dataDogCollector","newRelicCollector","distributedTracer","performanceOptimizer","customMetricsInterval","healthCheckInterval","distributedTracing","enabled","samplingRate","performanceOptimization","monitoringInterval","customMetrics","interval","alerting","initializeCollectors","startCustomMetrics","startHealthChecks","process","on","shutdown","info","dataDog","apiKey","error","message","newRelic","licenseKey","traceAgentLifecycle","agentType","lifecycleEvent","agentId","metadata","traceContext","traceAgentOperation","undefined","recordAgentLifecycleMetric","setTimeout","finishSpan","tags","count","recordMetric","traceSwarmActivity","swarmId","activity","topology","agentCount","traceSwarmOperation","toString","recordSwarmActivityMetric","recordSwarmActivity","optimizeWebSocketPerformance","operation","socketId","duration","success","traceWebSocketOperation","recordWebSocketEvent","optimizeWebSocketConnections","monitorDatabasePerformance","query","recordSlowQuery","recordDatabaseQuery","table","recordBusinessMetric","metricName","value","type","gauge","histogram","setInterval","collectCustomMetrics","metrics","getCurrentMetrics","memory","heapUsed","heapTotal","cpu","usage","eventLoop","lag","health","getHealthStatus","overall","performHealthCheck","warn","sendHealthAlert","status","components","activeTraces","activeSpans","queuedMetrics","recommendations","errorRate","ddHealth","healthCheck","details","nrHealth","dtHealth","poHealth","componentStatuses","Object","values","includes","toUpperCase","timestamp","Date","toISOString","webhookUrl","url","slackChannel","channel","emailRecipients","length","recipients","getPerformanceAnalytics","analytics","trends","getRecommendations","getTraceStatistics","runIntegrationTest","startTime","now","results","testDataDogIntegration","testNewRelicIntegration","testDistributedTracing","testPerformanceOptimizer","every","r","runDisasterRecoveryTest","scenarios","dataDogOutage","testDataDogOutage","newRelicOutage","testNewRelicOutage","highLoad","testHighLoadScenario","memoryStress","testMemoryStressScenario","s","originalApiKey","test","metricCount","i","iteration","traceCount","memoryUsagePercent","getCollectors","clearInterval","shutdownPromises","push","cleanup","Promise","all","createAPMIntegration"],"mappings":"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"}
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DataDog APM Integration for Claude Flow Novice
|
|
3
|
+
* Provides comprehensive monitoring, tracing, and metrics collection
|
|
4
|
+
*/ import { Logger } from '../../utils/logger.js';
|
|
5
|
+
export class DataDogCollector {
|
|
6
|
+
config;
|
|
7
|
+
logger;
|
|
8
|
+
activeSpans = new Map();
|
|
9
|
+
metricsQueue = [];
|
|
10
|
+
logsQueue = [];
|
|
11
|
+
flushInterval;
|
|
12
|
+
constructor(config){
|
|
13
|
+
this.config = {
|
|
14
|
+
serviceName: 'claude-flow-novice',
|
|
15
|
+
env: process.env.NODE_ENV || 'production',
|
|
16
|
+
site: 'datadoghq.com',
|
|
17
|
+
version: process.env.npm_package_version || '1.6.2',
|
|
18
|
+
tracing: {
|
|
19
|
+
enabled: true,
|
|
20
|
+
sampleRate: 1.0,
|
|
21
|
+
excludedUrls: [
|
|
22
|
+
'/health',
|
|
23
|
+
'/metrics'
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
metrics: {
|
|
27
|
+
enabled: true,
|
|
28
|
+
port: 8125,
|
|
29
|
+
prefix: 'claude.flow'
|
|
30
|
+
},
|
|
31
|
+
logs: {
|
|
32
|
+
enabled: true
|
|
33
|
+
},
|
|
34
|
+
profiling: {
|
|
35
|
+
enabled: false,
|
|
36
|
+
sourceCode: false
|
|
37
|
+
},
|
|
38
|
+
...config
|
|
39
|
+
};
|
|
40
|
+
this.logger = new Logger('DataDogCollector');
|
|
41
|
+
this.startFlushing();
|
|
42
|
+
}
|
|
43
|
+
// Distributed Tracing
|
|
44
|
+
startSpan(operationName, parentSpanId, tags) {
|
|
45
|
+
if (!this.config.tracing?.enabled) return '';
|
|
46
|
+
const spanId = this.generateSpanId();
|
|
47
|
+
const span = {
|
|
48
|
+
traceId: parentSpanId ? this.getTraceId(parentSpanId) : this.generateTraceId(),
|
|
49
|
+
spanId,
|
|
50
|
+
parentSpanId,
|
|
51
|
+
operationName,
|
|
52
|
+
resource: operationName,
|
|
53
|
+
service: this.config.serviceName,
|
|
54
|
+
startTime: Date.now(),
|
|
55
|
+
duration: 0,
|
|
56
|
+
tags: {
|
|
57
|
+
env: this.config.env,
|
|
58
|
+
version: this.config.version,
|
|
59
|
+
...tags
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
this.activeSpans.set(spanId, span);
|
|
63
|
+
return spanId;
|
|
64
|
+
}
|
|
65
|
+
finishSpan(spanId, tags, error) {
|
|
66
|
+
if (!spanId || !this.activeSpans.has(spanId)) return;
|
|
67
|
+
const span = this.activeSpans.get(spanId);
|
|
68
|
+
span.duration = Date.now() - span.startTime;
|
|
69
|
+
if (tags) {
|
|
70
|
+
span.tags = {
|
|
71
|
+
...span.tags,
|
|
72
|
+
...tags
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
if (error) {
|
|
76
|
+
span.error = 1;
|
|
77
|
+
span.tags['error.type'] = error.constructor.name;
|
|
78
|
+
span.tags['error.message'] = error.message;
|
|
79
|
+
span.tags['error.stack'] = error.stack || '';
|
|
80
|
+
}
|
|
81
|
+
this.sendSpan(span);
|
|
82
|
+
this.activeSpans.delete(spanId);
|
|
83
|
+
}
|
|
84
|
+
// Metrics Collection
|
|
85
|
+
count(metric, value = 1, tags) {
|
|
86
|
+
if (!this.config.metrics?.enabled) return;
|
|
87
|
+
const fullMetricName = this.config.metrics.prefix ? `${this.config.metrics.prefix}.${metric}` : metric;
|
|
88
|
+
const metricData = {
|
|
89
|
+
metric: fullMetricName,
|
|
90
|
+
points: [
|
|
91
|
+
[
|
|
92
|
+
Date.now() / 1000,
|
|
93
|
+
value
|
|
94
|
+
]
|
|
95
|
+
],
|
|
96
|
+
type: 'count'
|
|
97
|
+
};
|
|
98
|
+
if (tags) {
|
|
99
|
+
metricData.tags = this.formatTags(tags);
|
|
100
|
+
}
|
|
101
|
+
this.metricsQueue.push(metricData);
|
|
102
|
+
}
|
|
103
|
+
gauge(metric, value, tags) {
|
|
104
|
+
if (!this.config.metrics?.enabled) return;
|
|
105
|
+
const fullMetricName = this.config.metrics.prefix ? `${this.config.metrics.prefix}.${metric}` : metric;
|
|
106
|
+
const metricData = {
|
|
107
|
+
metric: fullMetricName,
|
|
108
|
+
points: [
|
|
109
|
+
[
|
|
110
|
+
Date.now() / 1000,
|
|
111
|
+
value
|
|
112
|
+
]
|
|
113
|
+
],
|
|
114
|
+
type: 'gauge'
|
|
115
|
+
};
|
|
116
|
+
if (tags) {
|
|
117
|
+
metricData.tags = this.formatTags(tags);
|
|
118
|
+
}
|
|
119
|
+
this.metricsQueue.push(metricData);
|
|
120
|
+
}
|
|
121
|
+
histogram(metric, value, tags) {
|
|
122
|
+
if (!this.config.metrics?.enabled) return;
|
|
123
|
+
const fullMetricName = this.config.metrics.prefix ? `${this.config.metrics.prefix}.${metric}` : metric;
|
|
124
|
+
const metricData = {
|
|
125
|
+
metric: fullMetricName,
|
|
126
|
+
points: [
|
|
127
|
+
[
|
|
128
|
+
Date.now() / 1000,
|
|
129
|
+
value
|
|
130
|
+
]
|
|
131
|
+
],
|
|
132
|
+
type: 'histogram'
|
|
133
|
+
};
|
|
134
|
+
if (tags) {
|
|
135
|
+
metricData.tags = this.formatTags(tags);
|
|
136
|
+
}
|
|
137
|
+
this.metricsQueue.push(metricData);
|
|
138
|
+
}
|
|
139
|
+
// Business Metrics for Agent Operations
|
|
140
|
+
recordAgentOperation(agentType, operation, duration, success) {
|
|
141
|
+
this.count('agent.operations.total', 1, {
|
|
142
|
+
'agent.type': agentType,
|
|
143
|
+
'operation.name': operation,
|
|
144
|
+
'operation.status': success ? 'success' : 'failure'
|
|
145
|
+
});
|
|
146
|
+
this.histogram('agent.operation.duration', duration, {
|
|
147
|
+
'agent.type': agentType,
|
|
148
|
+
'operation.name': operation
|
|
149
|
+
});
|
|
150
|
+
if (!success) {
|
|
151
|
+
this.count('agent.operations.errors', 1, {
|
|
152
|
+
'agent.type': agentType,
|
|
153
|
+
'operation.name': operation
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
recordSwarmActivity(swarmSize, topology, duration, success) {
|
|
158
|
+
this.gauge('swarm.active.size', swarmSize, {
|
|
159
|
+
'swarm.topology': topology
|
|
160
|
+
});
|
|
161
|
+
this.count('swarm.executions.total', 1, {
|
|
162
|
+
'swarm.topology': topology,
|
|
163
|
+
'execution.status': success ? 'success' : 'failure'
|
|
164
|
+
});
|
|
165
|
+
this.histogram('swarm.execution.duration', duration, {
|
|
166
|
+
'swarm.topology': topology
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
recordWebSocketEvent(eventType, duration, success) {
|
|
170
|
+
this.count('websocket.events.total', 1, {
|
|
171
|
+
'event.type': eventType,
|
|
172
|
+
'event.status': success ? 'success' : 'failure'
|
|
173
|
+
});
|
|
174
|
+
this.histogram('websocket.event.duration', duration, {
|
|
175
|
+
'event.type': eventType
|
|
176
|
+
});
|
|
177
|
+
// Track active connections
|
|
178
|
+
if (eventType === 'connection') {
|
|
179
|
+
this.gauge('websocket.connections.active', 1);
|
|
180
|
+
} else if (eventType === 'disconnection') {
|
|
181
|
+
this.gauge('websocket.connections.active', -1);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
recordAPICall(method, route, statusCode, duration) {
|
|
185
|
+
this.count('api.requests.total', 1, {
|
|
186
|
+
'http.method': method,
|
|
187
|
+
'http.route': route,
|
|
188
|
+
'http.status_code': statusCode.toString()
|
|
189
|
+
});
|
|
190
|
+
this.histogram('api.request.duration', duration, {
|
|
191
|
+
'http.method': method,
|
|
192
|
+
'http.route': route
|
|
193
|
+
});
|
|
194
|
+
if (statusCode >= 400) {
|
|
195
|
+
this.count('api.errors.total', 1, {
|
|
196
|
+
'http.method': method,
|
|
197
|
+
'http.route': route,
|
|
198
|
+
'http.status_code': statusCode.toString()
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// Logging Integration
|
|
203
|
+
log(message, level, metadata) {
|
|
204
|
+
if (!this.config.logs?.enabled) return;
|
|
205
|
+
const logEntry = {
|
|
206
|
+
message,
|
|
207
|
+
service: this.config.serviceName,
|
|
208
|
+
env: this.config.env,
|
|
209
|
+
timestamp: Date.now(),
|
|
210
|
+
level,
|
|
211
|
+
metadata
|
|
212
|
+
};
|
|
213
|
+
this.logsQueue.push(logEntry);
|
|
214
|
+
}
|
|
215
|
+
// Performance Monitoring
|
|
216
|
+
startPerformanceProfiling() {
|
|
217
|
+
if (!this.config.profiling?.enabled) return;
|
|
218
|
+
// Enable Node.js profiling
|
|
219
|
+
if (process.env.NODE_ENV === 'production') {
|
|
220
|
+
// In production, you would enable profiling here
|
|
221
|
+
this.logger.info('Performance profiling enabled');
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
recordPerformanceMetric(operation, duration, metadata) {
|
|
225
|
+
this.histogram('performance.operation.duration', duration, {
|
|
226
|
+
'operation.name': operation,
|
|
227
|
+
...metadata
|
|
228
|
+
});
|
|
229
|
+
if (duration > 5000) {
|
|
230
|
+
this.log(`Slow operation detected: ${operation}`, 'warn', {
|
|
231
|
+
duration,
|
|
232
|
+
operation,
|
|
233
|
+
...metadata
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// Health Check
|
|
238
|
+
async healthCheck() {
|
|
239
|
+
try {
|
|
240
|
+
const health = {
|
|
241
|
+
status: 'healthy',
|
|
242
|
+
details: {
|
|
243
|
+
config: {
|
|
244
|
+
tracing: this.config.tracing?.enabled || false,
|
|
245
|
+
metrics: this.config.metrics?.enabled || false,
|
|
246
|
+
logs: this.config.logs?.enabled || false,
|
|
247
|
+
profiling: this.config.profiling?.enabled || false
|
|
248
|
+
},
|
|
249
|
+
activeSpans: this.activeSpans.size,
|
|
250
|
+
queuedMetrics: this.metricsQueue.length,
|
|
251
|
+
queuedLogs: this.logsQueue.length,
|
|
252
|
+
lastFlush: Date.now()
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
// Check if queues are growing too large
|
|
256
|
+
if (this.metricsQueue.length > 1000 || this.logsQueue.length > 1000) {
|
|
257
|
+
health.status = 'degraded';
|
|
258
|
+
health.details.queues = 'high';
|
|
259
|
+
}
|
|
260
|
+
return health;
|
|
261
|
+
} catch (error) {
|
|
262
|
+
return {
|
|
263
|
+
status: 'unhealthy',
|
|
264
|
+
details: {
|
|
265
|
+
error: error.message
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
// Private Methods
|
|
271
|
+
generateSpanId() {
|
|
272
|
+
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
|
273
|
+
}
|
|
274
|
+
generateTraceId() {
|
|
275
|
+
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
|
276
|
+
}
|
|
277
|
+
getTraceId(spanId) {
|
|
278
|
+
const span = this.activeSpans.get(spanId);
|
|
279
|
+
return span?.traceId || this.generateTraceId();
|
|
280
|
+
}
|
|
281
|
+
formatTags(tags) {
|
|
282
|
+
return Object.entries(tags).map(([key, value])=>`${key}:${value}`);
|
|
283
|
+
}
|
|
284
|
+
sendSpan(span) {
|
|
285
|
+
if (!this.config.apiKey) return;
|
|
286
|
+
// In a real implementation, you would send this to DataDog's trace API
|
|
287
|
+
this.logger.debug('Sending span to DataDog', {
|
|
288
|
+
traceId: span.traceId,
|
|
289
|
+
spanId: span.spanId,
|
|
290
|
+
operation: span.operationName,
|
|
291
|
+
duration: span.duration
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
async flushMetrics() {
|
|
295
|
+
if (!this.config.apiKey || this.metricsQueue.length === 0) return;
|
|
296
|
+
const metricsToSend = [
|
|
297
|
+
...this.metricsQueue
|
|
298
|
+
];
|
|
299
|
+
this.metricsQueue = [];
|
|
300
|
+
try {
|
|
301
|
+
// In a real implementation, send to DataDog's metrics API
|
|
302
|
+
this.logger.debug(`Flushing ${metricsToSend.length} metrics to DataDog`);
|
|
303
|
+
} catch (error) {
|
|
304
|
+
this.logger.error('Failed to flush metrics to DataDog', {
|
|
305
|
+
error: error.message
|
|
306
|
+
});
|
|
307
|
+
// Re-queue failed metrics
|
|
308
|
+
this.metricsQueue.unshift(...metricsToSend);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
async flushLogs() {
|
|
312
|
+
if (!this.config.logs?.apiKey || this.logsQueue.length === 0) return;
|
|
313
|
+
const logsToSend = [
|
|
314
|
+
...this.logsQueue
|
|
315
|
+
];
|
|
316
|
+
this.logsQueue = [];
|
|
317
|
+
try {
|
|
318
|
+
// In a real implementation, send to DataDog's logs API
|
|
319
|
+
this.logger.debug(`Flushing ${logsToSend.length} logs to DataDog`);
|
|
320
|
+
} catch (error) {
|
|
321
|
+
this.logger.error('Failed to flush logs to DataDog', {
|
|
322
|
+
error: error.message
|
|
323
|
+
});
|
|
324
|
+
// Re-queue failed logs
|
|
325
|
+
this.logsQueue.unshift(...logsToSend);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
startFlushing() {
|
|
329
|
+
this.flushInterval = setInterval(async ()=>{
|
|
330
|
+
await Promise.all([
|
|
331
|
+
this.flushMetrics(),
|
|
332
|
+
this.flushLogs()
|
|
333
|
+
]);
|
|
334
|
+
}, 10000); // Flush every 10 seconds
|
|
335
|
+
}
|
|
336
|
+
// Shutdown
|
|
337
|
+
async shutdown() {
|
|
338
|
+
this.logger.info('Shutting down DataDog collector');
|
|
339
|
+
if (this.flushInterval) {
|
|
340
|
+
clearInterval(this.flushInterval);
|
|
341
|
+
}
|
|
342
|
+
// Flush any remaining data
|
|
343
|
+
await Promise.all([
|
|
344
|
+
this.flushMetrics(),
|
|
345
|
+
this.flushLogs()
|
|
346
|
+
]);
|
|
347
|
+
// Clean up any remaining spans
|
|
348
|
+
for (const spanId of this.activeSpans.keys()){
|
|
349
|
+
this.finishSpan(spanId, {
|
|
350
|
+
'shutdown': 'true'
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
this.logger.info('DataDog collector shutdown complete');
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
export function createDataDogCollector(config = {}) {
|
|
357
|
+
return new DataDogCollector({
|
|
358
|
+
enabled: true,
|
|
359
|
+
...config
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
//# sourceMappingURL=datadog-collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/monitoring/apm/datadog-collector.ts"],"names":["Logger","DataDogCollector","config","logger","activeSpans","Map","metricsQueue","logsQueue","flushInterval","serviceName","env","process","NODE_ENV","site","version","npm_package_version","tracing","enabled","sampleRate","excludedUrls","metrics","port","prefix","logs","profiling","sourceCode","startFlushing","startSpan","operationName","parentSpanId","tags","spanId","generateSpanId","span","traceId","getTraceId","generateTraceId","resource","service","startTime","Date","now","duration","set","finishSpan","error","has","get","name","message","stack","sendSpan","delete","count","metric","value","fullMetricName","metricData","points","type","formatTags","push","gauge","histogram","recordAgentOperation","agentType","operation","success","recordSwarmActivity","swarmSize","topology","recordWebSocketEvent","eventType","recordAPICall","method","route","statusCode","toString","log","level","metadata","logEntry","timestamp","startPerformanceProfiling","info","recordPerformanceMetric","healthCheck","health","status","details","size","queuedMetrics","length","queuedLogs","lastFlush","queues","Math","random","substring","Object","entries","map","key","apiKey","debug","flushMetrics","metricsToSend","unshift","flushLogs","logsToSend","setInterval","Promise","all","shutdown","clearInterval","keys","createDataDogCollector"],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APM Integration Main Entry Point
|
|
3
|
+
* Exports all APM components for easy integration
|
|
4
|
+
*/ export { DataDogCollector, createDataDogCollector } from './datadog-collector.js';
|
|
5
|
+
export { NewRelicCollector, createNewRelicCollector } from './newrelic-collector.js';
|
|
6
|
+
export { DistributedTracer, createDistributedTracer } from './distributed-tracing.js';
|
|
7
|
+
export { PerformanceOptimizer, createPerformanceOptimizer } from './performance-optimizer.js';
|
|
8
|
+
export { APMIntegration, createAPMIntegration } from './apm-integration.js';
|
|
9
|
+
// Default configuration factory
|
|
10
|
+
export function createDefaultAPMConfig(overrides = {}) {
|
|
11
|
+
return {
|
|
12
|
+
dataDog: {
|
|
13
|
+
enabled: process.env.DATADOG_ENABLED === 'true',
|
|
14
|
+
apiKey: process.env.DATADOG_API_KEY,
|
|
15
|
+
site: process.env.DATADOG_SITE || 'datadoghq.com',
|
|
16
|
+
serviceName: process.env.DATADOG_SERVICE_NAME || 'claude-flow-novice',
|
|
17
|
+
env: process.env.NODE_ENV || 'production',
|
|
18
|
+
version: process.env.npm_package_version || '1.6.2',
|
|
19
|
+
tracing: {
|
|
20
|
+
enabled: true,
|
|
21
|
+
sampleRate: parseFloat(process.env.DATADOG_TRACE_SAMPLE_RATE || '1.0'),
|
|
22
|
+
excludedUrls: [
|
|
23
|
+
'/health',
|
|
24
|
+
'/metrics'
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
metrics: {
|
|
28
|
+
enabled: true,
|
|
29
|
+
port: parseInt(process.env.DATADOG_METRICS_PORT || '8125'),
|
|
30
|
+
prefix: 'claude.flow'
|
|
31
|
+
},
|
|
32
|
+
logs: {
|
|
33
|
+
enabled: true,
|
|
34
|
+
apiKey: process.env.DATADOG_LOG_API_KEY || process.env.DATADOG_API_KEY,
|
|
35
|
+
site: process.env.DATADOG_SITE || 'datadoghq.com'
|
|
36
|
+
},
|
|
37
|
+
profiling: {
|
|
38
|
+
enabled: process.env.DATADOG_PROFILING_ENABLED === 'true',
|
|
39
|
+
sourceCode: false
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
newRelic: {
|
|
43
|
+
enabled: process.env.NEWRELIC_ENABLED === 'true',
|
|
44
|
+
licenseKey: process.env.NEWRELIC_LICENSE_KEY,
|
|
45
|
+
appName: process.env.NEWRELIC_APP_NAME || 'Claude Flow Novice',
|
|
46
|
+
accountId: process.env.NEWRELIC_ACCOUNT_ID,
|
|
47
|
+
trustKey: process.env.NEWRELIC_TRUST_KEY,
|
|
48
|
+
env: process.env.NODE_ENV || 'production',
|
|
49
|
+
version: process.env.npm_package_version || '1.6.2',
|
|
50
|
+
tracing: {
|
|
51
|
+
enabled: true,
|
|
52
|
+
distributedTracing: true,
|
|
53
|
+
transactionEvents: true,
|
|
54
|
+
spanEvents: true
|
|
55
|
+
},
|
|
56
|
+
metrics: {
|
|
57
|
+
enabled: true,
|
|
58
|
+
apiHost: process.env.NEWRELIC_METRICS_API_HOST || 'https://metric-api.newrelic.com',
|
|
59
|
+
metricApiPath: '/metric/v1'
|
|
60
|
+
},
|
|
61
|
+
logs: {
|
|
62
|
+
enabled: true,
|
|
63
|
+
apiHost: process.env.NEWRELIC_LOG_API_HOST || 'https://log-api.newrelic.com',
|
|
64
|
+
logApiPath: '/log/v1'
|
|
65
|
+
},
|
|
66
|
+
browserMonitoring: {
|
|
67
|
+
enabled: process.env.NEWRELIC_BROWSER_MONITORING_ENABLED === 'true'
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
distributedTracing: {
|
|
71
|
+
enabled: process.env.DISTRIBUTED_TRACING_ENABLED !== 'false',
|
|
72
|
+
samplingRate: parseFloat(process.env.TRACE_SAMPLING_RATE || '1.0')
|
|
73
|
+
},
|
|
74
|
+
performanceOptimization: {
|
|
75
|
+
enabled: process.env.PERFORMANCE_OPTIMIZATION_ENABLED !== 'false',
|
|
76
|
+
monitoringInterval: parseInt(process.env.PERFORMANCE_MONITORING_INTERVAL || '5000')
|
|
77
|
+
},
|
|
78
|
+
customMetrics: {
|
|
79
|
+
enabled: process.env.CUSTOM_METRICS_ENABLED !== 'false',
|
|
80
|
+
interval: parseInt(process.env.CUSTOM_METRICS_INTERVAL || '10000')
|
|
81
|
+
},
|
|
82
|
+
alerting: {
|
|
83
|
+
enabled: process.env.APM_ALERTING_ENABLED === 'true',
|
|
84
|
+
webhookUrl: process.env.APM_WEBHOOK_URL,
|
|
85
|
+
slackChannel: process.env.APM_SLACK_CHANNEL,
|
|
86
|
+
emailRecipients: process.env.APM_EMAIL_RECIPIENTS?.split(',').filter(Boolean)
|
|
87
|
+
},
|
|
88
|
+
...overrides
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// Convenience function for quick setup
|
|
92
|
+
export function setupAPM(configOverrides) {
|
|
93
|
+
const config = createDefaultAPMConfig(configOverrides);
|
|
94
|
+
return createAPMIntegration(config);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/monitoring/apm/index.ts"],"names":["DataDogCollector","createDataDogCollector","NewRelicCollector","createNewRelicCollector","DistributedTracer","createDistributedTracer","PerformanceOptimizer","createPerformanceOptimizer","APMIntegration","createAPMIntegration","createDefaultAPMConfig","overrides","dataDog","enabled","process","env","DATADOG_ENABLED","apiKey","DATADOG_API_KEY","site","DATADOG_SITE","serviceName","DATADOG_SERVICE_NAME","NODE_ENV","version","npm_package_version","tracing","sampleRate","parseFloat","DATADOG_TRACE_SAMPLE_RATE","excludedUrls","metrics","port","parseInt","DATADOG_METRICS_PORT","prefix","logs","DATADOG_LOG_API_KEY","profiling","DATADOG_PROFILING_ENABLED","sourceCode","newRelic","NEWRELIC_ENABLED","licenseKey","NEWRELIC_LICENSE_KEY","appName","NEWRELIC_APP_NAME","accountId","NEWRELIC_ACCOUNT_ID","trustKey","NEWRELIC_TRUST_KEY","distributedTracing","transactionEvents","spanEvents","apiHost","NEWRELIC_METRICS_API_HOST","metricApiPath","NEWRELIC_LOG_API_HOST","logApiPath","browserMonitoring","NEWRELIC_BROWSER_MONITORING_ENABLED","DISTRIBUTED_TRACING_ENABLED","samplingRate","TRACE_SAMPLING_RATE","performanceOptimization","PERFORMANCE_OPTIMIZATION_ENABLED","monitoringInterval","PERFORMANCE_MONITORING_INTERVAL","customMetrics","CUSTOM_METRICS_ENABLED","interval","CUSTOM_METRICS_INTERVAL","alerting","APM_ALERTING_ENABLED","webhookUrl","APM_WEBHOOK_URL","slackChannel","APM_SLACK_CHANNEL","emailRecipients","APM_EMAIL_RECIPIENTS","split","filter","Boolean","setupAPM","configOverrides","config"],"mappings":"AAAA;;;CAGC,GAED,SAASA,gBAAgB,EAAEC,sBAAsB,QAAQ,yBAAyB;AAClF,SAASC,iBAAiB,EAAEC,uBAAuB,QAAQ,0BAA0B;AACrF,SAASC,iBAAiB,EAAEC,uBAAuB,QAAQ,2BAA2B;AACtF,SAASC,oBAAoB,EAAEC,0BAA0B,QAAQ,6BAA6B;AAC9F,SAASC,cAAc,EAAEC,oBAAoB,QAAQ,uBAAuB;AAqC5E,gCAAgC;AAChC,OAAO,SAASC,uBAAuBC,YAAiB,CAAC,CAAC;IACxD,OAAO;QACLC,SAAS;YACPC,SAASC,QAAQC,GAAG,CAACC,eAAe,KAAK;YACzCC,QAAQH,QAAQC,GAAG,CAACG,eAAe;YACnCC,MAAML,QAAQC,GAAG,CAACK,YAAY,IAAI;YAClCC,aAAaP,QAAQC,GAAG,CAACO,oBAAoB,IAAI;YACjDP,KAAKD,QAAQC,GAAG,CAACQ,QAAQ,IAAI;YAC7BC,SAASV,QAAQC,GAAG,CAACU,mBAAmB,IAAI;YAC5CC,SAAS;gBACPb,SAAS;gBACTc,YAAYC,WAAWd,QAAQC,GAAG,CAACc,yBAAyB,IAAI;gBAChEC,cAAc;oBAAC;oBAAW;iBAAW;YACvC;YACAC,SAAS;gBACPlB,SAAS;gBACTmB,MAAMC,SAASnB,QAAQC,GAAG,CAACmB,oBAAoB,IAAI;gBACnDC,QAAQ;YACV;YACAC,MAAM;gBACJvB,SAAS;gBACTI,QAAQH,QAAQC,GAAG,CAACsB,mBAAmB,IAAIvB,QAAQC,GAAG,CAACG,eAAe;gBACtEC,MAAML,QAAQC,GAAG,CAACK,YAAY,IAAI;YACpC;YACAkB,WAAW;gBACTzB,SAASC,QAAQC,GAAG,CAACwB,yBAAyB,KAAK;gBACnDC,YAAY;YACd;QACF;QACAC,UAAU;YACR5B,SAASC,QAAQC,GAAG,CAAC2B,gBAAgB,KAAK;YAC1CC,YAAY7B,QAAQC,GAAG,CAAC6B,oBAAoB;YAC5CC,SAAS/B,QAAQC,GAAG,CAAC+B,iBAAiB,IAAI;YAC1CC,WAAWjC,QAAQC,GAAG,CAACiC,mBAAmB;YAC1CC,UAAUnC,QAAQC,GAAG,CAACmC,kBAAkB;YACxCnC,KAAKD,QAAQC,GAAG,CAACQ,QAAQ,IAAI;YAC7BC,SAASV,QAAQC,GAAG,CAACU,mBAAmB,IAAI;YAC5CC,SAAS;gBACPb,SAAS;gBACTsC,oBAAoB;gBACpBC,mBAAmB;gBACnBC,YAAY;YACd;YACAtB,SAAS;gBACPlB,SAAS;gBACTyC,SAASxC,QAAQC,GAAG,CAACwC,yBAAyB,IAAI;gBAClDC,eAAe;YACjB;YACApB,MAAM;gBACJvB,SAAS;gBACTyC,SAASxC,QAAQC,GAAG,CAAC0C,qBAAqB,IAAI;gBAC9CC,YAAY;YACd;YACAC,mBAAmB;gBACjB9C,SAASC,QAAQC,GAAG,CAAC6C,mCAAmC,KAAK;YAC/D;QACF;QACAT,oBAAoB;YAClBtC,SAASC,QAAQC,GAAG,CAAC8C,2BAA2B,KAAK;YACrDC,cAAclC,WAAWd,QAAQC,GAAG,CAACgD,mBAAmB,IAAI;QAC9D;QACAC,yBAAyB;YACvBnD,SAASC,QAAQC,GAAG,CAACkD,gCAAgC,KAAK;YAC1DC,oBAAoBjC,SAASnB,QAAQC,GAAG,CAACoD,+BAA+B,IAAI;QAC9E;QACAC,eAAe;YACbvD,SAASC,QAAQC,GAAG,CAACsD,sBAAsB,KAAK;YAChDC,UAAUrC,SAASnB,QAAQC,GAAG,CAACwD,uBAAuB,IAAI;QAC5D;QACAC,UAAU;YACR3D,SAASC,QAAQC,GAAG,CAAC0D,oBAAoB,KAAK;YAC9CC,YAAY5D,QAAQC,GAAG,CAAC4D,eAAe;YACvCC,cAAc9D,QAAQC,GAAG,CAAC8D,iBAAiB;YAC3CC,iBAAiBhE,QAAQC,GAAG,CAACgE,oBAAoB,EAAEC,MAAM,KAAKC,OAAOC;QACvE;QACA,GAAGvE,SAAS;IACd;AACF;AAEA,uCAAuC;AACvC,OAAO,SAASwE,SAASC,eAAqB;IAC5C,MAAMC,SAAS3E,uBAAuB0E;IACtC,OAAO3E,qBAAqB4E;AAC9B"}
|