Commit graph

235 commits

Author SHA1 Message Date
rcourtman
072ca71e7c Use checked Proxmox replication parsing 2026-04-01 16:18:02 +01:00
rcourtman
030fc20cd6 Harden Proxmox integer parsing bounds 2026-04-01 14:51:00 +01:00
rcourtman
4e16f35347 Defer metrics store startup maintenance 2026-04-01 13:29:39 +01:00
rcourtman
c5f5af7abf Forward-port Proxmox monitoring fixes from v5 2026-04-01 11:51:19 +01:00
rcourtman
a3f99a271b Curate demo-facing mock data across platform views 2026-03-31 18:05:55 +01:00
rcourtman
2fdf0e16c8 Support enterprise mobile approval proof backend 2026-03-29 21:52:18 +01:00
rcourtman
74b78ebd2f Pin discovery HTTP probes to captured TLS peers 2026-03-29 19:32:56 +01:00
rcourtman
bf4820733e Canonicalize metrics store database paths 2026-03-29 15:35:49 +01:00
rcourtman
f1fc17e627 Canonicalize fixed alerts and licensing paths 2026-03-29 14:14:36 +01:00
rcourtman
72559f737b Harden Proxmox numeric parsing bounds 2026-03-29 13:44:46 +01:00
rcourtman
9ac8048acd Harden email delivery and TLS probing 2026-03-29 13:02:36 +01:00
rcourtman
d6536932fc Harden outbound URLs and file-backed storage 2026-03-29 12:47:55 +01:00
rcourtman
234f2a585f privacy(telemetry): add preview and reset controls 2026-03-28 23:13:43 +00:00
rcourtman
be5982dcae privacy(telemetry): reduce commercial detail 2026-03-28 22:46:32 +00:00
rcourtman
c19b06d1f4 fix(telemetry): aggregate tenant snapshots 2026-03-28 22:31:33 +00:00
rcourtman
893d003c0a Merge origin/pulse/v6-release and fix reconciled API regressions 2026-03-28 21:14:54 +00:00
rcourtman
27507a47ad perf(metrics): keep downsampled series ordered 2026-03-27 12:16:31 +00:00
Richard Courtman
57a3f19a84 fix(hosted): preserve direct handoff membership continuity 2026-03-26 23:40:02 +00:00
rcourtman
48dc1a997d Exclude placeholder capabilities from dev entitlements 2026-03-26 22:45:07 +00:00
rcourtman
94330b6787 Bound dev entitlements to runtime-enabled features 2026-03-26 22:38:29 +00:00
rcourtman
b9dc003712 Align dev entitlements with feature gates 2026-03-26 22:19:15 +00:00
Richard Courtman
257dd55f12 perf(metrics): stream downsampled batch aggregation 2026-03-26 17:59:41 +00:00
Richard Courtman
dbd470398a perf(metrics): reduce downsampled batch query tail latency 2026-03-26 17:37:25 +00:00
rcourtman
b90fdc7e2c test(metrics): rebaseline github actions slo budgets 2026-03-26 13:51:08 +00:00
rcourtman
6dcfca9831 Canonicalize reporting single-file fallback subject 2026-03-26 09:31:32 +00:00
rcourtman
1886f7fca4 Canonicalize reporting fallback filename date style 2026-03-26 09:28:17 +00:00
rcourtman
a490ba2b7e Canonicalize reporting transport filenames and format errors 2026-03-26 09:15:15 +00:00
rcourtman
78ba7dcc2a Move reporting guidance into catalog 2026-03-25 23:47:00 +00:00
rcourtman
445c2d49ef Remove redundant inventory definition route 2026-03-25 23:40:22 +00:00
rcourtman
51067ed034 Move reporting locked copy into catalog 2026-03-25 23:28:26 +00:00
rcourtman
3d85fde176 Drive reporting default ranges from catalog 2026-03-25 22:56:20 +00:00
rcourtman
3a7a39996d Canonicalize reporting handler contract 2026-03-25 22:54:14 +00:00
rcourtman
7728b352c0 Canonicalize reporting settings catalog 2026-03-25 22:27:35 +00:00
rcourtman
bb6571fd20 Define VM inventory export schema contract 2026-03-25 22:09:37 +00:00
rcourtman
2b93a08558 Carry Proxmox pool membership into VM inventory export 2026-03-25 21:58:46 +00:00
rcourtman
b0e76b00ae Add canonical VM inventory export surface 2026-03-25 21:26:25 +00:00
rcourtman
00a3817d9e fix(hosted): normalize AI defaults and seed quickstart credits 2026-03-25 15:22:17 +00:00
rcourtman
778a2577b6 feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
rcourtman
3a02dd171b fix(proxmox): add GetClusterOptions to ClusterClient for tag colour fetch 2026-03-15 19:51:20 +00:00
rcourtman
caff845c1a fix(ui): use Proxmox tag colours from datacenter config
Pulse was generating tag colours from a hash of the tag name instead
of using the colours configured in Proxmox. Now polls /cluster/options
once per PVE instance and merges the tag-style colour map into state,
which the frontend uses as the first-priority colour source for tag
badges. Falls back to the existing special-tag and hash-based colours
when Proxmox hasn't set a custom colour for a tag.
2026-03-15 19:49:46 +00:00
rcourtman
499ab812e3 Fix post-release regressions and lock v5 to single-tenant runtime 2026-03-05 23:46:35 +00:00
rcourtman
ac83074fc2 fix(hostmetrics): skip network mounts before usage probe (#1313) 2026-03-03 20:27:41 +00:00
rcourtman
adad2bbd1c fix(server): fail fast on frontend bind errors 2026-03-03 15:43:22 +00:00
rcourtman
b38488f2da fix(proxmox): stabilize pulse monitor token lifecycle 2026-03-03 10:57:19 +00:00
rcourtman
0ae2806f18 fix(memory): add guest agent /proc/meminfo fallback to avoid VM memory inflation (#1270)
Proxmox status.Mem includes page cache as "used" memory, inflating
reported VM usage. The existing fallbacks (balloon meminfo, RRD, linked
host agent) were frequently unavailable, causing most VMs to fall
through to the inflated status-mem source.

Adds a new last-resort fallback that reads /proc/meminfo via the QEMU
guest agent file-read endpoint to get accurate MemAvailable. Results
are cached (60s positive, 5min negative backoff for unsupported VMs).

Also fixes: RRD memavailable fallback missing from traditional polling
path, cache key collisions in multi-PVE setups, FreeMem underflow
guard inconsistency, and integer overflow in kB-to-bytes conversion.
2026-02-20 13:31:52 +00:00
rcourtman
8c7d507ea4 fix(alerts): make --disk-exclude suppress Proxmox SSD wear/health alerts (#1142)
The --disk-exclude agent flag only filtered local metric collection but
had no effect on server-side Proxmox disk health and SSD wearout alerts,
which poll the Proxmox API directly. Users excluding disks (e.g.
--disk-exclude sda) still received alerts for those disks.

Agent now sends its DiskExclude patterns in each report. The server
stores them on the Host model and consults them during Proxmox disk
polling — excluded disks get a synthetic healthy status passed to
CheckDiskHealth so any existing alerts clear immediately.

Also adds FreeBSD pseudo-filesystem types (fdescfs, devfs, linprocfs,
linsysfs) to the virtual FS filter and /var/run/ to special mount
prefixes, fixing false disk-full alerts on FreeBSD for fdescfs mounts.
2026-02-20 13:31:52 +00:00
rcourtman
74d46807d8 fix(test): update /var/lib/docker fsfilter expectation to match new skip=false behavior
(cherry picked from commit 6671a0d5a654ef8d0b023bd610e5c2fd5fedbf8b)
2026-02-18 12:59:23 +00:00
rcourtman
a54d71117b fix(proxmox): prevent guest agent errors from marking endpoints unhealthy
Backport of v6 commits a87c9950 and 347d7db1.

Part 1 (a87c9950): Wrap the four guest agent c.get() errors with
fmt.Errorf("guest agent ...: %w", err) so isVMSpecificError() correctly
scopes them to the VM rather than the cluster endpoint.

Part 2 (347d7db1): Replace the 20+ pattern blocklist in
executeWithFailover with an allowlist via isEndpointConnectivityError().
Only true TCP/DNS/TLS failures mark an endpoint unhealthy. Any HTTP
response from Proxmox — including 500 — proves the node is reachable
and returns the error without affecting endpoint health.
2026-02-18 12:59:20 +00:00
rcourtman
a69a2061cb fix(ui,disk): remove double 'ago' suffix and allow /var/lib/docker block devices (#1266, #1143)
#1266: ageFormatted already includes 'ago' from formatTimeDiff(); remove the
duplicate literal suffix from the backup age tooltip in GuestRow.tsx.

#1143: Remove /var/lib/docker from specialMountPrefixes so real block devices
mounted there are visible in disk usage. Container overlay layers (fstype=overlay)
are already filtered by virtualFSTypes and are unaffected.

(cherry picked from commit 5acef3405d4288f627788675123e266d661c2fe3)
2026-02-18 12:56:58 +00:00
rcourtman
efa916ee2a fix(memory): correct memory reporting for Linux VMs and FreeBSD ZFS ARC
Linux VM page cache (#1270): QEMU VM memory now falls back to Proxmox
RRD's memavailable metric (which excludes reclaimable page cache) when
the qemu-guest-agent doesn't provide MemInfo.Available. Previously the
fallback was detailedStatus.Mem (total - MemFree), inflating usage to
80%+ on VMs with normal Linux page cache. Mirrors the existing LXC
rrd-memavailable path.

FreeBSD ZFS ARC (#1264, #1051): The host agent now reads
kstat.zfs.misc.arcstats.size via SysctlRaw on FreeBSD and subtracts
the ARC size from reported memory usage. ZFS ARC is reclaimable under
memory pressure (like Linux SReclaimable) but gopsutil counts it as
wired/non-reclaimable, causing false 90%+ memory alerts on TrueNAS
and FreeBSD hosts. Build-tagged so it compiles cleanly on all platforms.

Fixes #1270
Fixes #1264
Fixes #1051

(cherry picked from commit 94502f83ff9ffc6da28aaadc946a2f7d8b4e9bac)
2026-02-18 12:56:53 +00:00