Files
pulse/docs
rcourtman c4bef05354 Give agent disk, array and sensor alerts their own resource type (#2583)
## Why

Alerts a host agent raises about something other than its own machine
(filesystems, disk temperatures, SMART disks, RAID and Unraid arrays,
custom sensors) carried the host's `resourceType: agent`. The alert
card's Monitoring menu writes policy to the alert's child resource id
(for example `agent:<host>/disk:sda`), yet it named the Pulse agent as
the inventory owner, which is the copy meant for the agent's own
machine. Follow-up to #2574, whose card logic gives agent-platform
children the neutral copy once their producers say what they are.

## What

- `internal/alerts/host.go`: every host alert stamps `platformType:
agent`. Child alerts carry `agent-disk` (filesystem usage, disk
temperature, SMART health and wearout), `agent-storage` (RAID, Unraid
array) or `agent-sensor` (custom sensors). The machine's own CPU, memory
and offline alerts keep `agent`.
- `internal/alerts/config/identity.go`: `agent-storage` and
`agent-sensor` keep `agent` among their policy keys, as `agent-disk`
already did, so agent thresholds and switches still govern them.
- `internal/alerts/config_runtime.go`: configuration re-evaluation stops
at the agent branch for host-agent alerts. Before, a SMART, RAID or
sensor alert fell through to the guest switch, so disabling guest alerts
resolved it on save and the next agent report raised and notified it
again.
- `internal/alerts/canonical_metric.go`: a metric alert held between its
clear and trigger thresholds now refreshes `resourceType` and
`platformType` from its producer, so an alert restored from a checkpoint
written before these keys existed stops linking to the wrong page.
Value, message and last-seen time still stay at the last breach.

Webhook payloads report the new `resource_type` values for these alerts.

## Verification

- `TestHostChildAlertsNameTheirOwnResourceType`,
`TestHostChildAlertsIgnoreOtherPlatformSwitchesOnConfigSave` and
`TestAlertCharacterizationHeldMetricAlertRefreshesItsClassification`
fail on the previous code and pass now.
`TestHostChildAlertsSurviveProxmoxNodeCleanup` guards the Proxmox node
sweep, which keeps these alerts by their `agent:` resource id. `go test
./internal/alerts/...` passes.
- Private mock stack, with before and after binaries on one data
directory. A local-only overlay gave mock agents SMART, RAID, Unraid and
custom-sensor readings and ran `CheckHost`. Before: every child alert's
Monitoring menu read "Pulse agent remains the inventory owner". After:
the host's memory alert still does, while the filesystem, SMART, RAID,
sensor and Unraid alerts read "Source system remains the inventory
owner", and all still link to `/standalone/machines`. Muting from the
SMART card wrote operator state for `agent:host-linux-1/disk:sda` and
left `agent:host-linux-1` unconfigured.
- Restore path: a filesystem alert fired at 60%, held at 40%, and was
saved by the old binary as `agent` with no platform. The new binary
restored it, and after one evaluation it read `agent-disk` / `agent`,
with its value, `lastSeen` and `diskUsagePercent` unchanged.
2026-10-06 17:30:19 +01:00
..
2026-10-05 21:53:41 +01:00
…
2026-10-05 21:53:41 +01:00
2026-10-05 21:53:41 +01:00

Pulse documentation

Start here for installation, platform setup, security, operations, and Pulse Intelligence. Commands, configuration keys, image names, API fields, and product identifiers remain untranslated in localized guides.

Start here

  • Install Pulse — signed Proxmox/Linux installation, Docker, Docker Compose, Kubernetes, and first-run setup.
  • Production deployment and security — least-privilege Proxmox setup, root-agent boundaries, discovery, supply-chain verification, plan limits, scale evidence, and a rollout checklist.
  • Upgrade from Pulse v5 — migration prerequisites, rollback, agent continuity, and post-upgrade checks.
  • Releases and update channels: choosing Stable or Preview, beta and RC expectations, and how releases are tested and promoted.
  • Configure Pulse — authentication, notifications, discovery, retention, and system settings.
  • Deployment models — data locations, lifecycle, and differences between supported deployment paths.
  • Troubleshooting and FAQ — common failures, diagnostics, and operator questions.

Localized getting started guides: Deutsch · Español

Platforms and agents

VMware vSphere support is early access. Current builds expose dedicated vSphere inventory and recovery context, but operators should validate the integration against their own vCenter before production use.

Monitoring and operations

Pulse Intelligence

Patrol watch-only analysis is available on Community with a local model or the operator's own provider. Investigation and governed fixes require the relevant Pulse Pro capabilities.

Security, privacy, and access

Plans and managed access

Pulse Cloud is not generally available. Ordinary self-hosted Pulse remains the primary installation path; MSP and Enterprise access are explicit commercial paths rather than defaults in self-hosted setup.

Development and reference

Detailed design notes and dated migration specifications may remain in this directory for maintainers, but they are not operator setup guides unless they are linked from the sections above.

Previous versions and migrations

Found a bug? Use the issue forms. For setup questions, use GitHub Discussions.