viberadar 0.3.79 → 0.3.81
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/scanner/index.d.ts +14 -0
- package/dist/scanner/index.d.ts.map +1 -1
- package/dist/scanner/index.js +75 -4
- package/dist/scanner/index.js.map +1 -1
- package/dist/ui/dashboard.html +340 -22
- package/package.json +1 -1
package/dist/scanner/index.d.ts
CHANGED
|
@@ -69,6 +69,7 @@ export interface ObservabilityCatalogItem {
|
|
|
69
69
|
recommendation: 'suppress' | 'downgrade level' | 'enrich fields' | 'add event';
|
|
70
70
|
missingFields: string[];
|
|
71
71
|
noisyMessages: string[];
|
|
72
|
+
featureKeys: string[];
|
|
72
73
|
}
|
|
73
74
|
export interface ObservabilityMetrics {
|
|
74
75
|
noise_ratio: number;
|
|
@@ -109,6 +110,19 @@ export interface ObservabilityReport {
|
|
|
109
110
|
missingCriticalLogs: ObservabilityInsightItem[];
|
|
110
111
|
missingCriticalLogsV2: MissingCriticalLogItem[];
|
|
111
112
|
fieldGaps: Record<string, number>;
|
|
113
|
+
byFeature?: FeatureObservabilityResult[];
|
|
114
|
+
}
|
|
115
|
+
export interface FeatureObservabilityResult {
|
|
116
|
+
key: string;
|
|
117
|
+
label: string;
|
|
118
|
+
color: string;
|
|
119
|
+
score: number;
|
|
120
|
+
metrics: ObservabilityMetrics;
|
|
121
|
+
catalogCount: number;
|
|
122
|
+
noisyPatternCount: number;
|
|
123
|
+
missingCriticalCount: number;
|
|
124
|
+
fieldGapCount: number;
|
|
125
|
+
failurePointCount: number;
|
|
112
126
|
}
|
|
113
127
|
export declare function scanProject(projectRoot: string): Promise<ScanResult>;
|
|
114
128
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrE,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,OAAO,CAAC;IAChD,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,UAAU,GAAG,iBAAiB,GAAG,eAAe,GAAG,WAAW,CAAC;IAC/E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"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"}
|
package/dist/scanner/index.js
CHANGED
|
@@ -477,7 +477,7 @@ function bucketFrequency(count) {
|
|
|
477
477
|
return 'medium';
|
|
478
478
|
return 'low';
|
|
479
479
|
}
|
|
480
|
-
function computeObservabilityReport(modules, projectRoot) {
|
|
480
|
+
function computeObservabilityReport(modules, projectRoot, configFeatures) {
|
|
481
481
|
const sourceModules = modules.filter(m => m.type !== 'test' && !m.isInfra);
|
|
482
482
|
const catalog = [];
|
|
483
483
|
let totalLogs = 0;
|
|
@@ -503,6 +503,8 @@ function computeObservabilityReport(modules, projectRoot) {
|
|
|
503
503
|
const noisyMap = new Map();
|
|
504
504
|
const criticalCoverage = new Set();
|
|
505
505
|
const moduleFailureData = new Map();
|
|
506
|
+
// Per-module stats for efficient per-feature aggregation
|
|
507
|
+
const moduleStats = new Map();
|
|
506
508
|
for (const module of sourceModules) {
|
|
507
509
|
let content = '';
|
|
508
510
|
try {
|
|
@@ -524,19 +526,26 @@ function computeObservabilityReport(modules, projectRoot) {
|
|
|
524
526
|
/(todo|temp|debug|test|ping|heartbeat|started|done|ok|loaded)/i.test(c.message || c.argsSnippet) ||
|
|
525
527
|
c.message.length < 12);
|
|
526
528
|
const moduleMissingFields = new Set();
|
|
529
|
+
let mTotalLogs = 0, mTotalErrors = 0, mActionableErrors = 0, mFieldChecks = 0, mFieldHits = 0;
|
|
527
530
|
for (const c of calls) {
|
|
528
531
|
totalLogs += 1;
|
|
532
|
+
mTotalLogs += 1;
|
|
529
533
|
if (c.level === 'error') {
|
|
530
534
|
totalErrors += 1;
|
|
531
|
-
|
|
535
|
+
mTotalErrors += 1;
|
|
536
|
+
if (c.actionableError) {
|
|
532
537
|
actionableErrors += 1;
|
|
538
|
+
mActionableErrors += 1;
|
|
539
|
+
}
|
|
533
540
|
}
|
|
534
541
|
const isWarnError = c.level === 'warn' || c.level === 'error' || c.level === 'fatal';
|
|
535
542
|
const applicableFields = REQUIRED_FIELDS.filter(f => !f.warnErrorOnly || isWarnError);
|
|
536
543
|
requiredFieldsChecks += applicableFields.length;
|
|
544
|
+
mFieldChecks += applicableFields.length;
|
|
537
545
|
for (const field of applicableFields) {
|
|
538
546
|
if (field.re.test(c.argsSnippet)) {
|
|
539
547
|
requiredFieldsHits += 1;
|
|
548
|
+
mFieldHits += 1;
|
|
540
549
|
}
|
|
541
550
|
else {
|
|
542
551
|
fieldGapCounts[field.name] += 1;
|
|
@@ -582,14 +591,21 @@ function computeObservabilityReport(modules, projectRoot) {
|
|
|
582
591
|
recommendation,
|
|
583
592
|
missingFields: Array.from(moduleMissingFields).sort(),
|
|
584
593
|
noisyMessages,
|
|
594
|
+
featureKeys: module.featureKeys || [],
|
|
585
595
|
});
|
|
586
596
|
for (const noisy of noisyCandidates) {
|
|
587
597
|
const key = (noisy.message || noisy.argsSnippet || '[unknown]').slice(0, 90);
|
|
588
598
|
noisyMap.set(key, (noisyMap.get(key) || 0) + 1);
|
|
589
599
|
}
|
|
590
|
-
|
|
600
|
+
const hasCritCov = calls.some(c => c.level === 'error' || c.level === 'warn');
|
|
601
|
+
if (hasCritCov) {
|
|
591
602
|
criticalCoverage.add(module.relativePath);
|
|
592
603
|
}
|
|
604
|
+
moduleStats.set(module.relativePath, {
|
|
605
|
+
totalLogs: mTotalLogs, noiseLogs: noisyCandidates.length,
|
|
606
|
+
totalErrors: mTotalErrors, actionableErrors: mActionableErrors,
|
|
607
|
+
fieldChecks: mFieldChecks, fieldHits: mFieldHits, hasCritCov,
|
|
608
|
+
});
|
|
593
609
|
}
|
|
594
610
|
const classifiedTrash = noiseLogs;
|
|
595
611
|
const classifiedCritical = actionableErrors;
|
|
@@ -659,6 +675,60 @@ function computeObservabilityReport(modules, projectRoot) {
|
|
|
659
675
|
structured_completeness: requiredFieldsChecks ? requiredFieldsHits / requiredFieldsChecks : 0,
|
|
660
676
|
coverage_of_key_flows: criticalCoverage.size / totalSource,
|
|
661
677
|
};
|
|
678
|
+
// ── Build per-feature observability results ──
|
|
679
|
+
let byFeature;
|
|
680
|
+
if (configFeatures) {
|
|
681
|
+
const sortedCatalog = catalog.sort((a, b) => a.modulePath.localeCompare(b.modulePath));
|
|
682
|
+
// Build module→featureKeys lookup for missingCriticalLogsV2 matching
|
|
683
|
+
const moduleFeatureMap = new Map();
|
|
684
|
+
for (const m of sourceModules)
|
|
685
|
+
moduleFeatureMap.set(m.relativePath, m.featureKeys || []);
|
|
686
|
+
byFeature = Object.entries(configFeatures).map(([key, feat]) => {
|
|
687
|
+
const fCatalog = sortedCatalog.filter(c => c.featureKeys.includes(key));
|
|
688
|
+
const fMissing = missingCriticalLogsV2.filter(m => (moduleFeatureMap.get(m.modulePath) || []).includes(key));
|
|
689
|
+
const fSourceModules = sourceModules.filter(m => (m.featureKeys || []).includes(key));
|
|
690
|
+
// Aggregate from pre-computed per-module stats (no file re-reading)
|
|
691
|
+
let fTotalLogs = 0, fNoiseLogs = 0, fTotalErrors = 0, fActionableErrors = 0;
|
|
692
|
+
let fFieldChecks = 0, fFieldHits = 0;
|
|
693
|
+
let fCritCovCount = 0;
|
|
694
|
+
for (const m of fSourceModules) {
|
|
695
|
+
const s = moduleStats.get(m.relativePath);
|
|
696
|
+
if (!s)
|
|
697
|
+
continue;
|
|
698
|
+
fTotalLogs += s.totalLogs;
|
|
699
|
+
fNoiseLogs += s.noiseLogs;
|
|
700
|
+
fTotalErrors += s.totalErrors;
|
|
701
|
+
fActionableErrors += s.actionableErrors;
|
|
702
|
+
fFieldChecks += s.fieldChecks;
|
|
703
|
+
fFieldHits += s.fieldHits;
|
|
704
|
+
if (s.hasCritCov)
|
|
705
|
+
fCritCovCount++;
|
|
706
|
+
}
|
|
707
|
+
const fTotalSource = fSourceModules.length || 1;
|
|
708
|
+
const fMetrics = {
|
|
709
|
+
noise_ratio: fTotalLogs ? fNoiseLogs / fTotalLogs : 0,
|
|
710
|
+
error_actionability: fTotalErrors ? fActionableErrors / fTotalErrors : 0,
|
|
711
|
+
structured_completeness: fFieldChecks ? fFieldHits / fFieldChecks : 0,
|
|
712
|
+
coverage_of_key_flows: fCritCovCount / fTotalSource,
|
|
713
|
+
};
|
|
714
|
+
const score = Math.round((1 - fMetrics.noise_ratio) * 25 +
|
|
715
|
+
fMetrics.structured_completeness * 25 +
|
|
716
|
+
fMetrics.error_actionability * 25 +
|
|
717
|
+
fMetrics.coverage_of_key_flows * 25);
|
|
718
|
+
return {
|
|
719
|
+
key,
|
|
720
|
+
label: feat.label,
|
|
721
|
+
color: feat.color,
|
|
722
|
+
score,
|
|
723
|
+
metrics: fMetrics,
|
|
724
|
+
catalogCount: fCatalog.length,
|
|
725
|
+
noisyPatternCount: fCatalog.reduce((s, c) => s + c.noisyMessages.length, 0),
|
|
726
|
+
missingCriticalCount: fMissing.length,
|
|
727
|
+
fieldGapCount: fCatalog.reduce((s, c) => s + c.missingFields.length, 0),
|
|
728
|
+
failurePointCount: fMissing.reduce((s, m) => s + m.failurePoints.length, 0),
|
|
729
|
+
};
|
|
730
|
+
});
|
|
731
|
+
}
|
|
662
732
|
return {
|
|
663
733
|
catalog: catalog.sort((a, b) => a.modulePath.localeCompare(b.modulePath)),
|
|
664
734
|
metrics,
|
|
@@ -671,6 +741,7 @@ function computeObservabilityReport(modules, projectRoot) {
|
|
|
671
741
|
missingCriticalLogs,
|
|
672
742
|
missingCriticalLogsV2,
|
|
673
743
|
fieldGaps: fieldGapCounts,
|
|
744
|
+
byFeature,
|
|
674
745
|
};
|
|
675
746
|
}
|
|
676
747
|
function loadCoverageMap(projectRoot) {
|
|
@@ -965,7 +1036,7 @@ async function scanProject(projectRoot) {
|
|
|
965
1036
|
infraCount: modules.filter(m => m.isInfra).length,
|
|
966
1037
|
agent: config?.agent,
|
|
967
1038
|
testRunner,
|
|
968
|
-
observability: computeObservabilityReport(modules, projectRoot),
|
|
1039
|
+
observability: computeObservabilityReport(modules, projectRoot, config?.features),
|
|
969
1040
|
};
|
|
970
1041
|
}
|
|
971
1042
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/dashboard.html
CHANGED
|
@@ -787,6 +787,34 @@
|
|
|
787
787
|
.obs-hint-label.before { color: var(--red); }
|
|
788
788
|
.obs-hint-label.after { color: var(--green); }
|
|
789
789
|
|
|
790
|
+
/* ── Progress & baseline delta badges ── */
|
|
791
|
+
.obs-kpi-delta {
|
|
792
|
+
display: block; font-size: 11px; font-weight: 700; margin-top: 2px; letter-spacing: 0.01em;
|
|
793
|
+
}
|
|
794
|
+
.obs-baseline-strip {
|
|
795
|
+
display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
|
|
796
|
+
padding: 4px 12px; background: rgba(255,255,255,0.02);
|
|
797
|
+
border: 1px solid rgba(255,255,255,0.07); border-radius: 6px;
|
|
798
|
+
font-size: 11px; color: var(--dim); margin-bottom: 6px;
|
|
799
|
+
}
|
|
800
|
+
.obs-baseline-strip button {
|
|
801
|
+
background: none; border: none; color: var(--accent); cursor: pointer;
|
|
802
|
+
font-size: 11px; padding: 0 2px; text-decoration: underline; text-underline-offset: 2px;
|
|
803
|
+
}
|
|
804
|
+
.obs-progress-banner {
|
|
805
|
+
display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
|
|
806
|
+
padding: 8px 14px;
|
|
807
|
+
background: rgba(63,185,80,0.07); border: 1px solid rgba(63,185,80,0.2);
|
|
808
|
+
border-radius: 8px; margin-bottom: 8px; font-size: 12px;
|
|
809
|
+
}
|
|
810
|
+
.obs-progress-banner.has-regression {
|
|
811
|
+
background: rgba(248,81,73,0.07); border-color: rgba(248,81,73,0.2);
|
|
812
|
+
}
|
|
813
|
+
.obs-pb-title { color: #3fb950; font-weight: 700; font-size: 13px; flex-shrink: 0; }
|
|
814
|
+
.obs-pb-title.mixed { color: var(--yellow); }
|
|
815
|
+
.obs-pb-item { color: #3fb950; white-space: nowrap; }
|
|
816
|
+
.obs-pb-worse { color: #f85149; white-space: nowrap; }
|
|
817
|
+
|
|
790
818
|
/* ── Floating selection action bar ── */
|
|
791
819
|
.obs-floating-bar {
|
|
792
820
|
position: fixed;
|
|
@@ -2330,6 +2358,20 @@ function obsDispatchFloating() {
|
|
|
2330
2358
|
bar.classList.remove('visible');
|
|
2331
2359
|
}
|
|
2332
2360
|
|
|
2361
|
+
function obsTimeAgo(ts) {
|
|
2362
|
+
const s = Math.floor((Date.now() - ts) / 1000);
|
|
2363
|
+
if (s < 60) return `${s}с назад`;
|
|
2364
|
+
if (s < 3600) return `${Math.floor(s / 60)} мин назад`;
|
|
2365
|
+
if (s < 86400) return `${Math.floor(s / 3600)}ч назад`;
|
|
2366
|
+
return `${Math.floor(s / 86400)}д назад`;
|
|
2367
|
+
}
|
|
2368
|
+
|
|
2369
|
+
function obsResetBaseline(key) {
|
|
2370
|
+
try { localStorage.removeItem('vr_obs_bl_' + key); } catch(e) {}
|
|
2371
|
+
const c = document.getElementById('content');
|
|
2372
|
+
if (c) renderObservability(c);
|
|
2373
|
+
}
|
|
2374
|
+
|
|
2333
2375
|
function obsFloatingDismiss() {
|
|
2334
2376
|
const bar = document.getElementById('obsFloatingBar');
|
|
2335
2377
|
if (!bar) return;
|
|
@@ -2669,22 +2711,126 @@ function renderObservability(c) {
|
|
|
2669
2711
|
return;
|
|
2670
2712
|
}
|
|
2671
2713
|
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2714
|
+
// Feature-based routing (mirrors QA coverage pattern)
|
|
2715
|
+
if (D.hasConfig && D.features && o.byFeature && !drillFeatureKey) {
|
|
2716
|
+
renderObsFeatureCards(c);
|
|
2717
|
+
return;
|
|
2718
|
+
}
|
|
2719
|
+
if (drillFeatureKey) {
|
|
2720
|
+
renderObsFeatureDetail(c);
|
|
2721
|
+
return;
|
|
2722
|
+
}
|
|
2723
|
+
|
|
2724
|
+
renderObsGlobalDetail(c);
|
|
2725
|
+
}
|
|
2726
|
+
|
|
2727
|
+
function renderObsGlobalDetail(c, filterFeatureKey) {
|
|
2728
|
+
const o = D.observability;
|
|
2729
|
+
if (!o) return;
|
|
2730
|
+
|
|
2731
|
+
// If filtering by feature, scope data to that feature's modules
|
|
2732
|
+
let catalog = o.catalog;
|
|
2733
|
+
let missingV2 = o.missingCriticalLogsV2 || [];
|
|
2734
|
+
let topNoisy = o.topNoisyPatterns;
|
|
2735
|
+
let fieldGapsData = o.fieldGaps || {};
|
|
2736
|
+
let metricsData = o.metrics;
|
|
2737
|
+
|
|
2738
|
+
if (filterFeatureKey) {
|
|
2739
|
+
const isUnmapped = filterFeatureKey === '__unmapped__';
|
|
2740
|
+
catalog = o.catalog.filter(ci => isUnmapped ? (!ci.featureKeys || ci.featureKeys.length === 0) : (ci.featureKeys || []).includes(filterFeatureKey));
|
|
2741
|
+
// Build set of module paths in this feature for missingV2 filtering
|
|
2742
|
+
const featureModulePaths = new Set(
|
|
2743
|
+
(D.modules || []).filter(m => {
|
|
2744
|
+
if (isUnmapped) return !m.featureKeys || m.featureKeys.length === 0;
|
|
2745
|
+
return (m.featureKeys || []).includes(filterFeatureKey);
|
|
2746
|
+
}).map(m => m.relativePath)
|
|
2747
|
+
);
|
|
2748
|
+
missingV2 = (o.missingCriticalLogsV2 || []).filter(m => featureModulePaths.has(m.modulePath));
|
|
2749
|
+
// Re-derive noisy patterns from filtered catalog
|
|
2750
|
+
const noisyAgg = new Map();
|
|
2751
|
+
for (const ci of catalog) {
|
|
2752
|
+
for (const nm of (ci.noisyMessages || [])) {
|
|
2753
|
+
noisyAgg.set(nm, (noisyAgg.get(nm) || 0) + 1);
|
|
2754
|
+
}
|
|
2755
|
+
}
|
|
2756
|
+
topNoisy = Array.from(noisyAgg.entries())
|
|
2757
|
+
.sort((a, b) => b[1] - a[1])
|
|
2758
|
+
.slice(0, 8)
|
|
2759
|
+
.map(([pattern, count], i) => ({
|
|
2760
|
+
pattern, count,
|
|
2761
|
+
priority: i < 3 ? 'high' : i < 6 ? 'medium' : 'low',
|
|
2762
|
+
recommendation: count >= 3 ? 'suppress' : 'downgrade level',
|
|
2763
|
+
}));
|
|
2764
|
+
// Re-derive field gaps from filtered catalog
|
|
2765
|
+
fieldGapsData = {};
|
|
2766
|
+
for (const ci of catalog) {
|
|
2767
|
+
for (const f of (ci.missingFields || [])) {
|
|
2768
|
+
fieldGapsData[f] = (fieldGapsData[f] || 0) + 1;
|
|
2769
|
+
}
|
|
2770
|
+
}
|
|
2771
|
+
// Use per-feature metrics if available
|
|
2772
|
+
if (!isUnmapped && o.byFeature) {
|
|
2773
|
+
const bf = o.byFeature.find(f => f.key === filterFeatureKey);
|
|
2774
|
+
if (bf) metricsData = bf.metrics;
|
|
2775
|
+
}
|
|
2776
|
+
}
|
|
2777
|
+
|
|
2778
|
+
const noiseRatio = Math.round(metricsData.noise_ratio * 100);
|
|
2779
|
+
const structPct = Math.round(metricsData.structured_completeness * 100);
|
|
2780
|
+
const actionPct = Math.round(metricsData.error_actionability * 100);
|
|
2781
|
+
const coveragePct = Math.round(metricsData.coverage_of_key_flows * 100);
|
|
2676
2782
|
|
|
2677
2783
|
function metricColor(val, goodThreshold, warnThreshold, invert) {
|
|
2678
|
-
// invert=true: higher is worse (noise), invert=false: higher is better (coverage)
|
|
2679
2784
|
if (invert) return val > warnThreshold ? 'var(--red)' : val > goodThreshold ? 'var(--yellow)' : 'var(--green)';
|
|
2680
2785
|
return val < warnThreshold ? 'var(--red)' : val < goodThreshold ? 'var(--yellow)' : 'var(--green)';
|
|
2681
2786
|
}
|
|
2682
2787
|
|
|
2788
|
+
// ── Baseline & delta tracking ──
|
|
2789
|
+
const _bsKey = String(D.currentFeatureKey || 'global').replace(/[^a-z0-9_-]/gi, '_');
|
|
2790
|
+
let _bl = null;
|
|
2791
|
+
try { _bl = JSON.parse(localStorage.getItem('vr_obs_bl_' + _bsKey) || 'null'); } catch(e) {}
|
|
2792
|
+
|
|
2793
|
+
// Pre-compute current snapshot values (before tierSections so _d is in scope)
|
|
2794
|
+
const _blCurrMissing = missingV2.length;
|
|
2795
|
+
const _blCurrFPs = missingV2.reduce((s, m) => s + (m.failurePoints || []).length, 0);
|
|
2796
|
+
const _blCurrNoise = topNoisy.length;
|
|
2797
|
+
const _blCurrEnrich = Object.entries(fieldGapsData).filter(([, v]) => v > 0).length;
|
|
2798
|
+
const _blCurrTiers = {};
|
|
2799
|
+
['critical', 'important', 'normal'].forEach(tier => {
|
|
2800
|
+
const items = missingV2.filter(m => m.riskTier === tier);
|
|
2801
|
+
_blCurrTiers[tier] = { modules: items.length, fps: items.reduce((s, m) => s + (m.failurePoints || []).length, 0) };
|
|
2802
|
+
});
|
|
2803
|
+
|
|
2804
|
+
if (!_bl) {
|
|
2805
|
+
_bl = { ts: Date.now(), noiseRatio, structPct, actionPct, coveragePct,
|
|
2806
|
+
missing: _blCurrMissing, fps: _blCurrFPs, noise: _blCurrNoise, enrich: _blCurrEnrich,
|
|
2807
|
+
tiers: _blCurrTiers };
|
|
2808
|
+
try { localStorage.setItem('vr_obs_bl_' + _bsKey, JSON.stringify(_bl)); } catch(e) {}
|
|
2809
|
+
}
|
|
2810
|
+
|
|
2811
|
+
// Delta badge helpers
|
|
2812
|
+
const _d = (curr, base, invert = false) => {
|
|
2813
|
+
if (base == null || curr === base) return '';
|
|
2814
|
+
const diff = curr - base;
|
|
2815
|
+
const good = invert ? diff > 0 : diff < 0;
|
|
2816
|
+
const color = good ? '#3fb950' : '#f85149';
|
|
2817
|
+
const sign = diff > 0 ? '+' : '';
|
|
2818
|
+
return `<span style="color:${color};font-size:11px;font-weight:700;margin-left:5px">(${sign}${diff})</span>`;
|
|
2819
|
+
};
|
|
2820
|
+
const _dp = (curr, base, invert = false) => {
|
|
2821
|
+
if (base == null || curr === base) return '';
|
|
2822
|
+
const diff = curr - base;
|
|
2823
|
+
const good = invert ? diff > 0 : diff < 0;
|
|
2824
|
+
const color = good ? '#3fb950' : '#f85149';
|
|
2825
|
+
const arrow = good ? '↓' : '↑';
|
|
2826
|
+
return `<span class="obs-kpi-delta" style="color:${color}">${arrow}${Math.abs(diff)}%</span>`;
|
|
2827
|
+
};
|
|
2828
|
+
|
|
2683
2829
|
const formatLabels = { structured: 'structured', mixed: 'mixed', unstructured: 'unstructured' };
|
|
2684
2830
|
const sourceByFormat = [
|
|
2685
|
-
{ label: 'Structured', count:
|
|
2686
|
-
{ label: 'Mixed', count:
|
|
2687
|
-
{ label: 'Unstructured', count:
|
|
2831
|
+
{ label: 'Structured', count: catalog.filter(c => c.format === 'structured').length, color: 'var(--green)' },
|
|
2832
|
+
{ label: 'Mixed', count: catalog.filter(c => c.format === 'mixed').length, color: 'var(--yellow)' },
|
|
2833
|
+
{ label: 'Unstructured', count: catalog.filter(c => c.format === 'unstructured').length, color: 'var(--red)' },
|
|
2688
2834
|
].filter(x => x.count > 0);
|
|
2689
2835
|
|
|
2690
2836
|
const recLabels = {
|
|
@@ -2696,9 +2842,9 @@ function renderObservability(c) {
|
|
|
2696
2842
|
const hasAgent = !!D.agent;
|
|
2697
2843
|
|
|
2698
2844
|
// Store catalog for buttons to reference by index (avoids inline JSON in onclick)
|
|
2699
|
-
window.__obsCatalog =
|
|
2845
|
+
window.__obsCatalog = catalog;
|
|
2700
2846
|
|
|
2701
|
-
const noisyRows =
|
|
2847
|
+
const noisyRows = topNoisy.map(i => {
|
|
2702
2848
|
const safePattern = escapeHtml(i.pattern).replace(/'/g, ''');
|
|
2703
2849
|
const btn = hasAgent
|
|
2704
2850
|
? `<button class="obs-action-btn" onclick="event.stopPropagation();runAgentTask('obs-suppress-pattern',null,null,null,{pattern:'${safePattern}',recommendation:'${i.recommendation}'})">убрать</button>`
|
|
@@ -2713,7 +2859,7 @@ function renderObservability(c) {
|
|
|
2713
2859
|
}).join('') || '<div class="obs-sub">Шумных паттернов не обнаружено</div>';
|
|
2714
2860
|
|
|
2715
2861
|
// ── Missing critical logs (V2: grouped by risk tier with failure points) ──
|
|
2716
|
-
const v2Data =
|
|
2862
|
+
const v2Data = missingV2;
|
|
2717
2863
|
window.__obsMissingV2 = v2Data;
|
|
2718
2864
|
const fpTypeLabels = {
|
|
2719
2865
|
'empty-catch':'пустой catch','catch-no-log':'catch без лога','promise-catch-no-log':'.catch без лога',
|
|
@@ -2756,10 +2902,11 @@ function renderObservability(c) {
|
|
|
2756
2902
|
<div class="obs-detail-list">${detailItems}</div>
|
|
2757
2903
|
<div class="obs-detail-bar">${addBtn}</div>
|
|
2758
2904
|
</div>` : '';
|
|
2905
|
+
const _blTier = _bl?.tiers?.[tier];
|
|
2759
2906
|
return `<div class="obs-tier-group">
|
|
2760
2907
|
<div class="obs-tier-group-header">
|
|
2761
2908
|
<span class="obs-tier-badge obs-tier-${tier}">${tierLabels[tier]}</span>
|
|
2762
|
-
<span>${items.length} модулей, ${totalFPs} точек отказа</span>
|
|
2909
|
+
<span>${items.length}${_d(items.length, _blTier?.modules)} модулей, ${totalFPs}${_d(totalFPs, _blTier?.fps)} точек отказа</span>
|
|
2763
2910
|
${expandBtn}
|
|
2764
2911
|
</div>
|
|
2765
2912
|
${detail}
|
|
@@ -2770,14 +2917,14 @@ function renderObservability(c) {
|
|
|
2770
2917
|
missingSection = '<div class="obs-sub" style="color:var(--green)">Критичные сценарии покрыты</div>';
|
|
2771
2918
|
}
|
|
2772
2919
|
|
|
2773
|
-
const fieldGaps =
|
|
2920
|
+
const fieldGaps = fieldGapsData;
|
|
2774
2921
|
const fieldGapEntries = Object.entries(fieldGaps).filter(([,v]) => v > 0).sort((a,b) => b[1] - a[1]);
|
|
2775
2922
|
const fieldGapRows = fieldGapEntries.map(([name, count]) => {
|
|
2776
2923
|
const groupId = 'field-' + name.replace(/[^a-z0-9]/gi, '_');
|
|
2777
|
-
const affectedItems =
|
|
2924
|
+
const affectedItems = catalog.filter(c => (c.missingFields||[]).includes(name));
|
|
2778
2925
|
const expandBtn = hasAgent ? `<button class="obs-expand-btn" onclick="event.stopPropagation();toggleObsDetail('${groupId}')">▼</button>` : '';
|
|
2779
2926
|
const detailItems = affectedItems.map(ci => {
|
|
2780
|
-
const catIdx =
|
|
2927
|
+
const catIdx = catalog.indexOf(ci);
|
|
2781
2928
|
return `<label class="obs-detail-item"><input type="checkbox" data-idx="${catIdx}" onchange="obsUpdateSelectedCount('${groupId}')"><span title="${escapeHtml(ci.modulePath)}">${escapeHtml(ci.modulePath.split('/').slice(-2).join('/'))}</span><span style="color:var(--dim);flex-shrink:0">${ci.format}</span></label>`;
|
|
2782
2929
|
}).join('');
|
|
2783
2930
|
const detail = hasAgent ? `
|
|
@@ -2800,7 +2947,7 @@ function renderObservability(c) {
|
|
|
2800
2947
|
</div>`;
|
|
2801
2948
|
}).join('') || '<div class="obs-sub" style="color:var(--green)">Все обязательные поля на месте</div>';
|
|
2802
2949
|
|
|
2803
|
-
const catalogRows =
|
|
2950
|
+
const catalogRows = catalog.map((i, idx) => {
|
|
2804
2951
|
const missing = (i.missingFields || []);
|
|
2805
2952
|
const missingStr = missing.length ? missing.join(', ') : '—';
|
|
2806
2953
|
const btn = hasAgent
|
|
@@ -2817,32 +2964,82 @@ function renderObservability(c) {
|
|
|
2817
2964
|
${btn}
|
|
2818
2965
|
</div>`}).join('');
|
|
2819
2966
|
|
|
2820
|
-
const noisyCount =
|
|
2967
|
+
const noisyCount = topNoisy.length;
|
|
2821
2968
|
const missingCount = v2Data.length;
|
|
2822
2969
|
const enrichCount = fieldGapEntries.length;
|
|
2823
|
-
const catalogCount =
|
|
2970
|
+
const catalogCount = catalog.length;
|
|
2971
|
+
|
|
2972
|
+
// ── Build progress banner comparing to baseline ──
|
|
2973
|
+
const _blItems = [];
|
|
2974
|
+
if (_bl.missing != null && missingCount !== _bl.missing)
|
|
2975
|
+
_blItems.push({ label: `модулей без логов: ${_bl.missing} → ${missingCount}`, good: missingCount < _bl.missing });
|
|
2976
|
+
if (_bl.fps != null && _blCurrFPs !== _bl.fps)
|
|
2977
|
+
_blItems.push({ label: `точек отказа: ${_bl.fps} → ${_blCurrFPs}`, good: _blCurrFPs < _bl.fps });
|
|
2978
|
+
if (_bl.noise != null && noisyCount !== _bl.noise)
|
|
2979
|
+
_blItems.push({ label: `шумных паттернов: ${_bl.noise} → ${noisyCount}`, good: noisyCount < _bl.noise });
|
|
2980
|
+
if (_bl.enrich != null && enrichCount !== _bl.enrich)
|
|
2981
|
+
_blItems.push({ label: `нужно обогатить: ${_bl.enrich} → ${enrichCount}`, good: enrichCount < _bl.enrich });
|
|
2982
|
+
|
|
2983
|
+
const _hasReg = _blItems.some(x => !x.good);
|
|
2984
|
+
const _hasImp = _blItems.some(x => x.good);
|
|
2985
|
+
const _progressBanner = _blItems.length ? `
|
|
2986
|
+
<div class="obs-progress-banner${_hasReg ? ' has-regression' : ''}">
|
|
2987
|
+
<span class="obs-pb-title${_hasReg && _hasImp ? ' mixed' : _hasReg ? ' obs-pb-worse' : ''}">📊 прогресс</span>
|
|
2988
|
+
${_blItems.map(it => `<span class="${it.good ? 'obs-pb-item' : 'obs-pb-worse'}">${it.good ? '✅' : '⚠️'} ${it.label}</span>`).join('')}
|
|
2989
|
+
</div>` : '';
|
|
2990
|
+
|
|
2991
|
+
const _baselineStrip = `
|
|
2992
|
+
<div class="obs-baseline-strip">
|
|
2993
|
+
<span>📍 baseline: ${obsTimeAgo(_bl.ts)}</span>
|
|
2994
|
+
<button onclick="obsResetBaseline('${_bsKey}')">обновить</button>
|
|
2995
|
+
</div>`;
|
|
2996
|
+
|
|
2997
|
+
// Feature drill-down header
|
|
2998
|
+
const _featureHeader = filterFeatureKey ? (() => {
|
|
2999
|
+
const isUnmapped = filterFeatureKey === '__unmapped__';
|
|
3000
|
+
const bf = !isUnmapped && o.byFeature ? o.byFeature.find(f => f.key === filterFeatureKey) : null;
|
|
3001
|
+
const label = isUnmapped ? 'Unmapped' : (bf ? bf.label : filterFeatureKey);
|
|
3002
|
+
const color = isUnmapped ? '#e3b341' : (bf ? bf.color : '#484f58');
|
|
3003
|
+
const score = bf ? bf.score : null;
|
|
3004
|
+
return `<div class="feature-detail-header">
|
|
3005
|
+
<button class="back-btn" onclick="setFeatureDrill(null)">← Все фичи</button>
|
|
3006
|
+
<span class="feature-detail-name">
|
|
3007
|
+
<span class="feature-dot" style="background:${color}"></span>
|
|
3008
|
+
${escapeHtml(label)}
|
|
3009
|
+
</span>
|
|
3010
|
+
${score != null ? `<span style="font-size:20px;font-weight:700;color:${covColor(score)}">${score}%</span>` : ''}
|
|
3011
|
+
</div>`;
|
|
3012
|
+
})() : '';
|
|
2824
3013
|
|
|
2825
3014
|
c.innerHTML = `
|
|
2826
|
-
|
|
3015
|
+
${_featureHeader}
|
|
3016
|
+
${!filterFeatureKey ? `<div class="onboarding-block">
|
|
2827
3017
|
<h3>Наблюдаемость: что это?</h3>
|
|
2828
3018
|
<p>Аудит покрытия логами: что добавить, что убрать, что обогатить — на основе статического анализа лог-вызовов.</p>
|
|
2829
|
-
</div
|
|
3019
|
+
</div>` : ''}
|
|
3020
|
+
|
|
3021
|
+
${_progressBanner}
|
|
3022
|
+
${_baselineStrip}
|
|
2830
3023
|
|
|
2831
3024
|
<div class="obs-kpi-strip">
|
|
2832
3025
|
<div class="obs-kpi">
|
|
2833
3026
|
<span class="obs-kpi-value" style="color:${metricColor(noiseRatio,10,30,true)}">${noiseRatio}%</span>
|
|
3027
|
+
${_dp(noiseRatio, _bl?.noiseRatio, true)}
|
|
2834
3028
|
<span class="obs-kpi-label">Шум</span>
|
|
2835
3029
|
</div>
|
|
2836
3030
|
<div class="obs-kpi">
|
|
2837
3031
|
<span class="obs-kpi-value" style="color:${metricColor(structPct,80,50,false)}">${structPct}%</span>
|
|
3032
|
+
${_dp(structPct, _bl?.structPct)}
|
|
2838
3033
|
<span class="obs-kpi-label">Структурированность</span>
|
|
2839
3034
|
</div>
|
|
2840
3035
|
<div class="obs-kpi">
|
|
2841
3036
|
<span class="obs-kpi-value" style="color:${metricColor(actionPct,80,50,false)}">${actionPct}%</span>
|
|
3037
|
+
${_dp(actionPct, _bl?.actionPct)}
|
|
2842
3038
|
<span class="obs-kpi-label">Actionable ошибки</span>
|
|
2843
3039
|
</div>
|
|
2844
3040
|
<div class="obs-kpi">
|
|
2845
3041
|
<span class="obs-kpi-value" style="color:${metricColor(coveragePct,80,50,false)}">${coveragePct}%</span>
|
|
3042
|
+
${_dp(coveragePct, _bl?.coveragePct)}
|
|
2846
3043
|
<span class="obs-kpi-label">Покрытие сценариев</span>
|
|
2847
3044
|
</div>
|
|
2848
3045
|
</div>
|
|
@@ -2908,12 +3105,12 @@ function renderObservability(c) {
|
|
|
2908
3105
|
<div class="obs-title">Рекомендации</div>
|
|
2909
3106
|
<div class="obs-list" style="gap:2px">
|
|
2910
3107
|
${['suppress','enrich fields','add event','downgrade level'].map(rec => {
|
|
2911
|
-
const items =
|
|
3108
|
+
const items = catalog.filter(c => c.recommendation === rec);
|
|
2912
3109
|
if (!items.length) return '';
|
|
2913
3110
|
const groupId = 'rec-' + rec.replace(/\s+/g, '-');
|
|
2914
3111
|
const expandBtn = hasAgent ? `<button class="obs-expand-btn" onclick="event.stopPropagation();toggleObsDetail('${groupId}')">▼</button>` : '';
|
|
2915
3112
|
const detailItems = items.map((ci, i) => {
|
|
2916
|
-
const catIdx =
|
|
3113
|
+
const catIdx = catalog.indexOf(ci);
|
|
2917
3114
|
const mf = (ci.missingFields||[]).join(', ') || '—';
|
|
2918
3115
|
return `<label class="obs-detail-item"><input type="checkbox" data-idx="${catIdx}" onchange="obsUpdateSelectedCount('${groupId}')"><span title="${escapeHtml(ci.modulePath)}">${escapeHtml(ci.modulePath.split('/').slice(-2).join('/'))}</span><span style="color:var(--dim);flex-shrink:0">${ci.format}</span></label>`;
|
|
2919
3116
|
}).join('');
|
|
@@ -3139,6 +3336,127 @@ function renderObservability(c) {
|
|
|
3139
3336
|
switchObsTab(obsActiveTab);
|
|
3140
3337
|
}
|
|
3141
3338
|
|
|
3339
|
+
function renderObsFeatureDetail(c) {
|
|
3340
|
+
D.currentFeatureKey = drillFeatureKey;
|
|
3341
|
+
renderObsGlobalDetail(c, drillFeatureKey);
|
|
3342
|
+
}
|
|
3343
|
+
|
|
3344
|
+
function renderObsFeatureCards(c) {
|
|
3345
|
+
const o = D.observability;
|
|
3346
|
+
if (!o || !o.byFeature) return;
|
|
3347
|
+
|
|
3348
|
+
const q = searchQuery.toLowerCase();
|
|
3349
|
+
const list = o.byFeature.filter(f =>
|
|
3350
|
+
!q || f.label.toLowerCase().includes(q) || f.key.toLowerCase().includes(q)
|
|
3351
|
+
);
|
|
3352
|
+
|
|
3353
|
+
// Global KPI strip (compact)
|
|
3354
|
+
const gNoiseRatio = Math.round(o.metrics.noise_ratio * 100);
|
|
3355
|
+
const gStructPct = Math.round(o.metrics.structured_completeness * 100);
|
|
3356
|
+
const gActionPct = Math.round(o.metrics.error_actionability * 100);
|
|
3357
|
+
const gCoveragePct = Math.round(o.metrics.coverage_of_key_flows * 100);
|
|
3358
|
+
function mc(val, good, warn, inv) {
|
|
3359
|
+
if (inv) return val > warn ? 'var(--red)' : val > good ? 'var(--yellow)' : 'var(--green)';
|
|
3360
|
+
return val < warn ? 'var(--red)' : val < good ? 'var(--yellow)' : 'var(--green)';
|
|
3361
|
+
}
|
|
3362
|
+
|
|
3363
|
+
const globalStrip = `
|
|
3364
|
+
<div class="obs-kpi-strip" style="margin-bottom:16px">
|
|
3365
|
+
<div class="obs-kpi"><span class="obs-kpi-value" style="color:${mc(gNoiseRatio,10,30,true)}">${gNoiseRatio}%</span><span class="obs-kpi-label">Шум</span></div>
|
|
3366
|
+
<div class="obs-kpi"><span class="obs-kpi-value" style="color:${mc(gStructPct,80,50,false)}">${gStructPct}%</span><span class="obs-kpi-label">Структ.</span></div>
|
|
3367
|
+
<div class="obs-kpi"><span class="obs-kpi-value" style="color:${mc(gActionPct,80,50,false)}">${gActionPct}%</span><span class="obs-kpi-label">Actionable</span></div>
|
|
3368
|
+
<div class="obs-kpi"><span class="obs-kpi-value" style="color:${mc(gCoveragePct,80,50,false)}">${gCoveragePct}%</span><span class="obs-kpi-label">Покрытие</span></div>
|
|
3369
|
+
</div>`;
|
|
3370
|
+
|
|
3371
|
+
c.innerHTML = globalStrip + '<div class="features-grid" id="obsGrid"></div>';
|
|
3372
|
+
const grid = document.getElementById('obsGrid');
|
|
3373
|
+
|
|
3374
|
+
list.forEach(f => {
|
|
3375
|
+
const card = document.createElement('div');
|
|
3376
|
+
card.className = 'feature-card';
|
|
3377
|
+
|
|
3378
|
+
// Per-feature baseline
|
|
3379
|
+
const bsKey = String(f.key).replace(/[^a-z0-9_-]/gi, '_');
|
|
3380
|
+
let bl = null;
|
|
3381
|
+
try { bl = JSON.parse(localStorage.getItem('vr_obs_bl_' + bsKey) || 'null'); } catch(e) {}
|
|
3382
|
+
const scoreDelta = bl && bl.score != null && f.score !== bl.score
|
|
3383
|
+
? (() => {
|
|
3384
|
+
const diff = f.score - bl.score;
|
|
3385
|
+
const good = diff > 0;
|
|
3386
|
+
const color = good ? '#3fb950' : '#f85149';
|
|
3387
|
+
const sign = diff > 0 ? '+' : '';
|
|
3388
|
+
return `<span style="color:${color};font-size:11px;font-weight:700;margin-left:4px">(${sign}${diff})</span>`;
|
|
3389
|
+
})() : '';
|
|
3390
|
+
|
|
3391
|
+
// Mini KPI
|
|
3392
|
+
const n = Math.round(f.metrics.noise_ratio * 100);
|
|
3393
|
+
const s = Math.round(f.metrics.structured_completeness * 100);
|
|
3394
|
+
const a = Math.round(f.metrics.error_actionability * 100);
|
|
3395
|
+
const cv = Math.round(f.metrics.coverage_of_key_flows * 100);
|
|
3396
|
+
|
|
3397
|
+
// Issue counts for badges
|
|
3398
|
+
const issues = f.noisyPatternCount + f.missingCriticalCount + f.fieldGapCount;
|
|
3399
|
+
|
|
3400
|
+
card.innerHTML = `
|
|
3401
|
+
<div class="feature-accent" style="background:${f.color}"></div>
|
|
3402
|
+
<div class="feature-body">
|
|
3403
|
+
<div class="feature-title">
|
|
3404
|
+
<span>${escapeHtml(f.label)}</span>
|
|
3405
|
+
<span class="feature-file-count">${f.catalogCount} лог-модулей</span>
|
|
3406
|
+
</div>
|
|
3407
|
+
<div style="display:flex;align-items:center;gap:8px;margin-bottom:10px">
|
|
3408
|
+
<span style="font-size:24px;font-weight:700;line-height:1;color:${covColor(f.score)}">${f.score}%</span>
|
|
3409
|
+
${scoreDelta}
|
|
3410
|
+
<div style="flex:1">
|
|
3411
|
+
<div style="font-size:10px;color:var(--muted);margin-bottom:3px;text-transform:uppercase;letter-spacing:0.4px">Observability Score</div>
|
|
3412
|
+
<div style="height:4px;background:var(--border);border-radius:2px;overflow:hidden">
|
|
3413
|
+
<div style="width:${f.score}%;height:100%;background:${covColor(f.score)};border-radius:2px;transition:width 0.4s"></div>
|
|
3414
|
+
</div>
|
|
3415
|
+
</div>
|
|
3416
|
+
</div>
|
|
3417
|
+
<div style="display:flex;gap:12px;font-size:11px;color:var(--dim);margin-bottom:8px">
|
|
3418
|
+
<span title="Шум">🔇 <span style="color:${mc(n,10,30,true)}">${n}%</span></span>
|
|
3419
|
+
<span title="Структурированность">📋 <span style="color:${mc(s,80,50,false)}">${s}%</span></span>
|
|
3420
|
+
<span title="Actionable ошибки">🎯 <span style="color:${mc(a,80,50,false)}">${a}%</span></span>
|
|
3421
|
+
<span title="Покрытие сценариев">🛡️ <span style="color:${mc(cv,80,50,false)}">${cv}%</span></span>
|
|
3422
|
+
</div>
|
|
3423
|
+
${issues > 0 ? `<div style="font-size:11px;color:var(--muted)">
|
|
3424
|
+
${f.noisyPatternCount ? `<span style="color:var(--red)">${f.noisyPatternCount} шум</span> ` : ''}
|
|
3425
|
+
${f.missingCriticalCount ? `<span style="color:var(--yellow)">${f.missingCriticalCount} без логов</span> ` : ''}
|
|
3426
|
+
${f.failurePointCount ? `<span style="color:var(--yellow)">${f.failurePointCount} точек отказа</span> ` : ''}
|
|
3427
|
+
${f.fieldGapCount ? `<span style="color:var(--muted)">${f.fieldGapCount} пробелов</span>` : ''}
|
|
3428
|
+
</div>` : '<div style="font-size:11px;color:var(--green)">Всё ок</div>'}
|
|
3429
|
+
</div>`;
|
|
3430
|
+
|
|
3431
|
+
card.onclick = () => setFeatureDrill(f.key);
|
|
3432
|
+
card.onmousedown = (e) => { if (e.button === 1) e.preventDefault(); };
|
|
3433
|
+
card.onauxclick = (e) => {
|
|
3434
|
+
if (e.button !== 1) return;
|
|
3435
|
+
e.preventDefault();
|
|
3436
|
+
openFeatureInNewTab(f.key);
|
|
3437
|
+
};
|
|
3438
|
+
grid.appendChild(card);
|
|
3439
|
+
});
|
|
3440
|
+
|
|
3441
|
+
// Unmapped card
|
|
3442
|
+
const unmappedCatalog = o.catalog.filter(ci => !ci.featureKeys || ci.featureKeys.length === 0);
|
|
3443
|
+
if (unmappedCatalog.length > 0) {
|
|
3444
|
+
const uCard = document.createElement('div');
|
|
3445
|
+
uCard.className = 'feature-card unmapped-card';
|
|
3446
|
+
uCard.innerHTML = `
|
|
3447
|
+
<div class="feature-accent" style="background:#e3b341"></div>
|
|
3448
|
+
<div class="feature-body">
|
|
3449
|
+
<div class="feature-title">
|
|
3450
|
+
<span>Unmapped</span>
|
|
3451
|
+
<span class="feature-file-count">${unmappedCatalog.length} лог-модулей</span>
|
|
3452
|
+
</div>
|
|
3453
|
+
<div style="font-size:12px;color:var(--dim);margin-top:4px">Модули с логами, не привязанные к фичам</div>
|
|
3454
|
+
</div>`;
|
|
3455
|
+
uCard.onclick = () => setFeatureDrill('__unmapped__');
|
|
3456
|
+
grid.appendChild(uCard);
|
|
3457
|
+
}
|
|
3458
|
+
}
|
|
3459
|
+
|
|
3142
3460
|
function backToFeatureDetail() {
|
|
3143
3461
|
drillTestType = null;
|
|
3144
3462
|
activePanelKey = null;
|