@skillsmith/core 0.2.0 → 2.0.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/README.md +233 -2
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/analysis/__tests__/incremental.test.d.ts +13 -0
- package/dist/src/analysis/__tests__/incremental.test.d.ts.map +1 -0
- package/dist/src/analysis/__tests__/incremental.test.js +515 -0
- package/dist/src/analysis/__tests__/incremental.test.js.map +1 -0
- package/dist/src/analysis/__tests__/integration.test.d.ts +14 -0
- package/dist/src/analysis/__tests__/integration.test.d.ts.map +1 -0
- package/dist/src/analysis/__tests__/integration.test.js +1059 -0
- package/dist/src/analysis/__tests__/integration.test.js.map +1 -0
- package/dist/src/analysis/__tests__/metrics.test.d.ts +9 -0
- package/dist/src/analysis/__tests__/metrics.test.d.ts.map +1 -0
- package/dist/src/analysis/__tests__/metrics.test.js +369 -0
- package/dist/src/analysis/__tests__/metrics.test.js.map +1 -0
- package/dist/src/analysis/__tests__/performance.test.d.ts +15 -0
- package/dist/src/analysis/__tests__/performance.test.d.ts.map +1 -0
- package/dist/src/analysis/__tests__/performance.test.js +402 -0
- package/dist/src/analysis/__tests__/performance.test.js.map +1 -0
- package/dist/src/analysis/adapters/__tests__/go.test.d.ts +12 -0
- package/dist/src/analysis/adapters/__tests__/go.test.d.ts.map +1 -0
- package/dist/src/analysis/adapters/__tests__/go.test.js +561 -0
- package/dist/src/analysis/adapters/__tests__/go.test.js.map +1 -0
- package/dist/src/analysis/adapters/__tests__/python.test.d.ts +11 -0
- package/dist/src/analysis/adapters/__tests__/python.test.d.ts.map +1 -0
- package/dist/src/analysis/adapters/__tests__/python.test.js +669 -0
- package/dist/src/analysis/adapters/__tests__/python.test.js.map +1 -0
- package/dist/src/analysis/adapters/__tests__/rust.test.d.ts +12 -0
- package/dist/src/analysis/adapters/__tests__/rust.test.d.ts.map +1 -0
- package/dist/src/analysis/adapters/__tests__/rust.test.js +676 -0
- package/dist/src/analysis/adapters/__tests__/rust.test.js.map +1 -0
- package/dist/src/analysis/adapters/__tests__/typescript.test.d.ts +14 -0
- package/dist/src/analysis/adapters/__tests__/typescript.test.d.ts.map +1 -0
- package/dist/src/analysis/adapters/__tests__/typescript.test.js +381 -0
- package/dist/src/analysis/adapters/__tests__/typescript.test.js.map +1 -0
- package/dist/src/analysis/adapters/base.d.ts +83 -0
- package/dist/src/analysis/adapters/base.d.ts.map +1 -0
- package/dist/src/analysis/adapters/base.js +40 -0
- package/dist/src/analysis/adapters/base.js.map +1 -0
- package/dist/src/analysis/adapters/factory.d.ts +150 -0
- package/dist/src/analysis/adapters/factory.d.ts.map +1 -0
- package/dist/src/analysis/adapters/factory.js +244 -0
- package/dist/src/analysis/adapters/factory.js.map +1 -0
- package/dist/src/analysis/adapters/go.d.ts +131 -0
- package/dist/src/analysis/adapters/go.d.ts.map +1 -0
- package/dist/src/analysis/adapters/go.js +414 -0
- package/dist/src/analysis/adapters/go.js.map +1 -0
- package/dist/src/analysis/adapters/index.d.ts +20 -0
- package/dist/src/analysis/adapters/index.d.ts.map +1 -0
- package/dist/src/analysis/adapters/index.js +23 -0
- package/dist/src/analysis/adapters/index.js.map +1 -0
- package/dist/src/analysis/adapters/java.d.ts +154 -0
- package/dist/src/analysis/adapters/java.d.ts.map +1 -0
- package/dist/src/analysis/adapters/java.js +407 -0
- package/dist/src/analysis/adapters/java.js.map +1 -0
- package/dist/src/analysis/adapters/python.d.ts +165 -0
- package/dist/src/analysis/adapters/python.d.ts.map +1 -0
- package/dist/src/analysis/adapters/python.js +475 -0
- package/dist/src/analysis/adapters/python.js.map +1 -0
- package/dist/src/analysis/adapters/rust.d.ts +116 -0
- package/dist/src/analysis/adapters/rust.d.ts.map +1 -0
- package/dist/src/analysis/adapters/rust.js +476 -0
- package/dist/src/analysis/adapters/rust.js.map +1 -0
- package/dist/src/analysis/adapters/typescript.d.ts +68 -0
- package/dist/src/analysis/adapters/typescript.d.ts.map +1 -0
- package/dist/src/analysis/adapters/typescript.js +79 -0
- package/dist/src/analysis/adapters/typescript.js.map +1 -0
- package/dist/src/analysis/aggregator.d.ts +193 -0
- package/dist/src/analysis/aggregator.d.ts.map +1 -0
- package/dist/src/analysis/aggregator.js +283 -0
- package/dist/src/analysis/aggregator.js.map +1 -0
- package/dist/src/analysis/cache.d.ts +180 -0
- package/dist/src/analysis/cache.d.ts.map +1 -0
- package/dist/src/analysis/cache.js +279 -0
- package/dist/src/analysis/cache.js.map +1 -0
- package/dist/src/analysis/file-streamer.d.ts +136 -0
- package/dist/src/analysis/file-streamer.d.ts.map +1 -0
- package/dist/src/analysis/file-streamer.js +291 -0
- package/dist/src/analysis/file-streamer.js.map +1 -0
- package/dist/src/analysis/incremental-parser.d.ts +186 -0
- package/dist/src/analysis/incremental-parser.d.ts.map +1 -0
- package/dist/src/analysis/incremental-parser.js +291 -0
- package/dist/src/analysis/incremental-parser.js.map +1 -0
- package/dist/src/analysis/incremental.d.ts +186 -0
- package/dist/src/analysis/incremental.d.ts.map +1 -0
- package/dist/src/analysis/incremental.js +247 -0
- package/dist/src/analysis/incremental.js.map +1 -0
- package/dist/src/analysis/index.d.ts +25 -3
- package/dist/src/analysis/index.d.ts.map +1 -1
- package/dist/src/analysis/index.js +45 -3
- package/dist/src/analysis/index.js.map +1 -1
- package/dist/src/analysis/language-detector.d.ts +92 -0
- package/dist/src/analysis/language-detector.d.ts.map +1 -0
- package/dist/src/analysis/language-detector.js +602 -0
- package/dist/src/analysis/language-detector.js.map +1 -0
- package/dist/src/analysis/memory-monitor.d.ts +199 -0
- package/dist/src/analysis/memory-monitor.d.ts.map +1 -0
- package/dist/src/analysis/memory-monitor.js +271 -0
- package/dist/src/analysis/memory-monitor.js.map +1 -0
- package/dist/src/analysis/metrics.d.ts +300 -0
- package/dist/src/analysis/metrics.d.ts.map +1 -0
- package/dist/src/analysis/metrics.js +537 -0
- package/dist/src/analysis/metrics.js.map +1 -0
- package/dist/src/analysis/router.d.ts +264 -0
- package/dist/src/analysis/router.d.ts.map +1 -0
- package/dist/src/analysis/router.js +398 -0
- package/dist/src/analysis/router.js.map +1 -0
- package/dist/src/analysis/tree-cache.d.ts +208 -0
- package/dist/src/analysis/tree-cache.d.ts.map +1 -0
- package/dist/src/analysis/tree-cache.js +288 -0
- package/dist/src/analysis/tree-cache.js.map +1 -0
- package/dist/src/analysis/tree-sitter/manager.d.ts +141 -0
- package/dist/src/analysis/tree-sitter/manager.d.ts.map +1 -0
- package/dist/src/analysis/tree-sitter/manager.js +239 -0
- package/dist/src/analysis/tree-sitter/manager.js.map +1 -0
- package/dist/src/analysis/types.d.ts +69 -6
- package/dist/src/analysis/types.d.ts.map +1 -1
- package/dist/src/analysis/types.js +23 -2
- package/dist/src/analysis/types.js.map +1 -1
- package/dist/src/analysis/worker-pool.d.ts +141 -0
- package/dist/src/analysis/worker-pool.d.ts.map +1 -0
- package/dist/src/analysis/worker-pool.js +418 -0
- package/dist/src/analysis/worker-pool.js.map +1 -0
- package/dist/src/analytics/schema.d.ts +1 -1
- package/dist/src/analytics/schema.d.ts.map +1 -1
- package/dist/src/analytics/schema.js +72 -0
- package/dist/src/analytics/schema.js.map +1 -1
- package/dist/src/api/cache.d.ts +24 -1
- package/dist/src/api/cache.d.ts.map +1 -1
- package/dist/src/api/cache.js +50 -2
- package/dist/src/api/cache.js.map +1 -1
- package/dist/src/api/client.d.ts +132 -2
- package/dist/src/api/client.d.ts.map +1 -1
- package/dist/src/api/client.js +214 -18
- package/dist/src/api/client.js.map +1 -1
- package/dist/src/api/index.d.ts +2 -0
- package/dist/src/api/index.d.ts.map +1 -1
- package/dist/src/api/index.js +7 -0
- package/dist/src/api/index.js.map +1 -1
- package/dist/src/api/types.d.ts +251 -0
- package/dist/src/api/types.d.ts.map +1 -0
- package/dist/src/api/types.js +9 -0
- package/dist/src/api/types.js.map +1 -0
- package/dist/src/benchmarks/memory/MemoryProfiler.d.ts.map +1 -1
- package/dist/src/benchmarks/memory/MemoryProfiler.js.map +1 -1
- package/dist/src/embeddings/index.d.ts.map +1 -1
- package/dist/src/embeddings/index.js.map +1 -1
- package/dist/src/errors.d.ts +1 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +1 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/repositories/IndexerRepository.d.ts.map +1 -1
- package/dist/src/repositories/IndexerRepository.js +1 -0
- package/dist/src/repositories/IndexerRepository.js.map +1 -1
- package/dist/src/repositories/SkillRepository.d.ts.map +1 -1
- package/dist/src/repositories/SkillRepository.js +1 -0
- package/dist/src/repositories/SkillRepository.js.map +1 -1
- package/dist/src/repositories/quarantine/QuarantineRepository.d.ts.map +1 -1
- package/dist/src/repositories/quarantine/QuarantineRepository.js.map +1 -1
- package/dist/src/repositories/quarantine/query-builder.d.ts.map +1 -1
- package/dist/src/repositories/quarantine/query-builder.js +1 -1
- package/dist/src/repositories/quarantine/query-builder.js.map +1 -1
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js +3 -3
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
- package/dist/src/scripts/github-import/index.js.map +1 -1
- package/dist/src/scripts/import-github-skills.js +1 -1
- package/dist/src/scripts/import-github-skills.js.map +1 -1
- package/dist/src/scripts/skill-scanner/reporter.d.ts.map +1 -1
- package/dist/src/scripts/skill-scanner/reporter.js.map +1 -1
- package/dist/src/scripts/skill-scanner/scanner.d.ts.map +1 -1
- package/dist/src/scripts/skill-scanner/scanner.js.map +1 -1
- package/dist/src/scripts/skill-scanner/trust-scorer.d.ts.map +1 -1
- package/dist/src/scripts/skill-scanner/trust-scorer.js.map +1 -1
- package/dist/src/scripts/validation/index.js +1 -2
- package/dist/src/scripts/validation/index.js.map +1 -1
- package/dist/src/scripts/validation/pipeline.d.ts.map +1 -1
- package/dist/src/scripts/validation/pipeline.js.map +1 -1
- package/dist/src/scripts/validation/types.d.ts +2 -2
- package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
- package/dist/src/services/SearchService.d.ts.map +1 -1
- package/dist/src/services/SearchService.js +1 -0
- package/dist/src/services/SearchService.js.map +1 -1
- package/dist/src/session/SessionHealthMonitor.d.ts +1 -1
- package/dist/src/session/SessionHealthMonitor.d.ts.map +1 -1
- package/dist/src/session/SessionHealthMonitor.js +1 -1
- package/dist/src/session/SessionHealthMonitor.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +1 -1
- package/dist/src/telemetry/index.d.ts.map +1 -1
- package/dist/src/telemetry/index.js +2 -2
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/posthog.d.ts +27 -5
- package/dist/src/telemetry/posthog.d.ts.map +1 -1
- package/dist/src/telemetry/posthog.js +20 -5
- package/dist/src/telemetry/posthog.js.map +1 -1
- package/dist/src/types/skill.d.ts +3 -0
- package/dist/src/types/skill.d.ts.map +1 -1
- package/dist/src/types.d.ts +2 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +2 -2
- package/dist/src/types.js.map +1 -1
- package/dist/tests/adapters-factory.test.d.ts +13 -0
- package/dist/tests/adapters-factory.test.d.ts.map +1 -0
- package/dist/tests/adapters-factory.test.js +308 -0
- package/dist/tests/adapters-factory.test.js.map +1 -0
- package/dist/tests/adapters-java.test.d.ts +13 -0
- package/dist/tests/adapters-java.test.d.ts.map +1 -0
- package/dist/tests/adapters-java.test.js +925 -0
- package/dist/tests/adapters-java.test.js.map +1 -0
- package/dist/tests/api/client.validation.test.d.ts +7 -0
- package/dist/tests/api/client.validation.test.d.ts.map +1 -0
- package/dist/tests/api/client.validation.test.js +183 -0
- package/dist/tests/api/client.validation.test.js.map +1 -0
- package/dist/tests/language-detector.test.d.ts +13 -0
- package/dist/tests/language-detector.test.d.ts.map +1 -0
- package/dist/tests/language-detector.test.js +674 -0
- package/dist/tests/language-detector.test.js.map +1 -0
- package/dist/tests/telemetry/posthog.test.d.ts +13 -0
- package/dist/tests/telemetry/posthog.test.d.ts.map +1 -0
- package/dist/tests/telemetry/posthog.test.js +600 -0
- package/dist/tests/telemetry/posthog.test.js.map +1 -0
- package/package.json +5 -6
- package/dist/src/security/RateLimiter.d.ts +0 -337
- package/dist/src/security/RateLimiter.d.ts.map +0 -1
- package/dist/src/security/RateLimiter.js +0 -782
- package/dist/src/security/RateLimiter.js.map +0 -1
- package/dist/src/security/scanner.d.ts +0 -151
- package/dist/src/security/scanner.d.ts.map +0 -1
- package/dist/src/security/scanner.js +0 -599
- package/dist/src/security/scanner.js.map +0 -1
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1337: Analysis Pipeline Metrics and Telemetry
|
|
3
|
+
*
|
|
4
|
+
* Provides metrics collection for the multi-language analysis pipeline:
|
|
5
|
+
* - Files parsed per language (counter)
|
|
6
|
+
* - Parse duration by language (histogram)
|
|
7
|
+
* - Cache hit/miss rates (gauge)
|
|
8
|
+
* - Worker pool utilization (gauge)
|
|
9
|
+
* - Memory usage (gauge)
|
|
10
|
+
* - Error counts by type (counter)
|
|
11
|
+
*
|
|
12
|
+
* Configuration:
|
|
13
|
+
* - SKILLSMITH_TELEMETRY_ENABLED: Master switch for all telemetry (default: auto)
|
|
14
|
+
* - SKILLSMITH_ANALYSIS_METRICS_ENABLED: Enable/disable analysis metrics (default: true)
|
|
15
|
+
*
|
|
16
|
+
* Graceful Fallback:
|
|
17
|
+
* - If OpenTelemetry packages are not installed, uses in-memory implementations
|
|
18
|
+
* - Metrics APIs remain functional for local statistics
|
|
19
|
+
*
|
|
20
|
+
* @see docs/architecture/multi-language-analysis.md
|
|
21
|
+
* @module analysis/metrics
|
|
22
|
+
*/
|
|
23
|
+
import type { Counter, Histogram, Gauge, MetricLabels } from '../telemetry/metrics.js';
|
|
24
|
+
import type { SupportedLanguage } from './types.js';
|
|
25
|
+
/**
|
|
26
|
+
* Analysis metrics configuration
|
|
27
|
+
*/
|
|
28
|
+
export interface AnalysisMetricsConfig {
|
|
29
|
+
/** Whether to enable metrics collection (default: true) */
|
|
30
|
+
enabled?: boolean;
|
|
31
|
+
/** Prefix for all metric names (default: skillsmith.analysis) */
|
|
32
|
+
metricPrefix?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* In-memory counter implementation
|
|
36
|
+
*/
|
|
37
|
+
declare class InMemoryCounter implements Counter {
|
|
38
|
+
private values;
|
|
39
|
+
add(value: number, labels?: MetricLabels): void;
|
|
40
|
+
increment(labels?: MetricLabels): void;
|
|
41
|
+
getValues(): Map<string, number>;
|
|
42
|
+
getTotal(): number;
|
|
43
|
+
reset(): void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* In-memory histogram implementation
|
|
47
|
+
*/
|
|
48
|
+
declare class InMemoryHistogram implements Histogram {
|
|
49
|
+
private values;
|
|
50
|
+
private labeledValues;
|
|
51
|
+
record(value: number, labels?: MetricLabels): void;
|
|
52
|
+
getStats(): {
|
|
53
|
+
count: number;
|
|
54
|
+
sum: number;
|
|
55
|
+
mean: number;
|
|
56
|
+
p50: number;
|
|
57
|
+
p95: number;
|
|
58
|
+
p99: number;
|
|
59
|
+
};
|
|
60
|
+
getStatsByLabel(labels: MetricLabels): ReturnType<typeof this.getStats>;
|
|
61
|
+
reset(): void;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* In-memory gauge implementation
|
|
65
|
+
*/
|
|
66
|
+
declare class InMemoryGauge implements Gauge {
|
|
67
|
+
private values;
|
|
68
|
+
set(value: number, labels?: MetricLabels): void;
|
|
69
|
+
getValue(labels?: MetricLabels): number;
|
|
70
|
+
getAllValues(): Map<string, number>;
|
|
71
|
+
reset(): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Analysis metrics snapshot for export
|
|
75
|
+
*/
|
|
76
|
+
export interface AnalysisMetricsSnapshot {
|
|
77
|
+
timestamp: string;
|
|
78
|
+
filesParsed: {
|
|
79
|
+
total: number;
|
|
80
|
+
byLanguage: Record<string, number>;
|
|
81
|
+
};
|
|
82
|
+
parseDuration: {
|
|
83
|
+
stats: {
|
|
84
|
+
count: number;
|
|
85
|
+
sum: number;
|
|
86
|
+
mean: number;
|
|
87
|
+
p50: number;
|
|
88
|
+
p95: number;
|
|
89
|
+
p99: number;
|
|
90
|
+
};
|
|
91
|
+
byLanguage: Record<string, {
|
|
92
|
+
count: number;
|
|
93
|
+
sum: number;
|
|
94
|
+
mean: number;
|
|
95
|
+
p50: number;
|
|
96
|
+
p95: number;
|
|
97
|
+
p99: number;
|
|
98
|
+
}>;
|
|
99
|
+
};
|
|
100
|
+
cache: {
|
|
101
|
+
hits: number;
|
|
102
|
+
misses: number;
|
|
103
|
+
hitRate: number;
|
|
104
|
+
size: number;
|
|
105
|
+
};
|
|
106
|
+
workerPool: {
|
|
107
|
+
activeWorkers: number;
|
|
108
|
+
queuedTasks: number;
|
|
109
|
+
utilization: number;
|
|
110
|
+
};
|
|
111
|
+
memory: {
|
|
112
|
+
heapUsed: number;
|
|
113
|
+
heapTotal: number;
|
|
114
|
+
rss: number;
|
|
115
|
+
};
|
|
116
|
+
errors: {
|
|
117
|
+
total: number;
|
|
118
|
+
byType: Record<string, number>;
|
|
119
|
+
};
|
|
120
|
+
aggregator: {
|
|
121
|
+
filesProcessed: number;
|
|
122
|
+
totalImports: number;
|
|
123
|
+
totalExports: number;
|
|
124
|
+
totalFunctions: number;
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Analysis Pipeline Metrics Collector
|
|
129
|
+
*
|
|
130
|
+
* Provides comprehensive metrics collection for the multi-language
|
|
131
|
+
* analysis pipeline with graceful fallback when telemetry is unavailable.
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* const metrics = new AnalysisMetrics()
|
|
136
|
+
*
|
|
137
|
+
* // Record file parse
|
|
138
|
+
* metrics.recordFileParsed('typescript')
|
|
139
|
+
*
|
|
140
|
+
* // Record parse duration
|
|
141
|
+
* metrics.recordParseDuration('typescript', 15.5)
|
|
142
|
+
*
|
|
143
|
+
* // Record cache operations
|
|
144
|
+
* metrics.recordCacheHit()
|
|
145
|
+
* metrics.recordCacheMiss()
|
|
146
|
+
*
|
|
147
|
+
* // Get snapshot
|
|
148
|
+
* const snapshot = metrics.getSnapshot()
|
|
149
|
+
* console.log(`Parse p95: ${snapshot.parseDuration.stats.p95}ms`)
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
export declare class AnalysisMetrics {
|
|
153
|
+
private readonly enabled;
|
|
154
|
+
private readonly prefix;
|
|
155
|
+
readonly filesParsed: InMemoryCounter;
|
|
156
|
+
readonly parseDuration: InMemoryHistogram;
|
|
157
|
+
readonly cacheHits: InMemoryCounter;
|
|
158
|
+
readonly cacheMisses: InMemoryCounter;
|
|
159
|
+
readonly cacheSize: InMemoryGauge;
|
|
160
|
+
readonly workerPoolActive: InMemoryGauge;
|
|
161
|
+
readonly workerPoolQueued: InMemoryGauge;
|
|
162
|
+
readonly workerPoolUtilization: InMemoryGauge;
|
|
163
|
+
readonly memoryHeapUsed: InMemoryGauge;
|
|
164
|
+
readonly memoryHeapTotal: InMemoryGauge;
|
|
165
|
+
readonly memoryRss: InMemoryGauge;
|
|
166
|
+
readonly errorCount: InMemoryCounter;
|
|
167
|
+
readonly aggregatorFilesProcessed: InMemoryGauge;
|
|
168
|
+
readonly aggregatorImports: InMemoryGauge;
|
|
169
|
+
readonly aggregatorExports: InMemoryGauge;
|
|
170
|
+
readonly aggregatorFunctions: InMemoryGauge;
|
|
171
|
+
constructor(config?: AnalysisMetricsConfig);
|
|
172
|
+
/**
|
|
173
|
+
* Check if metrics collection is enabled
|
|
174
|
+
*/
|
|
175
|
+
isEnabled(): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Record a file being parsed
|
|
178
|
+
*
|
|
179
|
+
* @param language - The language of the parsed file
|
|
180
|
+
*/
|
|
181
|
+
recordFileParsed(language: SupportedLanguage | string): void;
|
|
182
|
+
/**
|
|
183
|
+
* Record parse duration for a file
|
|
184
|
+
*
|
|
185
|
+
* @param language - The language of the parsed file
|
|
186
|
+
* @param durationMs - Parse duration in milliseconds
|
|
187
|
+
*/
|
|
188
|
+
recordParseDuration(language: SupportedLanguage | string, durationMs: number): void;
|
|
189
|
+
/**
|
|
190
|
+
* Record a cache hit
|
|
191
|
+
*
|
|
192
|
+
* @param language - Optional language for the cache hit
|
|
193
|
+
*/
|
|
194
|
+
recordCacheHit(language?: SupportedLanguage | string): void;
|
|
195
|
+
/**
|
|
196
|
+
* Record a cache miss
|
|
197
|
+
*
|
|
198
|
+
* @param language - Optional language for the cache miss
|
|
199
|
+
*/
|
|
200
|
+
recordCacheMiss(language?: SupportedLanguage | string): void;
|
|
201
|
+
/**
|
|
202
|
+
* Update cache size
|
|
203
|
+
*
|
|
204
|
+
* @param size - Current cache size in bytes
|
|
205
|
+
* @param entries - Current number of cache entries
|
|
206
|
+
*/
|
|
207
|
+
updateCacheSize(size: number, entries?: number): void;
|
|
208
|
+
/**
|
|
209
|
+
* Update worker pool metrics
|
|
210
|
+
*
|
|
211
|
+
* @param activeWorkers - Number of currently active workers
|
|
212
|
+
* @param queuedTasks - Number of tasks waiting in queue
|
|
213
|
+
* @param poolSize - Total pool size for utilization calculation
|
|
214
|
+
*/
|
|
215
|
+
updateWorkerPool(activeWorkers: number, queuedTasks: number, poolSize?: number): void;
|
|
216
|
+
/**
|
|
217
|
+
* Update memory usage metrics
|
|
218
|
+
*
|
|
219
|
+
* Records current Node.js memory usage stats.
|
|
220
|
+
*/
|
|
221
|
+
updateMemoryUsage(): void;
|
|
222
|
+
/**
|
|
223
|
+
* Record an error
|
|
224
|
+
*
|
|
225
|
+
* @param errorType - Type/category of the error
|
|
226
|
+
* @param language - Optional language context
|
|
227
|
+
*/
|
|
228
|
+
recordError(errorType: string, language?: SupportedLanguage | string): void;
|
|
229
|
+
/**
|
|
230
|
+
* Update aggregator metrics
|
|
231
|
+
*
|
|
232
|
+
* @param filesProcessed - Number of files processed
|
|
233
|
+
* @param imports - Total imports found
|
|
234
|
+
* @param exports - Total exports found
|
|
235
|
+
* @param functions - Total functions found
|
|
236
|
+
*/
|
|
237
|
+
updateAggregatorStats(filesProcessed: number, imports: number, exports: number, functions: number): void;
|
|
238
|
+
/**
|
|
239
|
+
* Get cache hit rate
|
|
240
|
+
*
|
|
241
|
+
* @returns Cache hit rate as a decimal (0-1)
|
|
242
|
+
*/
|
|
243
|
+
getCacheHitRate(): number;
|
|
244
|
+
/**
|
|
245
|
+
* Get files parsed by language
|
|
246
|
+
*
|
|
247
|
+
* @returns Map of language to count
|
|
248
|
+
*/
|
|
249
|
+
getFilesByLanguage(): Record<string, number>;
|
|
250
|
+
/**
|
|
251
|
+
* Get parse duration stats by language
|
|
252
|
+
*
|
|
253
|
+
* @param language - Language to get stats for
|
|
254
|
+
* @returns Duration statistics
|
|
255
|
+
*/
|
|
256
|
+
getParseDurationByLanguage(language: SupportedLanguage | string): ReturnType<InMemoryHistogram['getStats']>;
|
|
257
|
+
/**
|
|
258
|
+
* Get complete metrics snapshot
|
|
259
|
+
*
|
|
260
|
+
* @returns Snapshot of all current metrics
|
|
261
|
+
*/
|
|
262
|
+
getSnapshot(): AnalysisMetricsSnapshot;
|
|
263
|
+
/**
|
|
264
|
+
* Reset all metrics
|
|
265
|
+
*/
|
|
266
|
+
reset(): void;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Get the default analysis metrics instance
|
|
270
|
+
*
|
|
271
|
+
* @returns The shared AnalysisMetrics instance
|
|
272
|
+
*/
|
|
273
|
+
export declare function getAnalysisMetrics(): AnalysisMetrics;
|
|
274
|
+
/**
|
|
275
|
+
* Initialize the default analysis metrics instance
|
|
276
|
+
*
|
|
277
|
+
* @param config - Optional configuration
|
|
278
|
+
* @returns The initialized AnalysisMetrics instance
|
|
279
|
+
*/
|
|
280
|
+
export declare function initializeAnalysisMetrics(config?: AnalysisMetricsConfig): AnalysisMetrics;
|
|
281
|
+
/**
|
|
282
|
+
* Helper: Time an async operation and record to analysis metrics
|
|
283
|
+
*
|
|
284
|
+
* @param language - Language being parsed
|
|
285
|
+
* @param fn - Async function to time
|
|
286
|
+
* @param metrics - Optional metrics instance (uses default if not provided)
|
|
287
|
+
* @returns Result of the function
|
|
288
|
+
*/
|
|
289
|
+
export declare function timeParseAsync<T>(language: SupportedLanguage | string, fn: () => Promise<T>, metrics?: AnalysisMetrics): Promise<T>;
|
|
290
|
+
/**
|
|
291
|
+
* Helper: Time a sync operation and record to analysis metrics
|
|
292
|
+
*
|
|
293
|
+
* @param language - Language being parsed
|
|
294
|
+
* @param fn - Function to time
|
|
295
|
+
* @param metrics - Optional metrics instance (uses default if not provided)
|
|
296
|
+
* @returns Result of the function
|
|
297
|
+
*/
|
|
298
|
+
export declare function timeParseSync<T>(language: SupportedLanguage | string, fn: () => T, metrics?: AnalysisMetrics): T;
|
|
299
|
+
export {};
|
|
300
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/analysis/metrics.ts"],"names":[],"mappings":"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"}
|