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
- const sev = rec['severity_level'];
47
- if (typeof sev === 'string' && sev.length > 0) {
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
- const svc = rec['tenx_user_service'];
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":"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"}
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.18",
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",