{% extends "base.html" %} {% block title %}Device health snapshots · SD RMM{% endblock %} {% block content %}

Device health snapshots

How is {% if sel %}{{ sel.name }}{% else %}the estate{% endif %} actually doing? Disk and memory pressure, sustained CPU, offline devices, patch aging, reboot-pending and agent-version drift — all from the agents' own heartbeat telemetry.

Export CSV Computers ›

Devices: summary

{% set ok_pc = (summary.ok / summary.total * 100) if summary.total else 0 %} {% set warn_pc = (summary.warn / summary.total * 100) if summary.total else 0 %}
{{ summary.total }}devices
  • Good health {{ summary.ok }}
  • Warning {{ summary.warn }}
  • Critical {{ summary.crit }}
  • Offline now {{ summary.offline }}

What exactly is wrong

{% for label, n, sev in buckets %}
{{ n }}
{{ label }}
{% endfor %}
Thresholds: disk >{{ thresholds.disk[1] }}% critical / >{{ thresholds.disk[0] }}% warning · memory >{{ thresholds.ram[1] }}% · sustained CPU >{{ thresholds.cpu[1] }}%
{% for r in rows %} {% else %} {% endfor %}
Device Organization Last active Disk Memory (24h avg) CPU (24h avg) Patching Agent Issues
{{ r.agent.hostname }}
{{ r.agent.os }}{% if r.agent.os_version %} · {{ r.agent.os_version }}{% endif %}
{{ r.org }} {% if r.online %}● Online {% elif r.age_s is none %}Never {% elif r.age_s > 86400 %}{{ (r.age_s // 86400) }}d ago {% elif r.age_s > 3600 %}{{ (r.age_s // 3600) }}h ago {% else %}{{ (r.age_s // 60) }}m ago{% endif %} {% if r.disk is not none %} {{ r.disk }}% {% if r.disk_free_gb is not none %}
{{ r.disk_free_gb }} GB free
{% endif %} {% else %}{% endif %}
{% set rv = r.ram_avg if r.ram_avg is not none else r.ram %} {% if rv is not none %} {{ rv }}% {% if r.ram_used_mb %}
{{ (r.ram_used_mb / 1024)|round(1) }} GB used now
{% endif %} {% else %}{% endif %}
{% if r.cpu_avg is not none %} {{ r.cpu_avg }}%
peak {{ r.cpu_max }}% · {{ r.samples24 }} samples
{% else %}no 24h data{% endif %}
{% if r.sec_pending is none %}never scanned {% else %} {{ r.sec_pending }} sec {% if r.avail_pending %} / {{ r.avail_pending }} total{% endif %}
{% if r.patch_age_d is not none %}scanned {{ r.patch_age_d }}d ago{% endif %} {% if r.reboot %} · reboot pending{% endif %}
{% endif %}
{{ r.version }} {% if r.drift %}
latest {{ r.latest }}
{% endif %}
{% if r.issues %}{% for sev, text in r.issues %}{{ text }}{% endfor %} {% else %}{% endif %}
No devices are reporting for this organization yet. Deploy an agent ›
{{ rows|length }} of {{ summary.total }} devices · snapshot taken {{ now| pt('%b %d, %H:%M') }}

What this view can and cannot see. Every number above comes from the agent heartbeat (agent_metrics: CPU, memory, disk, free space) and the patch scanner (patch_status). The platform has no disk-encryption status, no third-party AV engine state, no host firewall posture and no boot-time/uptime counter, so those are deliberately absent rather than shown as green. “24h avg” is the mean of every heartbeat in the last 24 hours; a device with few samples has been offline for part of that window.

{% endblock %}