1.4 KiB
1.4 KiB
Argus Master Module
A lightweight Flask + SQLite service that manages Argus agent nodes. It exposes node registration, status updates, configuration management, statistics, and generates nodes.json
for the metric module.
Build & Run
cd src/master
./scripts/build_images.sh # builds argus-master:dev
Local run via Docker compose (test stack):
cd src/master/tests
./scripts/01_up_master.sh
Service listens on port 3000
(31300
when using the provided test compose). Key environment variables:
DB_PATH
(default/private/argus/master/db.sqlite3
)METRIC_NODES_JSON_PATH
(default/private/argus/metric/prometheus/nodes.json
)OFFLINE_THRESHOLD_SECONDS
,ONLINE_THRESHOLD_SECONDS
,SCHEDULER_INTERVAL_SECONDS
REST API Summary
Base path: /api/v1/master
GET /nodes
— list node summariesGET /nodes/{id}
— node detailPOST /nodes
— register/re-registerPUT /nodes/{id}/status
— status report (timestamp + health map)PUT /nodes/{id}/config
— update config/labels (partial)GET /nodes/statistics
— totals + grouped countsGET /healthz
,GET /readyz
— health checks
nodes.json
only contains nodes whose status is online
.
Tests
End-to-end tests are Docker based:
cd src/master/tests
./scripts/00_e2e_test.sh
Scripts create temporary private/
and tmp/
directories under tests/
; they are cleaned automatically by 06_down.sh
.