flow-debugger 1.9.8 → 1.9.9

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.
Files changed (71) hide show
  1. package/ENHANCED_OBSERVABILITY.md +835 -0
  2. package/IMPLEMENTATION_SUMMARY.md +466 -0
  3. package/README.md +147 -8
  4. package/dist/cjs/core/Alerting.js +310 -0
  5. package/dist/cjs/core/Alerting.js.map +1 -0
  6. package/dist/cjs/core/AnomalyDetection.js +223 -0
  7. package/dist/cjs/core/AnomalyDetection.js.map +1 -0
  8. package/dist/cjs/core/DependencyGraph.js +251 -0
  9. package/dist/cjs/core/DependencyGraph.js.map +1 -0
  10. package/dist/cjs/core/DistributedTracing.js +245 -0
  11. package/dist/cjs/core/DistributedTracing.js.map +1 -0
  12. package/dist/cjs/core/ErrorClustering.js +257 -0
  13. package/dist/cjs/core/ErrorClustering.js.map +1 -0
  14. package/dist/cjs/core/LogCorrelation.js +242 -0
  15. package/dist/cjs/core/LogCorrelation.js.map +1 -0
  16. package/dist/cjs/core/Metrics.js +301 -0
  17. package/dist/cjs/core/Metrics.js.map +1 -0
  18. package/dist/cjs/core/TrendAnalysis.js +254 -0
  19. package/dist/cjs/core/TrendAnalysis.js.map +1 -0
  20. package/dist/cjs/core/types.js +14 -0
  21. package/dist/cjs/core/types.js.map +1 -1
  22. package/dist/cjs/index.js +27 -1
  23. package/dist/cjs/index.js.map +1 -1
  24. package/dist/cjs/middleware/express.js +105 -4
  25. package/dist/cjs/middleware/express.js.map +1 -1
  26. package/dist/esm/core/Alerting.js +305 -0
  27. package/dist/esm/core/Alerting.js.map +1 -0
  28. package/dist/esm/core/AnomalyDetection.js +218 -0
  29. package/dist/esm/core/AnomalyDetection.js.map +1 -0
  30. package/dist/esm/core/DependencyGraph.js +246 -0
  31. package/dist/esm/core/DependencyGraph.js.map +1 -0
  32. package/dist/esm/core/DistributedTracing.js +240 -0
  33. package/dist/esm/core/DistributedTracing.js.map +1 -0
  34. package/dist/esm/core/ErrorClustering.js +252 -0
  35. package/dist/esm/core/ErrorClustering.js.map +1 -0
  36. package/dist/esm/core/LogCorrelation.js +236 -0
  37. package/dist/esm/core/LogCorrelation.js.map +1 -0
  38. package/dist/esm/core/Metrics.js +297 -0
  39. package/dist/esm/core/Metrics.js.map +1 -0
  40. package/dist/esm/core/TrendAnalysis.js +250 -0
  41. package/dist/esm/core/TrendAnalysis.js.map +1 -0
  42. package/dist/esm/core/types.js +14 -0
  43. package/dist/esm/core/types.js.map +1 -1
  44. package/dist/esm/index.js +10 -0
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/middleware/express.js +105 -4
  47. package/dist/esm/middleware/express.js.map +1 -1
  48. package/dist/types/core/Alerting.d.ts +82 -0
  49. package/dist/types/core/Alerting.d.ts.map +1 -0
  50. package/dist/types/core/AnomalyDetection.d.ts +93 -0
  51. package/dist/types/core/AnomalyDetection.d.ts.map +1 -0
  52. package/dist/types/core/DependencyGraph.d.ts +65 -0
  53. package/dist/types/core/DependencyGraph.d.ts.map +1 -0
  54. package/dist/types/core/DistributedTracing.d.ts +92 -0
  55. package/dist/types/core/DistributedTracing.d.ts.map +1 -0
  56. package/dist/types/core/ErrorClustering.d.ts +70 -0
  57. package/dist/types/core/ErrorClustering.d.ts.map +1 -0
  58. package/dist/types/core/LogCorrelation.d.ts +73 -0
  59. package/dist/types/core/LogCorrelation.d.ts.map +1 -0
  60. package/dist/types/core/Metrics.d.ts +73 -0
  61. package/dist/types/core/Metrics.d.ts.map +1 -0
  62. package/dist/types/core/TrendAnalysis.d.ts +63 -0
  63. package/dist/types/core/TrendAnalysis.d.ts.map +1 -0
  64. package/dist/types/core/types.d.ts +200 -0
  65. package/dist/types/core/types.d.ts.map +1 -1
  66. package/dist/types/index.d.ts +9 -1
  67. package/dist/types/index.d.ts.map +1 -1
  68. package/dist/types/middleware/express.d.ts +12 -0
  69. package/dist/types/middleware/express.d.ts.map +1 -1
  70. package/package.json +1 -1
  71. package/test-results.json +1 -0
@@ -0,0 +1,301 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────
3
+ // flow-debugger — Metrics & Gauges System
4
+ // Custom metrics for business and performance tracking
5
+ // ─────────────────────────────────────────────────────────────
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.globalMetrics = exports.MetricsRegistry = void 0;
8
+ /**
9
+ * Metrics Registry - Central storage for all metrics
10
+ */
11
+ class MetricsRegistry {
12
+ constructor() {
13
+ this.metrics = new Map();
14
+ this.timeSeries = new Map();
15
+ this.maxTimeSeriesPoints = 1000;
16
+ }
17
+ /**
18
+ * Create or get a counter metric
19
+ */
20
+ counter(name, description, labels) {
21
+ const key = this.makeKey(name, labels);
22
+ const existing = this.metrics.get(key);
23
+ if (existing)
24
+ return existing;
25
+ const metric = {
26
+ name,
27
+ type: 'counter',
28
+ description,
29
+ labels,
30
+ value: 0,
31
+ createdAt: Date.now(),
32
+ updatedAt: Date.now(),
33
+ };
34
+ this.metrics.set(key, metric);
35
+ return metric;
36
+ }
37
+ /**
38
+ * Create or get a gauge metric
39
+ */
40
+ gauge(name, description, labels) {
41
+ const key = this.makeKey(name, labels);
42
+ const existing = this.metrics.get(key);
43
+ if (existing)
44
+ return existing;
45
+ const metric = {
46
+ name,
47
+ type: 'gauge',
48
+ description,
49
+ labels,
50
+ value: 0,
51
+ createdAt: Date.now(),
52
+ updatedAt: Date.now(),
53
+ };
54
+ this.metrics.set(key, metric);
55
+ return metric;
56
+ }
57
+ /**
58
+ * Create or get a histogram metric
59
+ */
60
+ histogram(name, buckets = [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10], description, labels) {
61
+ const key = this.makeKey(name, labels);
62
+ const existing = this.metrics.get(key);
63
+ if (existing)
64
+ return existing;
65
+ const metric = {
66
+ name,
67
+ type: 'histogram',
68
+ description,
69
+ labels,
70
+ buckets: buckets.map(b => ({ upperBound: b, count: 0 })),
71
+ sum: 0,
72
+ count: 0,
73
+ createdAt: Date.now(),
74
+ updatedAt: Date.now(),
75
+ };
76
+ this.metrics.set(key, metric);
77
+ return metric;
78
+ }
79
+ /**
80
+ * Create or get a summary metric
81
+ */
82
+ summary(name, quantiles = [0.5, 0.9, 0.95, 0.99], description, labels) {
83
+ const key = this.makeKey(name, labels);
84
+ const existing = this.metrics.get(key);
85
+ if (existing)
86
+ return existing;
87
+ const metric = {
88
+ name,
89
+ type: 'summary',
90
+ description,
91
+ labels,
92
+ quantiles: quantiles.map(q => ({ quantile: q, value: 0 })),
93
+ sum: 0,
94
+ count: 0,
95
+ createdAt: Date.now(),
96
+ updatedAt: Date.now(),
97
+ };
98
+ this.metrics.set(key, metric);
99
+ return metric;
100
+ }
101
+ /**
102
+ * Increment a counter
103
+ */
104
+ inc(name, value = 1, labels) {
105
+ const key = this.makeKey(name, labels);
106
+ const metric = this.metrics.get(key);
107
+ if (metric && metric.type === 'counter') {
108
+ metric.value += value;
109
+ metric.updatedAt = Date.now();
110
+ this.recordTimeSeries(name, metric.value, labels);
111
+ }
112
+ }
113
+ /**
114
+ * Set a gauge value
115
+ */
116
+ set(name, value, labels) {
117
+ const key = this.makeKey(name, labels);
118
+ const metric = this.metrics.get(key);
119
+ if (metric && metric.type === 'gauge') {
120
+ metric.value = value;
121
+ metric.min = metric.min === undefined ? value : Math.min(metric.min, value);
122
+ metric.max = metric.max === undefined ? value : Math.max(metric.max, value);
123
+ metric.updatedAt = Date.now();
124
+ this.recordTimeSeries(name, value, labels);
125
+ }
126
+ }
127
+ /**
128
+ * Observe a value for histogram/summary
129
+ */
130
+ observe(name, value, labels) {
131
+ const key = this.makeKey(name, labels);
132
+ const metric = this.metrics.get(key);
133
+ if (!metric)
134
+ return;
135
+ metric.updatedAt = Date.now();
136
+ if (metric.type === 'histogram') {
137
+ const h = metric;
138
+ h.count++;
139
+ h.sum += value;
140
+ h.buckets.forEach(bucket => {
141
+ if (value <= bucket.upperBound) {
142
+ bucket.count++;
143
+ }
144
+ });
145
+ }
146
+ else if (metric.type === 'summary') {
147
+ const s = metric;
148
+ s.count++;
149
+ s.sum += value;
150
+ // Update quantiles (simplified - uses reservoir sampling)
151
+ this.updateQuantiles(s, value);
152
+ }
153
+ this.recordTimeSeries(name, value, labels);
154
+ }
155
+ /**
156
+ * Get metric by name
157
+ */
158
+ get(name, labels) {
159
+ const key = this.makeKey(name, labels);
160
+ return this.metrics.get(key);
161
+ }
162
+ /**
163
+ * Get all metrics
164
+ */
165
+ getAll() {
166
+ return Array.from(this.metrics.values());
167
+ }
168
+ /**
169
+ * Get metrics by type
170
+ */
171
+ getByType(type) {
172
+ return Array.from(this.metrics.values()).filter(m => m.type === type);
173
+ }
174
+ /**
175
+ * Reset a metric
176
+ */
177
+ reset(name, labels) {
178
+ const key = this.makeKey(name, labels);
179
+ const metric = this.metrics.get(key);
180
+ if (!metric)
181
+ return;
182
+ if (metric.type === 'counter') {
183
+ const c = metric;
184
+ c.value = 0;
185
+ }
186
+ else if (metric.type === 'gauge') {
187
+ const g = metric;
188
+ g.value = 0;
189
+ g.min = undefined;
190
+ g.max = undefined;
191
+ }
192
+ else if (metric.type === 'histogram') {
193
+ const h = metric;
194
+ h.buckets.forEach((b) => (b.count = 0));
195
+ h.sum = 0;
196
+ h.count = 0;
197
+ }
198
+ else if (metric.type === 'summary') {
199
+ const s = metric;
200
+ s.quantiles.forEach((q) => (q.value = 0));
201
+ s.sum = 0;
202
+ s.count = 0;
203
+ }
204
+ metric.updatedAt = Date.now();
205
+ }
206
+ /**
207
+ * Clear all metrics
208
+ */
209
+ clear() {
210
+ this.metrics.clear();
211
+ this.timeSeries.clear();
212
+ }
213
+ /**
214
+ * Get time series data for a metric
215
+ */
216
+ getTimeSeries(name, labels) {
217
+ const key = this.makeKey(name, labels);
218
+ return this.timeSeries.get(key) || [];
219
+ }
220
+ /**
221
+ * Export metrics in Prometheus format
222
+ */
223
+ exportPrometheus() {
224
+ const lines = [];
225
+ this.metrics.forEach(metric => {
226
+ const labelStr = metric.labels
227
+ ? `{${Object.entries(metric.labels).map(([k, v]) => `${k}="${v}"`).join(', ')}}`
228
+ : '';
229
+ if (metric.type === 'counter') {
230
+ const c = metric;
231
+ lines.push(`# HELP ${metric.name} ${metric.description || ''}`);
232
+ lines.push(`# TYPE ${metric.name} counter`);
233
+ lines.push(`${metric.name}${labelStr} ${c.value}`);
234
+ }
235
+ else if (metric.type === 'gauge') {
236
+ const g = metric;
237
+ lines.push(`# HELP ${metric.name} ${metric.description || ''}`);
238
+ lines.push(`# TYPE ${metric.name} gauge`);
239
+ lines.push(`${metric.name}${labelStr} ${g.value}`);
240
+ }
241
+ else if (metric.type === 'histogram') {
242
+ const h = metric;
243
+ lines.push(`# HELP ${metric.name}_bucket ${metric.description || ''}`);
244
+ lines.push(`# TYPE ${metric.name}_bucket histogram`);
245
+ h.buckets.forEach(bucket => {
246
+ lines.push(`${metric.name}_bucket${labelStr}{le="${bucket.upperBound}"} ${bucket.count}`);
247
+ });
248
+ lines.push(`${metric.name}_bucket${labelStr}{le="+Inf"} ${h.count}`);
249
+ lines.push(`# HELP ${metric.name}_sum ${metric.description || ''}`);
250
+ lines.push(`# TYPE ${metric.name}_sum summary`);
251
+ lines.push(`${metric.name}_sum${labelStr} ${h.sum}`);
252
+ lines.push(`# HELP ${metric.name}_count ${metric.description || ''}`);
253
+ lines.push(`# TYPE ${metric.name}_count summary`);
254
+ lines.push(`${metric.name}_count${labelStr} ${h.count}`);
255
+ }
256
+ });
257
+ return lines.join('\n');
258
+ }
259
+ makeKey(name, labels) {
260
+ if (!labels)
261
+ return name;
262
+ const labelStr = Object.entries(labels)
263
+ .sort(([a], [b]) => a.localeCompare(b))
264
+ .map(([k, v]) => `${k}=${v}`)
265
+ .join('|');
266
+ return `${name}|${labelStr}`;
267
+ }
268
+ recordTimeSeries(name, value, labels) {
269
+ const key = this.makeKey(name, labels);
270
+ let series = this.timeSeries.get(key);
271
+ if (!series) {
272
+ series = [];
273
+ this.timeSeries.set(key, series);
274
+ }
275
+ series.push({
276
+ timestamp: new Date(),
277
+ value,
278
+ labels,
279
+ });
280
+ // Limit time series points
281
+ if (series.length > this.maxTimeSeriesPoints) {
282
+ series.shift();
283
+ }
284
+ }
285
+ updateQuantiles(metric, value) {
286
+ // Simplified quantile estimation using sorted array
287
+ const values = metric.quantiles.map(q => q.value);
288
+ values.push(value);
289
+ values.sort((a, b) => a - b);
290
+ metric.quantiles.forEach((q, i) => {
291
+ const index = Math.floor(q.quantile * (values.length - 1));
292
+ q.value = values[index] || 0;
293
+ });
294
+ }
295
+ }
296
+ exports.MetricsRegistry = MetricsRegistry;
297
+ /**
298
+ * Global metrics registry instance
299
+ */
300
+ exports.globalMetrics = new MetricsRegistry();
301
+ //# sourceMappingURL=Metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../../src/core/Metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────
3
+ // flow-debugger — Trend Analysis System
4
+ // Analyzes hourly/daily patterns for capacity planning
5
+ // ─────────────────────────────────────────────────────────────
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.TrendAnalyzer = void 0;
8
+ /**
9
+ * Trend Analyzer - Detects patterns and trends in metrics
10
+ */
11
+ class TrendAnalyzer {
12
+ constructor(resolutionMinutes = 60) {
13
+ this.timeSeries = new Map();
14
+ this.resolutionMs = 60 * 60 * 1000; // 1 hour default
15
+ this.maxPoints = 1000;
16
+ this.resolutionMs = resolutionMinutes * 60 * 1000;
17
+ }
18
+ /**
19
+ * Record a data point
20
+ */
21
+ record(metric, value, timestamp = new Date()) {
22
+ let series = this.timeSeries.get(metric);
23
+ if (!series) {
24
+ series = [];
25
+ this.timeSeries.set(metric, series);
26
+ }
27
+ // Round timestamp to resolution
28
+ const roundedTime = new Date(Math.floor(timestamp.getTime() / this.resolutionMs) * this.resolutionMs);
29
+ // Aggregate into time bucket
30
+ const existingPoint = series.find(p => p.timestamp.getTime() === roundedTime.getTime());
31
+ if (existingPoint) {
32
+ // Average with existing value
33
+ existingPoint.value = (existingPoint.value + value) / 2;
34
+ }
35
+ else {
36
+ series.push({
37
+ timestamp: roundedTime,
38
+ value,
39
+ });
40
+ }
41
+ // Sort by timestamp
42
+ series.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
43
+ // Limit points
44
+ if (series.length > this.maxPoints) {
45
+ series = series.slice(-this.maxPoints);
46
+ this.timeSeries.set(metric, series);
47
+ }
48
+ }
49
+ /**
50
+ * Record from trace
51
+ */
52
+ recordTrace(trace) {
53
+ this.record('request_duration', trace.totalDuration, trace.timestamp);
54
+ this.record('request_count', 1, trace.timestamp);
55
+ if (trace.classification === 'ERROR' || trace.classification === 'CRITICAL') {
56
+ this.record('error_count', 1, trace.timestamp);
57
+ }
58
+ trace.steps.forEach(step => {
59
+ this.record(`step_duration_${step.service}`, step.duration, trace.timestamp);
60
+ });
61
+ }
62
+ /**
63
+ * Analyze trend for a metric
64
+ */
65
+ analyzeTrend(metric, windowMs = 24 * 60 * 60 * 1000) {
66
+ const series = this.timeSeries.get(metric);
67
+ if (!series || series.length < 2)
68
+ return null;
69
+ const now = Date.now();
70
+ const startTime = now - windowMs;
71
+ // Filter to window
72
+ const points = series.filter(p => p.timestamp.getTime() >= startTime);
73
+ if (points.length < 2)
74
+ return null;
75
+ // Calculate trend using linear regression
76
+ const regression = this.linearRegression(points);
77
+ const direction = this.getTrendDirection(regression.slope, points);
78
+ const changePercent = this.calculateChangePercent(points);
79
+ const currentValue = points[points.length - 1].value;
80
+ const previousValue = points[0].value;
81
+ return {
82
+ metric,
83
+ direction,
84
+ changePercent,
85
+ currentValue,
86
+ previousValue,
87
+ startTime: points[0].timestamp,
88
+ endTime: points[points.length - 1].timestamp,
89
+ dataPoints: [...points],
90
+ confidence: this.calculateConfidence(regression, points),
91
+ };
92
+ }
93
+ /**
94
+ * Get all trends
95
+ */
96
+ getAllTrends(windowMs = 24 * 60 * 60 * 1000) {
97
+ const results = [];
98
+ this.timeSeries.forEach((_, metric) => {
99
+ const trend = this.analyzeTrend(metric, windowMs);
100
+ if (trend) {
101
+ results.push(trend);
102
+ }
103
+ });
104
+ return results;
105
+ }
106
+ /**
107
+ * Get increasing trends (potential issues)
108
+ */
109
+ getIncreasingTrends(windowMs = 24 * 60 * 60 * 1000) {
110
+ return this.getAllTrends(windowMs).filter(t => t.direction === 'increasing');
111
+ }
112
+ /**
113
+ * Detect capacity issues
114
+ */
115
+ detectCapacityIssues() {
116
+ const issues = [];
117
+ // Common capacity metrics with thresholds
118
+ const thresholds = {
119
+ request_duration: 1000, // 1 second
120
+ error_count: 100,
121
+ memory_usage: 80, // percent
122
+ cpu_usage: 80, // percent
123
+ };
124
+ Object.entries(thresholds).forEach(([metric, threshold]) => {
125
+ const trend = this.analyzeTrend(metric);
126
+ if (trend && trend.direction === 'increasing' && trend.changePercent > 10) {
127
+ // Project when threshold will be reached
128
+ const hoursToThreshold = this.projectTimeToThreshold(trend, threshold);
129
+ if (hoursToThreshold !== null && hoursToThreshold < 48) {
130
+ issues.push({
131
+ metric,
132
+ current: trend.currentValue,
133
+ projected: threshold,
134
+ timeToThreshold: `${Math.round(hoursToThreshold)} hours`,
135
+ });
136
+ }
137
+ }
138
+ });
139
+ return issues;
140
+ }
141
+ /**
142
+ * Get hourly pattern (average by hour of day)
143
+ */
144
+ getHourlyPattern(metric) {
145
+ const series = this.timeSeries.get(metric);
146
+ if (!series)
147
+ return [];
148
+ // Group by hour of day
149
+ const hourlyData = new Array(24).fill(null).map(() => []);
150
+ series.forEach(point => {
151
+ const hour = point.timestamp.getHours();
152
+ hourlyData[hour].push(point.value);
153
+ });
154
+ // Calculate averages
155
+ return hourlyData.map((values, hour) => ({
156
+ hour,
157
+ avgValue: values.length > 0 ? values.reduce((a, b) => a + b, 0) / values.length : 0,
158
+ }));
159
+ }
160
+ /**
161
+ * Get daily pattern (average by day of week)
162
+ */
163
+ getDailyPattern(metric) {
164
+ const series = this.timeSeries.get(metric);
165
+ if (!series)
166
+ return [];
167
+ // Group by day of week (0 = Sunday)
168
+ const dailyData = new Array(7).fill(null).map(() => []);
169
+ series.forEach(point => {
170
+ const day = point.timestamp.getDay();
171
+ dailyData[day].push(point.value);
172
+ });
173
+ // Calculate averages
174
+ return dailyData.map((values, day) => ({
175
+ day,
176
+ avgValue: values.length > 0 ? values.reduce((a, b) => a + b, 0) / values.length : 0,
177
+ }));
178
+ }
179
+ /**
180
+ * Clear time series
181
+ */
182
+ clear(metric) {
183
+ if (metric) {
184
+ this.timeSeries.delete(metric);
185
+ }
186
+ else {
187
+ this.timeSeries.clear();
188
+ }
189
+ }
190
+ linearRegression(points) {
191
+ const n = points.length;
192
+ const xValues = points.map((_, i) => i);
193
+ const yValues = points.map(p => p.value);
194
+ const sumX = xValues.reduce((a, b) => a + b, 0);
195
+ const sumY = yValues.reduce((a, b) => a + b, 0);
196
+ const sumXY = xValues.reduce((sum, x, i) => sum + x * yValues[i], 0);
197
+ const sumX2 = xValues.reduce((sum, x) => sum + x * x, 0);
198
+ const sumY2 = yValues.reduce((sum, y) => sum + y * y, 0);
199
+ const slope = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX);
200
+ const intercept = (sumY - slope * sumX) / n;
201
+ // Calculate R-squared
202
+ const yMean = sumY / n;
203
+ const ssTot = yValues.reduce((sum, y) => sum + Math.pow(y - yMean, 2), 0);
204
+ const ssRes = yValues.reduce((sum, y, i) => {
205
+ const predicted = slope * xValues[i] + intercept;
206
+ return sum + Math.pow(y - predicted, 2);
207
+ }, 0);
208
+ const rSquared = 1 - ssRes / (ssTot || 1);
209
+ return { slope, intercept, rSquared };
210
+ }
211
+ getTrendDirection(slope, points) {
212
+ if (Math.abs(slope) < 0.01)
213
+ return 'stable';
214
+ // Consider slope relative to average value
215
+ const avgValue = points.reduce((sum, p) => sum + p.value, 0) / points.length;
216
+ const relativeSlope = slope / (avgValue || 1);
217
+ if (relativeSlope > 0.05)
218
+ return 'increasing';
219
+ if (relativeSlope < -0.05)
220
+ return 'decreasing';
221
+ return 'stable';
222
+ }
223
+ calculateChangePercent(points) {
224
+ if (points.length < 2)
225
+ return 0;
226
+ const first = points[0].value;
227
+ const last = points[points.length - 1].value;
228
+ if (first === 0)
229
+ return last > 0 ? 100 : 0;
230
+ return ((last - first) / Math.abs(first)) * 100;
231
+ }
232
+ calculateConfidence(regression, points) {
233
+ // Confidence based on R-squared and sample size
234
+ const rSquaredFactor = Math.max(0, regression.rSquared) * 100;
235
+ const sampleFactor = Math.min(50, points.length * 5);
236
+ return Math.min(100, rSquaredFactor + sampleFactor);
237
+ }
238
+ projectTimeToThreshold(trend, threshold) {
239
+ if (trend.direction !== 'increasing' || trend.changePercent <= 0)
240
+ return null;
241
+ const points = trend.dataPoints;
242
+ if (points.length < 2)
243
+ return null;
244
+ // Simple linear projection
245
+ const slope = (trend.currentValue - trend.previousValue) / (points.length - 1);
246
+ if (slope <= 0)
247
+ return null;
248
+ const pointsNeeded = (threshold - trend.currentValue) / slope;
249
+ const hoursPerPoint = this.resolutionMs / (60 * 60 * 1000);
250
+ return pointsNeeded * hoursPerPoint;
251
+ }
252
+ }
253
+ exports.TrendAnalyzer = TrendAnalyzer;
254
+ //# sourceMappingURL=TrendAnalysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrendAnalysis.js","sourceRoot":"","sources":["../../../src/core/TrendAnalysis.ts"],"names":[],"mappings":"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"}
@@ -19,5 +19,19 @@ exports.DEFAULT_CONFIG = {
19
19
  captureRequestData: false,
20
20
  captureResponseData: true, // ✅ NEW: Default to true
21
21
  logger: console.log,
22
+ enableDistributedTracing: false,
23
+ enableLogCorrelation: false,
24
+ enableSpanNesting: false,
25
+ enableAnomalyDetection: false,
26
+ anomalySensitivity: 2,
27
+ enableTrendAnalysis: false,
28
+ trendResolutionMinutes: 60,
29
+ enableAlerting: false,
30
+ alertWebhooks: [],
31
+ alertOnCritical: true,
32
+ alertOnErrorSpike: true,
33
+ errorSpikeThreshold: 5,
34
+ enableErrorClustering: false,
35
+ maxClusters: 50,
22
36
  };
23
37
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":";AAAA,gEAAgE;AAChE,wCAAwC;AACxC,gEAAgE;;;AAyKnD,QAAA,cAAc,GAA6B;IACpD,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa;IAClD,aAAa,EAAE,GAAG;IAClB,kBAAkB,EAAE,GAAG;IACvB,cAAc,EAAE,KAAK;IACrB,YAAY,EAAE,CAAC;IACf,kBAAkB,EAAE,IAAI;IACxB,SAAS,EAAE,IAAI;IACf,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,qBAAqB,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM;IAC1C,kBAAkB,EAAE,KAAK;IACzB,mBAAmB,EAAE,IAAI,EAAE,yBAAyB;IACpD,MAAM,EAAE,OAAO,CAAC,GAAG;CACtB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":";AAAA,gEAAgE;AAChE,wCAAwC;AACxC,gEAAgE;;;AAoZnD,QAAA,cAAc,GAA6B;IACpD,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa;IAClD,aAAa,EAAE,GAAG;IAClB,kBAAkB,EAAE,GAAG;IACvB,cAAc,EAAE,KAAK;IACrB,YAAY,EAAE,CAAC;IACf,kBAAkB,EAAE,IAAI;IACxB,SAAS,EAAE,IAAI;IACf,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,qBAAqB,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM;IAC1C,kBAAkB,EAAE,KAAK;IACzB,mBAAmB,EAAE,IAAI,EAAE,yBAAyB;IACpD,MAAM,EAAE,OAAO,CAAC,GAAG;IACnB,wBAAwB,EAAE,KAAK;IAC/B,oBAAoB,EAAE,KAAK;IAC3B,iBAAiB,EAAE,KAAK;IACxB,sBAAsB,EAAE,KAAK;IAC7B,kBAAkB,EAAE,CAAC;IACrB,mBAAmB,EAAE,KAAK;IAC1B,sBAAsB,EAAE,EAAE;IAC1B,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,CAAC;IACtB,qBAAqB,EAAE,KAAK;IAC5B,WAAW,EAAE,EAAE;CAClB,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  // ─────────────────────────────────────────────────────────────
3
3
  // flow-debugger — Main Entry Point
4
+ // Enhanced with Advanced Observability Features
4
5
  // ─────────────────────────────────────────────────────────────
5
6
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.withDebugger = exports.traceAsyncOperation = exports.createFetchInterceptor = exports.getReactNativeDebugger = exports.initializeReactNativeDebugger = exports.useDebugger = exports.DebuggerProvider = exports.flowDebugger = exports.axiosTracer = exports.removeFetchTracer = exports.fetchTracer = exports.redisTracer = exports.pgTracer = exports.mysqlTracer = exports.removeMongoTracer = exports.mongoTracer = exports.DEFAULT_CONFIG = exports.renderCompact = exports.renderTimeline = exports.Sampler = exports.HealthMonitor = exports.Analytics = exports.detectRootCause = exports.classifyQuery = exports.classifyTrace = exports.classify = exports.RequestTracer = exports.TraceEngine = void 0;
7
+ exports.withDebugger = exports.traceAsyncOperation = exports.createFetchInterceptor = exports.getReactNativeDebugger = exports.initializeReactNativeDebugger = exports.useDebugger = exports.DebuggerProvider = exports.flowDebugger = exports.axiosTracer = exports.removeFetchTracer = exports.fetchTracer = exports.redisTracer = exports.pgTracer = exports.mysqlTracer = exports.removeMongoTracer = exports.mongoTracer = exports.DEFAULT_CONFIG = exports.visualizeDependencyGraph = exports.DependencyGraphManager = exports.logCorrelationMiddleware = exports.CorrelatedLogger = exports.LogCorrelator = exports.TrendAnalyzer = exports.getErrorSimilarity = exports.ErrorClusterManager = exports.CUSUMDetector = exports.AnomalyDetector = exports.formatSlackMessage = exports.AlertManager = exports.globalMetrics = exports.MetricsRegistry = exports.SpanManager = exports.DistributedTracer = exports.renderCompact = exports.renderTimeline = exports.Sampler = exports.HealthMonitor = exports.Analytics = exports.detectRootCause = exports.classifyQuery = exports.classifyTrace = exports.classify = exports.RequestTracer = exports.TraceEngine = void 0;
7
8
  // Core
8
9
  var TraceEngine_1 = require("./core/TraceEngine");
9
10
  Object.defineProperty(exports, "TraceEngine", { enumerable: true, get: function () { return TraceEngine_1.TraceEngine; } });
@@ -23,6 +24,31 @@ Object.defineProperty(exports, "Sampler", { enumerable: true, get: function () {
23
24
  var Timeline_1 = require("./core/Timeline");
24
25
  Object.defineProperty(exports, "renderTimeline", { enumerable: true, get: function () { return Timeline_1.renderTimeline; } });
25
26
  Object.defineProperty(exports, "renderCompact", { enumerable: true, get: function () { return Timeline_1.renderCompact; } });
27
+ // ✅ NEW: Enhanced Observability
28
+ var DistributedTracing_1 = require("./core/DistributedTracing");
29
+ Object.defineProperty(exports, "DistributedTracer", { enumerable: true, get: function () { return DistributedTracing_1.DistributedTracer; } });
30
+ Object.defineProperty(exports, "SpanManager", { enumerable: true, get: function () { return DistributedTracing_1.SpanManager; } });
31
+ var Metrics_1 = require("./core/Metrics");
32
+ Object.defineProperty(exports, "MetricsRegistry", { enumerable: true, get: function () { return Metrics_1.MetricsRegistry; } });
33
+ Object.defineProperty(exports, "globalMetrics", { enumerable: true, get: function () { return Metrics_1.globalMetrics; } });
34
+ var Alerting_1 = require("./core/Alerting");
35
+ Object.defineProperty(exports, "AlertManager", { enumerable: true, get: function () { return Alerting_1.AlertManager; } });
36
+ Object.defineProperty(exports, "formatSlackMessage", { enumerable: true, get: function () { return Alerting_1.formatSlackMessage; } });
37
+ var AnomalyDetection_1 = require("./core/AnomalyDetection");
38
+ Object.defineProperty(exports, "AnomalyDetector", { enumerable: true, get: function () { return AnomalyDetection_1.AnomalyDetector; } });
39
+ Object.defineProperty(exports, "CUSUMDetector", { enumerable: true, get: function () { return AnomalyDetection_1.CUSUMDetector; } });
40
+ var ErrorClustering_1 = require("./core/ErrorClustering");
41
+ Object.defineProperty(exports, "ErrorClusterManager", { enumerable: true, get: function () { return ErrorClustering_1.ErrorClusterManager; } });
42
+ Object.defineProperty(exports, "getErrorSimilarity", { enumerable: true, get: function () { return ErrorClustering_1.getErrorSimilarity; } });
43
+ var TrendAnalysis_1 = require("./core/TrendAnalysis");
44
+ Object.defineProperty(exports, "TrendAnalyzer", { enumerable: true, get: function () { return TrendAnalysis_1.TrendAnalyzer; } });
45
+ var LogCorrelation_1 = require("./core/LogCorrelation");
46
+ Object.defineProperty(exports, "LogCorrelator", { enumerable: true, get: function () { return LogCorrelation_1.LogCorrelator; } });
47
+ Object.defineProperty(exports, "CorrelatedLogger", { enumerable: true, get: function () { return LogCorrelation_1.CorrelatedLogger; } });
48
+ Object.defineProperty(exports, "logCorrelationMiddleware", { enumerable: true, get: function () { return LogCorrelation_1.logCorrelationMiddleware; } });
49
+ var DependencyGraph_1 = require("./core/DependencyGraph");
50
+ Object.defineProperty(exports, "DependencyGraphManager", { enumerable: true, get: function () { return DependencyGraph_1.DependencyGraphManager; } });
51
+ Object.defineProperty(exports, "visualizeDependencyGraph", { enumerable: true, get: function () { return DependencyGraph_1.visualizeDependencyGraph; } });
26
52
  var types_1 = require("./core/types");
27
53
  Object.defineProperty(exports, "DEFAULT_CONFIG", { enumerable: true, get: function () { return types_1.DEFAULT_CONFIG; } });
28
54
  // Integrations