Victorialogs
VictoriaLogs query API — run LogsQL queries, field/stream stats, and hits over time.
Model:
@magistr/victorialogs— query a VictoriaLogs HTTP endpoint with LogsQL. Methods:query(matching entries),stats(aggregations via a| statspipe),container-log-status(compare running Docker containers against those actually logging to detect broken pipelines),error-summary(group error/fatal/panic/OOM lines by container), andcompare-periods(diff log volume between a baseline and a comparison window to spot services that went silent).
Global Arguments
| Argument | Type | Description |
|---|---|---|
| host | string | VictoriaLogs host (IP or hostname) |
| port | number | VictoriaLogs HTTP port |
Resources
2026.08.01.1
Two HIGH monitoring blind-spots (both false all-clears/storms) are now FIXED,
plus a trivial same-method sort fold-in. Tracked end-to-end in the LOCAL
victorialogs-false-allclear-bugs issue-lifecycle model — never a Lab issue,
since this is a @magistr/* extension.
- P4 — ssh failure swallowed as a false all-clear (HIGH), FIXED —
getRunningContainersnever checked the ssh subprocess'soutput.success; an ssh FAILURE (e.g. connection refused, host key mismatch) yielded empty stdout, which was decoded unconditionally intorunning = [], socontainer-log-statusreportednotLogging: []— identical to "every running container is logging" even though the check never actually ran. Fixed by checkingoutput.successand throwing a distinct ssh-failure error carrying the HOST and EXIT CODE only — never raw stderr, which can leak internal topology (host-key/gateway names). - P6 — compare-periods empty-window/NaN alarm storm (HIGH), FIXED —
compare-periodshad no guard for an empty baseline or comparison window: an empty baseline classified every container asNEW, an empty comparison window classified every container asGONE(a fleet-wide false-alarm storm). Separately,parseInt(e.total)with no radix silently producedNaNfor a garbledtotalvalue, which the|| 0fallback collapsed to 0 — masking what should read as "this container had SOME volume" and silently landing a real disappearance onNORMALinstead of an alertableGONE. Fixed by throwing distinct errors when either window is empty (checked immediately after thePromise.allfetch, so both fetches still complete before either guard fires) and by detectingNumber.isNaNat the baseline/comparison map ingest (now with explicit radix 10) and throwing instead of silently collapsing to 0. - P13 — sort comparator falsy-collapse (fold-in, same method/bug class) —
the
compare-periodssort comparator's(order[a.status] || 9) - (order[b.status] || 9)treatedGONE's priority value of0as falsy, collapsing it to the unmapped-status fallback of9— the most urgent alert (a service went silent) sorted LAST instead of first. Found during the wave-2b review, outside the original P4/P6 scope but trivial and on the same edited lines; fixed by switching to?? 9(nullish coalescing), which only substitutes onnull/undefined, not on0.
model.version(extensions/models/victorialogs.ts) andmanifest.yamlboth bump to2026.08.01.1, in sync.- Flipped ~15 characterization pins across the three affected suites
(
victorialogs_methods_test.ts,victorialogs_adversarial_test.ts,victorialogs_coverage_test.ts,victorialogs_property_test.ts) from pinning the buggy behavior to asserting the fixed rejection/ordering; constrained the property suite's non-degeneratearbWindowtominKeys: 1and fed the methods suite's default-window test non-empty bodies so neither trips the new empty-window guard. Every other pin (P1/P2/P3/P5/P7/P8/P9/ P10/P11/P12, and all legit-path happy/failure characterizations) is unchanged.
Release 2026.07.16.2 — align model versions with manifests
Maintenance release across the @magistr extensions. For most packages this
carries no functional change: the only edit is the model's version: field,
brought back in line with its manifest version so the published model type
version and the package version no longer drift.
Functional changes in this release are limited to:
anime-cron: normalizeTitle now strips a ": subtitle" suffix and a trailing parenthesized year before comparison, fixing dedup false-misses where the torrent title carries a subtitle or year that the AniList romaji does not.
arckit: first publish. Standalone ArcKit port — a 12-phase architecture governance state machine with 65 bundled templates, driven by a bundled skill.
Also tracks three extensions (kaiten, observability-agent, music-library) that previously existed only as untracked working-tree directories, recovered from stashes.
Added 1 models
Merge pull request #5 from umag/extensions/jscad-stl-pair
extensions: add 15 more @magistr extensions + auto-discover CI
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned