Identify the dashboard implementation and observation window
Sangoma documents System Status as a Reports surface for active calls and trunks, CPU, memory, disks, network, selected services and uptime. The same page spans older 2.10/2.11 and FreePBX 12+ interface generations, so its labels and screenshots are conceptual evidence rather than an exact map of every FreePBX 17 build. Record the PBX node, FreePBX and Dashboard module versions, signature and enabled state, browser time, selected graph interval and last refresh before interpreting a card.
The reviewed release/17.0 metadata identified System Dashboard 17.0.5, standard-repository placement, FreePBX 17 support and a security-related changelog entry. Repository state does not prove that version is installed or that an uninspected host is affected or repaired. Compare the installed signed package with the current supported channel through normal Module Admin controls.
Treat every card as a separate provider and evidence contract
The release/17.0 module class exposes built-in hooks for overview, notifications, system statistics, Asterisk statistics, uptime and other sections, and can accept dashboard sections from other modules. Disk content can also come from System Admin when its dashboard method is available. A page that renders successfully therefore does not prove that every card used the same source, refresh path or timestamp.
Record the card name, contributing module, query or collector, timestamp, node and transformation. A blank disk panel can be a provider or permission failure while call counters still render. A firewall warning can be intentionally suppressed by a dashboard setting without changing firewall state. Do not turn one green card into a system-wide health statement.
Keep call, trunk and channel aggregates distinct
A dashboard count is an aggregate selected by its implementation. Preserve the exact label and compare it with the owning Asterisk objects at the same time. One call can involve multiple channels, a trunk can be configured without being registered or usable, and registration does not prove number routing, authorization, answer or media.
Use Asterisk Info, the installed CLI, CDR or CEL, queue evidence and signaling only for the question they own. A zero counter does not prove there were no historical calls, and a nonzero counter does not identify a caller, destination, bridge or media result. Capacity and quality require separate measurements.
Read refresh, cache and persistent history before comparing graphs
The FreePBX 17 source defines a minimum system-statistics expiry of 50 seconds, uses cached latest system information and schedules collection work each minute when collection is enabled. It also defines a setting that can disable persistent CPU, memory and channel-statistic collection and keeps a bounded history in the reviewed implementation. These are source behaviors to verify locally, not universal guarantees for every installed revision.
Compare browser refresh time, cache timestamp, collector run, host clock, graph interval and raw source interval. Network units on the older System Status page are KiloBYTES rather than Kilobits. Never compare unlike units or a minute sample with a daily aggregate and call the difference a fault.
Separate notifications and process labels from service acceptance
Dashboard overview and notification cards can summarize module-supplied notices, process state and service warnings. A notice can be dismissed, reset, suppressed or stale without repairing or breaking its underlying condition. Likewise, an Asterisk, web, database or SSH process label does not establish correct configuration, safe exposure, successful authentication or user-visible service.
Preserve the raw notice identity and owning module, then verify the underlying filesystem, process, listener, database, module, queue or route through its supported surface. Do not delete a notice, restart a service or broaden a network listener merely to make the dashboard appear healthy.
Accept dashboard evidence and PBX service independently
A bounded acceptance test records an idle baseline, one approved workload, the exact dashboard changes and the owning runtime evidence in the same window. For disk questions, the documented Dashboard GraphQL query can return storage path, available, used, total and percentage values, but an API response is not proof of filesystem write success, alert delivery or future capacity.
Retest the dashboard provider after any supported module or collector repair, then test the required PBX function separately: registration, routing, queue behavior, recording, voicemail, two-way media or administrative access. No dashboard, alert, process, resource, GraphQL, call or media result is claimed from this documentation review.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Sangoma FreePBX System Status ↗
- Sangoma FreePBX Reports modules ↗
- FreePBX System Dashboard release/17.0 source ↗
- FreePBX System Dashboard release/17.0 module metadata ↗
- FreePBX System Dashboard release/17.0 module class ↗
- Sangoma Dashboard module GraphQL API ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.