Refactor store dwell alert management API and dwell engine
- Updated argument parsing in manage_api.py to include new threshold parameters. - Enhanced _config_payload to include thresholds and webhook configurations. - Modified _build_summary to track queue metrics and adjust alert reporting. - Refactored DwellEngine to utilize queue thresholds for alerting and reporting. - Added queue metrics calculations and status change tracking in dwell_engine.py. - Updated notifier.py to support posting JSON events to webhooks. - Adjusted example configuration to reflect new threshold parameters. - Enhanced Docker entrypoint script for better process management. - Updated tests to cover new queue metrics and thresholds. - Improved ManagedServiceDetail and ManagedServices Vue components to display queue metrics.
This commit is contained in:
@@ -8,16 +8,18 @@ def test_load_config_reads_thresholds(tmp_path: Path):
|
||||
cfg.write_text(
|
||||
"camera_id: store_cam_01\n"
|
||||
"thresholds:\n"
|
||||
" min_people: 5\n"
|
||||
" min_dwell_seconds: 600\n",
|
||||
" queue_time_threshold_seconds: 300\n"
|
||||
" crowded_count_threshold: 5\n"
|
||||
" normal_count_threshold: 2\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
data = load_config(cfg)
|
||||
|
||||
assert data.camera_id == "store_cam_01"
|
||||
assert data.thresholds.min_people == 5
|
||||
assert data.thresholds.min_dwell_seconds == 600
|
||||
assert data.thresholds.queue_time_threshold_seconds == 300
|
||||
assert data.thresholds.crowded_count_threshold == 5
|
||||
assert data.thresholds.normal_count_threshold == 2
|
||||
|
||||
|
||||
def test_load_config_uses_defaults_for_optional_sections(tmp_path: Path):
|
||||
@@ -29,4 +31,5 @@ def test_load_config_uses_defaults_for_optional_sections(tmp_path: Path):
|
||||
assert data.stream.sample_fps == 2.0
|
||||
assert data.staff.min_hits == 3
|
||||
assert data.event_sink.path == "logs/events.jsonl"
|
||||
assert data.webhook.url == ""
|
||||
assert data.webhook.timeout_seconds == 5.0
|
||||
|
||||
Reference in New Issue
Block a user