Usage
This page explains how to monitor an OpenCollector deployment through the browser and REST interfaces.
Data Display
Data Types
OpenCollector stores two categories of information from a collector:
- Records are numerical readings measured by a sensor. A single sensor can produce several record types, such as temperature and humidity.
- Errors describe exceptions raised while initializing or reading a sensor, or while the collector performs other work.
Node Status
Status gives a quick indication of a collector or sensor's recent activity:
- White —
UNKNOWN: no records or errors have been received. - Yellow —
DROPPED: no recent records or errors have arrived. The timeout is the collector'spolling_intervalmultiplied by the storage node'sACTIVE_DEVICE_POLLING_THRESHOLD. - Red —
ERROR: the most recent event is an error rather than a numerical record. - Green —
OPERATIONAL: numerical data has arrived more recently than an error.
A collector's status is derived from its own errors and the status of its sensors. Use the status as a prompt to investigate, not as proof that every reading is accurate. See Storage Config to change the dropped-device threshold.
Errors
Sensor errors occur while reading a sensor. Collector errors occur during initialization, upload, or other collector-level work. When an upload fails, the collector attempts to retain the error for a later successful upload; an active network failure can therefore delay the error appearing in the interface.
Record retry and durable offline buffering are not yet complete. A collector interruption or extended network outage may result in missing readings, so do not rely on the prototype as the only copy of safety-critical data.
Web Interface
Start the storage service, then open its address in a browser (for a local default deployment, http://localhost:8000). The navigation bar links to the home page, dashboard, login placeholder, and project information.
Authentication
Authentication is not implemented in the current browser interface. The /login route is a placeholder, and the INTERFACE_USER and INTERFACE_PASSWORD configuration values are not enforced. Keep the interface on a trusted network or protect it with an authenticated HTTPS reverse proxy.
Dashboard
Open /dashboard to see the deployment overview. The summary reports total collectors, sensors, records, and errors. The collector list shows each sensor's current status and latest values.
To graph a measurement:
- Select a collector.
- Select one of its sensors.
- Select the record type to plot.
- Use the refresh button to pause or resume automatic graph updates. Pause updates before zooming or inspecting the graph so a refresh does not replace the current view.
The page refresh interval is controlled by INTERFACE_REFRESH_SECONDS in the storage configuration. An empty selector usually means metadata for that collector or sensor has not reached the database yet.
Collector Page
Collector detail routes use /collectors/{collector_id}. The route exists, but its page is not implemented in the current prototype. Use the dashboard or REST API for collector information.
Sensor Page
Sensor detail routes use /collectors/{collector_id}/sensors/{sensor_id}. The route exists, but its page is not implemented in the current prototype. Use the dashboard graph or REST API for sensor information.
REST API
The storage service exposes a read-only JSON API under /api/query. The generated OpenAPI schema is also included in this documentation under OpenAPI.
Authentication
The REST API does not currently enforce authentication. Apply the same network restrictions or reverse-proxy authentication used for the browser interface.
Endpoints
GET /api/query/summaryreturns totals and status information for the deployment.GET /api/query/collectors/{collector_id}returns collector details. Supplyerrors_pageanderrors_page_sizequery parameters.GET /api/query/collectors/sensors/{sensor_id}returns sensor records and errors. Supplyrecords_page,records_page_size,errors_page, anderrors_page_sizequery parameters.
For example:
Use IDs from the collector configuration or a previous API response. Pagination values must be positive integers. API routes under /api/command are reserved for future functionality and currently expose no operations.