Advanced Features
5 minute read
Prometheus Metrics
The management platform exposes a Prometheus-compatible metrics endpoint at /metrics for integration with monitoring systems. The endpoint requires authentication via HTTP Basic Auth or a Bearer token.
curl -k -u metrics:<password> https://<board-ip>/metrics
Available Metrics
| Category | Metrics |
|---|---|
| Board identity | Serial number, type, firmware version, board name |
| System health | CPU temperature, memory usage, uptime, load average |
| PoE ports | Total power draw, port count by state (delivering, searching, disabled, fault) |
| SSE clients | Number of connected dashboard sessions |
| Fleet | Total boards, online count |
| Go runtime | Goroutines, memory allocation, garbage collection |
Grafana Integration
Point your Prometheus server at https://<board-ip>/metrics. Grafana, or any other tool that reads Prometheus, can chart the metrics. Add one scrape target per board in your Prometheus configuration:
scrape_configs:
- job_name: 'exaviz'
scheme: https
tls_config:
insecure_skip_verify: true # for self-signed certs
basic_auth:
username: metrics
password: <your-metrics-password>
static_configs:
- targets: ['10.0.1.41', '10.0.1.42']
The basic_auth credentials must match the metrics section in the board’s configuration file. See the Deployment Guide for configuration details.
Storage
The dashboard has a Storage page for the data drives mounted under /mnt/data* (header
⋮ menu → Storage, or open #storage after you sign in). It shows how full each drive is
and the files in each folder with name, size and date. It does not show the rest of the board
filesystem. Click a folder to open it and a file to download it.
You can also upload one file at a time into the open folder and delete single files:
- Both need your dashboard login with a password that is no longer the factory default.
- An upload can be up to 1 GB, must leave at least 1% of the drive free, and never replaces an existing file. Delete the old file first.
- Delete asks you to confirm and removes one file. Folders and links are not deleted here.
- Every upload, delete, folder opened and file downloaded is recorded in the activity log.
Upload and delete are on by default. To turn them off on a board, set storage.write_enabled to
false in /etc/exaviz/management.json and restart the management service. Browsing and
downloading keep working. A drive mounted after boot appears the next time you open Storage.
The separate file manager that older releases shipped (the Files item) was removed. The
upgrade turns its service off. The link #files now opens Storage.
Typical uses on data volumes:
- NVR recordings and camera exports
- Backups and large media you store on SATA/NVMe data drives
Service Management
The Services panel shows the status of the board’s key systemd services - the management dashboard, kiosk display, HDMI console, SSH, and networking - and lets you control the ones that are safe to manage.
| Status | Meaning |
|---|---|
| running (green) | The service is healthy. |
| failed (red) | The service has failed and an alert is raised. |
| failing (N) (red) | The service is crash-looping - systemd keeps restarting it but it keeps exiting. Check journalctl -u <service> on the board. |
| not installed | The service is not present on this board (for example, kiosk on a headless Interceptor). |
Each managed, installed service has Start, Stop, and Restart buttons:
- Start starts the service and enables it on boot.
- Stop stops the service and disables it on boot. Stop requires an explicit confirmation so an accidental click cannot black-hole the kiosk.
- Restart restarts the service only. A service that is currently disabled stays disabled after a Restart - click Start to make it come back on the next reboot.
The management dashboard, SSH, networking, and any systemd-* units are protected and render
read-only. They cannot be stopped from the dashboard, because doing so could cut off access to
the board. This protection cannot be widened or removed by OEM branding.
Every service action is recorded in the audit log, including actions that are rejected.
HDMI Console (TTY Mode)
The exaviz-console service provides a real-time status display on a monitor connected via HDMI. It shows:
- Board identity (serial, type, firmware version)
- PoE port status with ANSI-colored indicators
- System health metrics (CPU temp, memory, uptime)
- Network status
This is useful for headless deployments where a technician connects a monitor for quick diagnostics without needing a laptop or phone.
The status screen stays up until you press Ctrl+C, which hands the screen over to the system login prompt for terminal access.
HDMI Kiosk Mode
The exaviz-kiosk service runs the full web dashboard on the board’s HDMI output using Wayland Cage and Chromium. This turns the connected display into a dedicated monitoring screen showing the dashboard in full-screen mode.
The kiosk comes with the exaviz-management-kiosk package (see Getting Started); install that package instead of exaviz-management on a board whose HDMI screen should show the dashboard fullscreen. Do not install exaviz-management on a kiosk board unless you mean to switch it to headless; apt refuses the swap unless you follow the steps in Getting Started. The kiosk screen shows the normal sign-in and needs the dashboard password; it never signs in by itself. It stays signed in across its idle reloads, and asks for the password again after the kiosk restarts.
Useful for:
- Network operations centers
- Security monitoring rooms
- Lobby displays
- Rack-mounted status panels
Real-Time Events (SSE)
The dashboard uses Server-Sent Events for real-time updates. The browser maintains a persistent connection to /api/v1/events and receives updated PoE port status, switch port status, and system health every 2 seconds.
A green LIVE indicator in the header confirms the connection is active. If the connection drops (network interruption, board reboot), the dashboard automatically reconnects.
Using SSE Programmatically
You can consume the SSE stream from your own applications:
curl -k -N -H "Authorization: Bearer <token>" \
https://<board-ip>/api/v1/events
Events are delivered as JSON objects containing the current state of all ports and health metrics. This is useful for building custom dashboards or integrating with external monitoring systems without polling.
Board Name
Set a descriptive name for the board that appears in the dashboard header, fleet view, and mDNS announcements:
- Click the board name in the header or go to settings
- Enter a name (e.g., “Building A - Floor 2”, “Server Room Switch”)
- Save
The name is broadcast via mDNS so other boards in the fleet see a friendly name instead of just the serial number.
Last modified October 18, 2026