@kinetica/admin-agent 0.2.0 → 0.2.1
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 +13 -11
- package/dist/admin-agent.js +374 -237
- package/knowledge/references/bundle/support-bundle.md +22 -1
- package/knowledge/references/rank-architecture.md +12 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -241,6 +241,8 @@ A bundle and a live connection are **composable capabilities, not exclusive mode
|
|
|
241
241
|
- **Bundle + live** — when `--bundle` is given, the agent still attempts a best-effort, env-only live connection (no prompts, no exit). If the cluster answers, you get both tool sets and the agent correlates the bundle's frozen history against current live state. If not, it continues bundle-only.
|
|
242
242
|
- **Attach mid-session** — in any live session you can ask the agent to analyze a support bundle. It calls `kinetica_load_bundle` _without a path_, which opens an interactive directory picker for you to select the extracted bundle; the offline tools light up immediately. (If the agent instead proposes a specific path, you're asked to confirm it first — loading a directory lets the agent read files under it.)
|
|
243
243
|
|
|
244
|
+
**Every rank, however its logs were captured.** A bundle can carry per-rank logs in two forms: full rolling logs for the ranks on the collector's own host (`logs-local/`, including rotated history like `….log.1`), and centralized Loki/promtail exports for the entire cluster (`logs/rank0.log` … `rankN.log`, plus `hostmanager.log` and per-component tails). The agent reads both transparently — it identifies each rank from either source, prefers the richer rolling log when a rank has both, and falls back to the centralized export for ranks that live on other hosts. So on a multi-node cluster you can investigate **all** ranks (and the host manager), not just the ones local to where the bundle was collected. The centralized exports are JSON-wrapped on disk; the tools unwrap them automatically, so severity filters and timelines behave identically across both formats. `kinetica_bundle_list_files` reports the true rank count under `ranks_present` — trust it rather than guessing from `logs-local/`.
|
|
245
|
+
|
|
244
246
|
Anthropic authentication still runs in bundle mode; only the interactive Kinetica credential collection is skipped (there may be no live DB to connect to). See [Offline Bundle Analysis](#offline-bundle-analysis-read-only) for the tools, and [CLAUDE.md](CLAUDE.md) for the parser/architecture details.
|
|
245
247
|
|
|
246
248
|
## CLI Flags
|
|
@@ -326,16 +328,16 @@ The `--bundle` flag points the agent at an **extracted** support-bundle director
|
|
|
326
328
|
|
|
327
329
|
### Offline Bundle Analysis (read-only)
|
|
328
330
|
|
|
329
|
-
Available against an extracted `gpudb_sysinfo` support bundle (see [Offline Bundle Mode](#offline-bundle-mode)). All read-only; the search/timeline tools stream and bound their output so a
|
|
331
|
+
Available against an extracted `gpudb_sysinfo` support bundle (see [Offline Bundle Mode](#offline-bundle-mode)). All read-only; the search/timeline tools stream and bound their output so a large rank log (tens of MB, hundreds of thousands of lines) never blows up the context.
|
|
330
332
|
|
|
331
|
-
| Tool | Description
|
|
332
|
-
| ------------------------------ |
|
|
333
|
-
| `kinetica_load_bundle` | Attach an extracted bundle directory; without a path it opens a directory picker (a model-supplied path needs operator confirmation)
|
|
334
|
-
| `kinetica_bundle_list_files` | Inventory: detected version, ranks + services present, file counts/sizes by kind — call this first
|
|
335
|
-
| `kinetica_bundle_log_timeline` | Per-time-bucket severity counts across ranks (the incident shape) — call before searching
|
|
336
|
-
| `kinetica_bundle_search_logs` | Bounded log search by regex, min-severity, time window, and rank / host-manager / component
|
|
337
|
-
| `kinetica_bundle_read_config` | Read the bundle's real on-disk `gpudb.conf`, with optional section/key filter
|
|
338
|
-
| `kinetica_bundle_read_sysinfo` | OS/process/version diagnostic files (memory, CPU, disk, GPU, network, process args)
|
|
333
|
+
| Tool | Description |
|
|
334
|
+
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
335
|
+
| `kinetica_load_bundle` | Attach an extracted bundle directory; without a path it opens a directory picker (a model-supplied path needs operator confirmation) |
|
|
336
|
+
| `kinetica_bundle_list_files` | Inventory: detected version, ranks + services present, file counts/sizes by kind — call this first |
|
|
337
|
+
| `kinetica_bundle_log_timeline` | Per-time-bucket severity counts across ranks (the incident shape) — call before searching |
|
|
338
|
+
| `kinetica_bundle_search_logs` | Bounded log search by regex, min-severity, time window, and rank / host-manager / component (reads both rolling and Loki-export logs) |
|
|
339
|
+
| `kinetica_bundle_read_config` | Read the bundle's real on-disk `gpudb.conf`, with optional section/key filter |
|
|
340
|
+
| `kinetica_bundle_read_sysinfo` | OS/process/version diagnostic files (memory, CPU, disk, GPU, network, process args) |
|
|
339
341
|
|
|
340
342
|
### Reporting
|
|
341
343
|
|
|
@@ -419,13 +421,13 @@ References provide domain knowledge (not diagnostic runbooks). Create a `.md` fi
|
|
|
419
421
|
- `tiered-objects` — `ki_tiered_objects` schema, ID format, diagnostic queries
|
|
420
422
|
- `catalog-enums` — enum value decoders for `ki_catalog` integer columns
|
|
421
423
|
- `catalog-joins` — safe join paths between `ki_catalog` tables (oid compatibility, naming caveats)
|
|
422
|
-
- `rank-architecture` — rank 0 vs worker ranks, head-node resource profile, shard ownership
|
|
424
|
+
- `rank-architecture` — rank 0 vs worker ranks, head-node resource profile, shard ownership, and where queries are logged (rank 0 only — crash forensics)
|
|
423
425
|
- `mutation-safety` — pre-execution checklist for rebalance, alter-config, and DDL paths
|
|
424
426
|
- `sql-alter-table` — Kinetica 7.2 ALTER TABLE grammar, column property flags, shard-key immutability
|
|
425
427
|
- `sql-create-index` — column index syntax, chunk skip index, when to use which
|
|
426
428
|
- `version-quirks-7.2` — endpoint/property differences between 7.2.x and earlier releases
|
|
427
429
|
|
|
428
|
-
Plus a **bundle-scoped reference** (`support-bundle` — bundle layout, log-line
|
|
430
|
+
Plus a **bundle-scoped reference** (`support-bundle` — bundle layout, the two per-rank log families, raw + Loki-JSONL log-line formats, severity ordering, file parsing, crash-SQL forensics) that lives in `knowledge/references/bundle/`. It loads in **every** session — even a pure live one — so that a bundle attached mid-session via `kinetica_load_bundle` has its parsing knowledge ready in the (build-once) prompt; the corpus is cached, so the cost to a session that never attaches a bundle is negligible.
|
|
429
431
|
|
|
430
432
|
> **Heads up — prompt budget:** all playbooks and references are front-loaded into a single system prompt at startup, so its token cost grows with the knowledge corpus. A startup tripwire (`agent/prompt-budget.ts`) prints the assembled prompt size under `DEBUG` and warns on stderr once it exceeds ~20,000 estimated tokens. Current baseline is ~13.4k tokens (6 playbooks + 9 references). If you add substantial knowledge and trip that warning, treat it as the cue to switch from "load everything" to keyword-based playbook selection.
|
|
431
433
|
|