log10x-mcp 1.12.18 → 1.12.19
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.
|
@@ -43,11 +43,6 @@ export interface SummaryRollups {
|
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
export type RollupBasis = 'qrs_summaries' | 'events_capped' | 'mixed';
|
|
46
|
-
/**
|
|
47
|
-
* Multi-dimension reducer over summary rows: each dimension independently
|
|
48
|
-
* sums `summaryVolume`. (Distinct from retriever-series' single-group_by
|
|
49
|
-
* aggregation — this produces the three flat maps the query envelope needs.)
|
|
50
|
-
*/
|
|
51
46
|
export declare function computeSummaryRollups(summaries: readonly RetrieverSummary[]): SummaryRollups;
|
|
52
47
|
export interface RollupSelection {
|
|
53
48
|
by_severity: Record<string, number>;
|
|
@@ -28,6 +28,28 @@
|
|
|
28
28
|
* sums `summaryVolume`. (Distinct from retriever-series' single-group_by
|
|
29
29
|
* aggregation — this produces the three flat maps the query envelope needs.)
|
|
30
30
|
*/
|
|
31
|
+
/**
|
|
32
|
+
* Normalize a qrs/ summary dimension value to a single bucket key. The engine
|
|
33
|
+
* emits these fields as arrays (multi-value groups are possible); take the
|
|
34
|
+
* first non-empty element. Empty array / empty string / absent value all map
|
|
35
|
+
* to 'unknown' — matching the event-derived rollups' `|| 'unknown'` convention.
|
|
36
|
+
*/
|
|
37
|
+
function normalizeDim(v) {
|
|
38
|
+
if (Array.isArray(v)) {
|
|
39
|
+
for (const el of v) {
|
|
40
|
+
if (typeof el === 'string' && el.length > 0)
|
|
41
|
+
return el;
|
|
42
|
+
if (typeof el === 'number')
|
|
43
|
+
return String(el);
|
|
44
|
+
}
|
|
45
|
+
return 'unknown';
|
|
46
|
+
}
|
|
47
|
+
if (typeof v === 'string' && v.length > 0)
|
|
48
|
+
return v;
|
|
49
|
+
if (typeof v === 'number')
|
|
50
|
+
return String(v);
|
|
51
|
+
return 'unknown';
|
|
52
|
+
}
|
|
31
53
|
export function computeSummaryRollups(summaries) {
|
|
32
54
|
const by_severity = {};
|
|
33
55
|
const by_service = {};
|
|
@@ -43,19 +65,23 @@ export function computeSummaryRollups(summaries) {
|
|
|
43
65
|
total_volume += vol;
|
|
44
66
|
total_bytes += Number.isFinite(row.summaryBytes) ? row.summaryBytes : 0;
|
|
45
67
|
const rec = row;
|
|
46
|
-
|
|
47
|
-
|
|
68
|
+
// The engine emits enrichment dimensions as ARRAYS in the qrs/ rows
|
|
69
|
+
// (e.g. severity_level:["DEBUG"], tenx_user_service:[]) — verified live
|
|
70
|
+
// on the otel-demo. Coverage = the deployment REGISTERED the dimension
|
|
71
|
+
// (the key is present on the row), independent of whether this group's
|
|
72
|
+
// value is empty; an empty value buckets as 'unknown', exactly as the
|
|
73
|
+
// event-derived path does, so the two bases stay consistent.
|
|
74
|
+
if ('severity_level' in rec) {
|
|
48
75
|
sawSeverity = true;
|
|
76
|
+
const sev = normalizeDim(rec['severity_level']);
|
|
49
77
|
by_severity[sev] = (by_severity[sev] ?? 0) + vol;
|
|
50
78
|
}
|
|
51
79
|
else {
|
|
52
|
-
// Field-absent rows bucket as 'unknown' so the map sums to
|
|
53
|
-
// total_volume, matching the event-path convention.
|
|
54
80
|
by_severity['unknown'] = (by_severity['unknown'] ?? 0) + vol;
|
|
55
81
|
}
|
|
56
|
-
|
|
57
|
-
if (typeof svc === 'string' && svc.length > 0) {
|
|
82
|
+
if ('tenx_user_service' in rec) {
|
|
58
83
|
sawService = true;
|
|
84
|
+
const svc = normalizeDim(rec['tenx_user_service']);
|
|
59
85
|
by_service[svc] = (by_service[svc] ?? 0) + vol;
|
|
60
86
|
}
|
|
61
87
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retriever-rollups.js","sourceRoot":"","sources":["../../src/lib/retriever-rollups.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAsBH;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAsC;IAC1E,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,GAAG,IAAI,CAAC;YAAE,SAAS;QACvB,YAAY,IAAI,GAAG,CAAC;QACpB,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAExE,MAAM,GAAG,GAAG,GAAyC,CAAC;QACtD,
|
|
1
|
+
{"version":3,"file":"retriever-rollups.js","sourceRoot":"","sources":["../../src/lib/retriever-rollups.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "log10x-mcp",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.19",
|
|
4
4
|
"description": "Log10x MCP Server — per-pattern log cost attribution, root-cause investigation, pasted-batch triage, archive query/backfill, and cross-pillar correlation against customer metric backends (Grafana Cloud, Mimir, Thanos, AMP) with structural validation that refuses when it cannot prove linkage",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|