diff --git a/application_events.json b/application_events.json index 4e71aa7..0801e8a 100644 --- a/application_events.json +++ b/application_events.json @@ -1,3289 +1,5 @@ { "events": [ - { - "timestamp": "2025-08-14T18:03:33.802690", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 0, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T18:03:33.805885", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T18:03:33.910511", - "level": "error", - "event_type": "csv_cleanup_failed", - "message": "CSV cleanup failed: 'max_hours'", - "details": {} - }, - { - "timestamp": "2025-08-14T18:03:33.956537", - "level": "error", - "event_type": "csv_cleanup_failed", - "message": "CSV cleanup failed: 'max_hours'", - "details": {} - }, - { - "timestamp": "2025-08-14T18:24:21.506809", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T18:24:21.601310", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T18:24:21.603320", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 0, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T18:24:21.605320", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T18:24:21.714107", - "level": "error", - "event_type": "csv_cleanup_failed", - "message": "CSV cleanup failed: 'max_hours'", - "details": {} - }, - { - "timestamp": "2025-08-14T18:24:21.729128", - "level": "error", - "event_type": "csv_cleanup_failed", - "message": "CSV cleanup failed: 'max_hours'", - "details": {} - }, - { - "timestamp": "2025-08-14T18:24:48.803867", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T18:25:31.712223", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T18:26:00.483746", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-14T18:26:01.456601", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T18:26:34.336239", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T18:26:34.402768", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T18:26:34.404771", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T18:26:34.407771", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T18:26:34.409771", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T18:26:34.484523", - "level": "error", - "event_type": "csv_cleanup_failed", - "message": "CSV cleanup failed: 'max_hours'", - "details": {} - }, - { - "timestamp": "2025-08-14T18:26:34.560526", - "level": "error", - "event_type": "csv_cleanup_failed", - "message": "CSV cleanup failed: 'max_hours'", - "details": {} - }, - { - "timestamp": "2025-08-14T18:28:20.485556", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T18:28:50.653912", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T18:28:50.749709", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T18:28:50.752286", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T18:28:50.754865", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T18:28:50.756936", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T18:28:50.843310", - "level": "error", - "event_type": "csv_cleanup_failed", - "message": "CSV cleanup failed: 'max_hours'", - "details": {} - }, - { - "timestamp": "2025-08-14T18:28:50.905478", - "level": "error", - "event_type": "csv_cleanup_failed", - "message": "CSV cleanup failed: 'max_hours'", - "details": {} - }, - { - "timestamp": "2025-08-14T18:29:00.028112", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T18:29:00.109128", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T18:29:00.118401", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T18:29:00.121047", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T18:29:00.124385", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T18:29:00.219781", - "level": "error", - "event_type": "csv_cleanup_failed", - "message": "CSV cleanup failed: 'max_hours'", - "details": {} - }, - { - "timestamp": "2025-08-14T18:29:00.281539", - "level": "error", - "event_type": "csv_cleanup_failed", - "message": "CSV cleanup failed: 'max_hours'", - "details": {} - }, - { - "timestamp": "2025-08-14T18:31:19.295897", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T18:31:19.392123", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T18:31:19.393970", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T18:31:19.396043", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T18:31:19.398654", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T18:32:08.915551", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T18:32:09.011725", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T18:32:09.014725", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T18:32:09.016724", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T18:32:09.018778", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T18:32:34.760007", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T18:32:34.856710", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T18:32:34.858709", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T18:32:34.860700", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T18:32:34.863727", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T18:43:38.226776", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T18:43:38.387187", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T18:43:38.390197", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T18:43:38.393188", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T18:43:38.396188", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T18:45:55.386410", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T18:45:55.480823", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T18:45:55.484826", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T18:45:55.486826", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T18:45:55.488826", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T18:46:16.497318", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T18:46:16.610938", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T18:46:16.613936", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T18:46:16.616946", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T18:46:16.620459", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T18:46:27.723966", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T21:40:27.128935", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T21:40:34.404349", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T21:40:43.787236", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T21:40:53.670324", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T21:55:42.281211", - "level": "info", - "event_type": "csv_recording_stopped", - "message": "CSV recording stopped (dataset threads continue for UDP streaming)", - "details": {} - }, - { - "timestamp": "2025-08-14T21:55:42.285178", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-14T21:55:42.289219", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-14T21:55:42.327691", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-14T21:55:42.481025", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-14T21:55:42.485065", - "level": "info", - "event_type": "plc_disconnection", - "message": "Disconnected from PLC 10.1.33.11 (stopped recording and streaming)", - "details": {} - }, - { - "timestamp": "2025-08-14T21:56:24.835314", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T21:56:24.838909", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 1, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T21:56:24.842990", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T21:56:24.845281", - "level": "info", - "event_type": "plc_connection", - "message": "Successfully connected to PLC 10.1.33.11 and auto-started CSV recording for 2 datasets", - "details": { - "ip": "10.1.33.11", - "rack": 0, - "slot": 2, - "symbols_path": "C:/Users/migue/Downloads/symSAE452.asc", - "auto_started_recording": true, - "recording_datasets": 2, - "dataset_names": [ - "Fast", - "DAR" - ] - } - }, - { - "timestamp": "2025-08-14T21:56:57.393755", - "level": "info", - "event_type": "csv_recording_stopped", - "message": "CSV recording stopped (dataset threads continue for UDP streaming)", - "details": {} - }, - { - "timestamp": "2025-08-14T21:56:57.396262", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-14T21:56:57.883359", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-14T21:56:58.057431", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-14T21:56:58.061430", - "level": "info", - "event_type": "plc_disconnection", - "message": "Disconnected from PLC 10.1.33.11 (stopped recording and streaming)", - "details": {} - }, - { - "timestamp": "2025-08-14T21:57:06.030039", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T21:57:10.291305", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T21:57:10.295814", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T21:57:10.299816", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T21:57:10.302320", - "level": "info", - "event_type": "plc_connection", - "message": "Successfully connected to PLC 10.1.33.11 and auto-started CSV recording for 3 datasets", - "details": { - "ip": "10.1.33.11", - "rack": 0, - "slot": 2, - "symbols_path": "C:/Users/migue/Downloads/symSAE452.asc", - "auto_started_recording": true, - "recording_datasets": 3, - "dataset_names": [ - "Fast", - "DAR", - "test" - ] - } - }, - { - "timestamp": "2025-08-14T21:57:10.484412", - "level": "info", - "event_type": "csv_file_renamed", - "message": "CSV file renamed due to header mismatch for dataset 'Fast': fast_21.csv -> fast_to_21_57_10.csv", - "details": { - "dataset_id": "Fast", - "original_file": "records\\14-08-2025\\fast_21.csv", - "renamed_file": "records\\14-08-2025\\fast_to_21_57_10.csv", - "expected_headers": [ - "timestamp", - "AUX Blink_1.0S", - "AUX Blink_1.6S" - ], - "existing_headers": [ - "timestamp", - "AUX Blink_1.0S" - ], - "reason": "header_mismatch" - } - }, - { - "timestamp": "2025-08-14T22:28:56.805851", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T22:28:56.932394", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T22:28:56.935393", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 3, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T22:28:56.938395", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T22:28:57.166532", - "level": "info", - "event_type": "csv_file_renamed", - "message": "CSV file renamed due to header mismatch for dataset 'Fast': fast_22.csv -> fast_to_22_28_57.csv", - "details": { - "dataset_id": "Fast", - "original_file": "records\\14-08-2025\\fast_22.csv", - "renamed_file": "records\\14-08-2025\\fast_to_22_28_57.csv", - "expected_headers": [ - "timestamp", - "AUX Blink_1.0S", - "AUX Blink_1.6S", - "AUX Blink_2.0S" - ], - "existing_headers": [ - "timestamp", - "AUX Blink_1.0S", - "AUX Blink_1.6S" - ], - "reason": "header_mismatch" - } - }, - { - "timestamp": "2025-08-14T22:29:09.720553", - "level": "info", - "event_type": "config_reload", - "message": "Dataset configuration reloaded from files", - "details": { - "datasets_count": 3, - "active_datasets_count": 3 - } - }, - { - "timestamp": "2025-08-14T22:29:18.107433", - "level": "info", - "event_type": "config_reload", - "message": "Dataset configuration reloaded from files", - "details": { - "datasets_count": 3, - "active_datasets_count": 3 - } - }, - { - "timestamp": "2025-08-14T22:29:34.913083", - "level": "info", - "event_type": "csv_recording_stopped", - "message": "CSV recording stopped (dataset threads continue for UDP streaming)", - "details": {} - }, - { - "timestamp": "2025-08-14T22:29:34.916673", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-14T22:29:35.040978", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-14T22:29:35.416658", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-14T22:29:35.419648", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-14T22:29:35.422649", - "level": "info", - "event_type": "plc_disconnection", - "message": "Disconnected from PLC 10.1.33.11 (stopped recording and streaming)", - "details": {} - }, - { - "timestamp": "2025-08-14T22:29:37.405052", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T22:29:37.409057", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T22:29:37.411052", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T22:29:37.414066", - "level": "info", - "event_type": "plc_connection", - "message": "Successfully connected to PLC 10.1.33.11 and auto-started CSV recording for 2 datasets", - "details": { - "ip": "10.1.33.11", - "rack": 0, - "slot": 2, - "symbols_path": "C:/Users/migue/Downloads/symSAE452.asc", - "auto_started_recording": true, - "recording_datasets": 2, - "dataset_names": [ - "Fast", - "DAR" - ] - } - }, - { - "timestamp": "2025-08-14T22:29:37.623310", - "level": "info", - "event_type": "csv_file_renamed", - "message": "CSV file renamed due to header mismatch for dataset 'Fast': fast_22.csv -> fast_to_22_29_37.csv", - "details": { - "dataset_id": "Fast", - "original_file": "records\\14-08-2025\\fast_22.csv", - "renamed_file": "records\\14-08-2025\\fast_to_22_29_37.csv", - "expected_headers": [ - "timestamp", - "AUX Blink_1.0S", - "AUX Blink_1.6S" - ], - "existing_headers": [ - "timestamp", - "AUX Blink_1.0S", - "AUX Blink_1.6S", - "AUX Blink_2.0S" - ], - "reason": "header_mismatch" - } - }, - { - "timestamp": "2025-08-14T22:30:22.434058", - "level": "info", - "event_type": "config_reload", - "message": "Dataset configuration reloaded from files", - "details": { - "datasets_count": 3, - "active_datasets_count": 3 - } - }, - { - "timestamp": "2025-08-14T22:32:00.333252", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T22:33:00.673187", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T22:33:00.754407", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T22:33:00.757714", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 3, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T22:33:00.760854", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T22:33:00.764562", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T22:33:01.026299", - "level": "info", - "event_type": "csv_file_renamed", - "message": "CSV file renamed due to header mismatch for dataset 'Fast': fast_22.csv -> fast_to_22_33_01.csv", - "details": { - "dataset_id": "Fast", - "original_file": "records\\14-08-2025\\fast_22.csv", - "renamed_file": "records\\14-08-2025\\fast_to_22_33_01.csv", - "expected_headers": [ - "timestamp", - "AUX Blink_1.0S", - "AUX Blink_1.6S", - "AUX Blink_2.0S" - ], - "existing_headers": [ - "timestamp", - "AUX Blink_1.0S", - "AUX Blink_1.6S" - ], - "reason": "header_mismatch" - } - }, - { - "timestamp": "2025-08-14T22:33:16.675301", - "level": "warning", - "event_type": "csv_headers_mismatch_after_config_reload", - "message": "CSV header mismatches detected and resolved for 1 datasets after configuration reload", - "details": { - "mismatched_datasets": 1, - "total_validated": 2, - "details": [ - { - "dataset_id": "Fast", - "dataset_name": "Fast", - "original_file": "records\\14-08-2025\\fast_22.csv", - "renamed_file": "records\\14-08-2025\\fast_to_22_33_16.csv", - "expected_headers": [ - "timestamp", - "AUX Blink_1.0S", - "AUX Blink_1.6S" - ], - "existing_headers": [ - "timestamp", - "AUX Blink_1.0S", - "AUX Blink_1.6S", - "AUX Blink_2.0S" - ] - } - ] - } - }, - { - "timestamp": "2025-08-14T22:33:16.680664", - "level": "info", - "event_type": "config_reload", - "message": "Dataset configuration reloaded from files with CSV header validation", - "details": { - "datasets_count": 3, - "active_datasets_count": 3, - "csv_recording_active": true - } - }, - { - "timestamp": "2025-08-14T22:40:58.407368", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T22:40:58.488687", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T22:40:58.493692", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T22:40:58.500690", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T22:40:58.508089", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T22:41:08.736742", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T22:42:07.195383", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T22:42:09.975760", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T22:51:29.299710", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T22:51:29.367770", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T22:51:29.372770", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T22:51:29.375778", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T22:51:29.380769", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T22:52:10.248646", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T22:55:17.545033", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T22:57:05.817266", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T23:12:13.491544", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T23:12:13.601841", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T23:12:13.607414", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T23:12:13.611549", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T23:12:13.619569", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T23:16:13.052239", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T23:17:26.110874", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T23:17:38.598859", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T23:17:38.710314", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T23:17:38.714802", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T23:17:38.719873", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T23:17:38.744433", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T23:17:48.288119", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T23:22:37.889079", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T23:22:37.970126", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T23:22:37.975125", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T23:22:37.980125", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T23:22:37.985255", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T23:23:30.022619", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T23:27:17.599611", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T23:27:17.681121", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T23:27:17.687121", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T23:27:17.690131", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T23:27:17.695121", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T23:29:18.561423", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T23:40:06.297388", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T23:40:06.391029", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T23:40:06.397029", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T23:40:06.402029", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T23:40:06.406252", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T23:40:13.597479", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T23:44:33.374514", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T23:45:00.606119", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T23:45:41.422368", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T23:45:41.502849", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T23:45:41.511998", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T23:45:41.519961", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T23:45:41.528200", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T23:46:40.168598", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T23:54:52.569817", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T23:54:52.682252", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T23:54:52.687255", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T23:54:52.693251", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T23:54:52.699707", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T23:56:13.944096", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T23:56:14.040062", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T23:56:14.044062", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T23:56:14.050062", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T23:56:14.057751", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T23:58:19.006981", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-14T23:58:19.101016", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-14T23:58:19.105015", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-14T23:58:19.110016", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-14T23:58:19.114363", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-14T23:58:37.746893", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-14T23:59:26.324851", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:00:19.893542", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:00:20.005085", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:00:20.010478", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:00:20.016566", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:00:20.023040", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:01:25.659194", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:03:13.854041", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:03:13.931884", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:03:13.937884", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:03:13.943885", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:03:13.948883", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:03:24.533830", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:04:52.352107", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:04:52.462786", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:04:52.471573", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:04:52.478150", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:04:52.487150", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:06:14.970380", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:06:15.097520", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:06:15.104549", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:06:15.108765", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:06:15.114560", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:06:15.165489", - "level": "info", - "event_type": "csv_file_renamed", - "message": "CSV file renamed due to header mismatch for dataset 'DAR': gateway_phoenix_00.csv -> gateway_phoenix_to_00_06_15.csv", - "details": { - "dataset_id": "DAR", - "original_file": "records\\15-08-2025\\gateway_phoenix_00.csv", - "renamed_file": "records\\15-08-2025\\gateway_phoenix_to_00_06_15.csv", - "expected_headers": [ - "timestamp", - "UR29_Brix", - "UR29_ma" - ], - "existing_headers": [ - "timestamp", - "UR29_Brix", - "UR29_ma" - ], - "reason": "header_mismatch" - } - }, - { - "timestamp": "2025-08-15T00:07:46.886130", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:07:46.982186", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:07:46.989188", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:07:46.993194", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:07:46.998626", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:07:47.184577", - "level": "info", - "event_type": "csv_file_renamed", - "message": "CSV file renamed due to header mismatch for dataset 'Fast': fast_00.csv -> fast_to_00_07_47.csv", - "details": { - "dataset_id": "Fast", - "original_file": "records\\15-08-2025\\fast_00.csv", - "renamed_file": "records\\15-08-2025\\fast_to_00_07_47.csv", - "expected_headers": [ - "timestamp", - "AUX Blink_1.0S", - "AUX Blink_1.6S" - ], - "existing_headers": [ - "timestamp", - "AUX Blink_1.0S", - "AUX Blink_1.6S" - ], - "reason": "header_mismatch" - } - }, - { - "timestamp": "2025-08-15T00:07:54.500883", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:07:54.612462", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:07:54.616465", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:07:54.623465", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:07:54.628465", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:08:39.174859", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:09:52.235300", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:09:52.335402", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:09:52.341893", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:09:52.350973", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:09:52.357430", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:10:34.939883", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:10:35.050386", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:10:35.056405", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:10:35.061392", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:10:35.069127", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:10:58.429356", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:13:34.473694", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:13:34.554942", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:13:34.560722", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:13:34.567569", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:13:34.575126", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:13:46.516969", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:14:46.450129", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:14:46.499303", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:14:46.505470", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:14:46.510912", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:14:46.518450", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:14:57.791078", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:15:20.096118", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:17:13.533612", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:17:13.644933", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:17:13.653665", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:17:13.661665", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:17:13.668666", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:17:19.296417", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:22:03.893270", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:22:03.973434", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:22:03.978435", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:22:03.984513", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:22:03.990721", - "level": "info", - "event_type": "udp_streaming_started", - "message": "UDP streaming to PlotJuggler started", - "details": { - "udp_host": "127.0.0.1", - "udp_port": 9870, - "datasets_available": 3 - } - }, - { - "timestamp": "2025-08-15T00:22:53.358065", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:23:20.844836", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:23:59.638322", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-15T00:24:35.808418", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:26:15.271771", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:26:15.365923", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:26:15.372925", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:26:15.377433", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:26:31.108086", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:27:24.396654", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 20, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:27:40.211134", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 500, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:28:49.611975", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 500, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:29:11.885234", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 500, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:29:47.127915", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 500, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:33:00.587011", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 500, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:34:00.990295", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:34:01.069801", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:34:01.075470", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-15T00:34:01.083475", - "level": "info", - "event_type": "csv_recording_started", - "message": "CSV recording started: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3 - } - }, - { - "timestamp": "2025-08-15T00:35:06.741557", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S" - ], - "time_window": 500, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-15T00:35:28.675944", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-15T00:35:28.758707", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-15T00:35:28.764039", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 1, - "prefix": "fast" - } - }, { "timestamp": "2025-08-15T00:35:28.768130", "level": "info", @@ -14287,8 +11003,6426 @@ "read_time_avg": 0.10199150545843716, "csv_write_time_avg": 1.904060100686961e-05 } + }, + { + "timestamp": "2025-08-16T18:34:32.968819", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.043951272964478, + "points_saved": 31, + "points_rate": 3.0864347264849217, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0429351560531124, + "csv_write_time_avg": 6.452683479555191e-05 + } + }, + { + "timestamp": "2025-08-16T18:34:42.986745", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.018931150436401, + "points_saved": 30, + "points_rate": 2.9943313862071275, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03495910962422689, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:34:53.004818", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.018072843551636, + "points_saved": 30, + "points_rate": 2.994587928087406, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03503986994425456, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:35:03.022794", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.01797604560852, + "points_saved": 30, + "points_rate": 2.9946168630689427, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04281324545542399, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:35:13.041730", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.018935918807983, + "points_saved": 30, + "points_rate": 2.994329961097235, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03814603487650554, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:35:23.063669", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02193832397461, + "points_saved": 30, + "points_rate": 2.99343290990263, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04150373140970866, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:35:33.081826", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.018157958984375, + "points_saved": 29, + "points_rate": 2.8947437361967863, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.08620176644160829, + "csv_write_time_avg": 5.220544749292834e-06 + } + }, + { + "timestamp": "2025-08-16T18:35:43.126078", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.044251441955566, + "points_saved": 30, + "points_rate": 2.9867830543038605, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.13235967953999836, + "csv_write_time_avg": 6.588300069173177e-06 + } + }, + { + "timestamp": "2025-08-16T18:35:53.162655", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.036577701568604, + "points_saved": 30, + "points_rate": 2.9890666810970177, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.1144386370976766, + "csv_write_time_avg": 6.564458211263021e-06 + } + }, + { + "timestamp": "2025-08-16T18:36:03.210961", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.04830527305603, + "points_saved": 29, + "points_rate": 2.8860588140929475, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.09946414520000589, + "csv_write_time_avg": 1.2274446158573546e-05 + } + }, + { + "timestamp": "2025-08-16T18:36:13.254712", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.043240308761597, + "points_saved": 30, + "points_rate": 2.987083757602452, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03963555494944255, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:36:23.272971", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.018769979476929, + "points_saved": 30, + "points_rate": 2.9943795557193016, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.043033536275227866, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:36:33.293711", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.020740032196045, + "points_saved": 30, + "points_rate": 2.9937908681007364, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036345442136128746, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:36:43.311444", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.017732620239258, + "points_saved": 30, + "points_rate": 2.9946896306046047, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03540658156077067, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:36:53.329571", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.018127202987671, + "points_saved": 30, + "points_rate": 2.994571679131126, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.032773065567016604, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:37:03.350581", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02100944519043, + "points_saved": 30, + "points_rate": 2.9937103805843095, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.043904654184977215, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:37:13.370459", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.019877910614014, + "points_saved": 30, + "points_rate": 2.9940484572392974, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03875761826833089, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:37:23.390930", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020472049713135, + "points_saved": 30, + "points_rate": 2.9938709325434263, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03074795405069987, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:37:33.409733", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.018802404403687, + "points_saved": 30, + "points_rate": 2.9943698646869943, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04058655897776286, + "csv_write_time_avg": 1.708666483561198e-06 + } + }, + { + "timestamp": "2025-08-16T18:37:43.428250", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.018517255783081, + "points_saved": 30, + "points_rate": 2.9944550909150576, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03772562344868978, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:37:53.449522", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021271705627441, + "points_saved": 30, + "points_rate": 2.9936320340614566, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03675090471903483, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:38:03.467858", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.018335819244385, + "points_saved": 30, + "points_rate": 2.994509321834921, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.040726105372111, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:38:13.486386", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.018528461456299, + "points_saved": 30, + "points_rate": 2.994451741632242, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03310688336690267, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:38:23.505944", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.01955795288086, + "points_saved": 30, + "points_rate": 2.994144067141634, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03642265796661377, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:38:33.525492", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.019547700881958, + "points_saved": 30, + "points_rate": 2.994147130749154, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033480532964070636, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:38:43.544947", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.018949270248413, + "points_saved": 30, + "points_rate": 2.994325970796753, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.040233278274536134, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:38:53.588170", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.043729305267334, + "points_saved": 30, + "points_rate": 2.9869383262118383, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.037836742401123044, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:39:03.607834", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.01866340637207, + "points_saved": 30, + "points_rate": 2.9944114083041655, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03644898732503255, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:39:13.630424", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.023590564727783, + "points_saved": 30, + "points_rate": 2.992939486731193, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03657260735829671, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:39:23.652500", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022075891494751, + "points_saved": 30, + "points_rate": 2.993391820696503, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04137861728668213, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:39:33.682424", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.029923677444458, + "points_saved": 30, + "points_rate": 2.991049679417277, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0539078156153361, + "csv_write_time_avg": 5.316734313964844e-06 + } + }, + { + "timestamp": "2025-08-16T18:39:43.701668", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.019243717193604, + "points_saved": 30, + "points_rate": 2.9942379731234863, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04460628032684326, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:39:53.724194", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022526264190674, + "points_saved": 30, + "points_rate": 2.9932573095055415, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04598451455434163, + "csv_write_time_avg": 2.312660217285156e-06 + } + }, + { + "timestamp": "2025-08-16T18:40:03.743245", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.01905083656311, + "points_saved": 30, + "points_rate": 2.9942956163591106, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.038534808158874514, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:40:13.767760", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.02451491355896, + "points_saved": 30, + "points_rate": 2.992663511271014, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033528621991475424, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:40:23.796043", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02828311920166, + "points_saved": 30, + "points_rate": 2.991538994601926, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03602211475372315, + "csv_write_time_avg": 6.246566772460937e-06 + } + }, + { + "timestamp": "2025-08-16T18:40:33.817235", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.0211923122406, + "points_saved": 30, + "points_rate": 2.9936557512578474, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03512619336446126, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:40:43.837641", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.020405769348145, + "points_saved": 30, + "points_rate": 2.99389073561954, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03333298365275065, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:40:53.864960", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.02630352973938, + "points_saved": 30, + "points_rate": 2.992129642895402, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.038695693016052246, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:41:03.888778", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024833679199219, + "points_saved": 30, + "points_rate": 2.992568351757073, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03576229413350423, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:41:13.907179", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.018401384353638, + "points_saved": 30, + "points_rate": 2.994489724363896, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036200483640034996, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:41:23.929127", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.021947860717773, + "points_saved": 30, + "points_rate": 2.993430061394412, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034483909606933594, + "csv_write_time_avg": 3.332297007242839e-05 + } + }, + { + "timestamp": "2025-08-16T18:41:33.948694", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.019566297531128, + "points_saved": 31, + "points_rate": 3.0939462926293086, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036834001541137695, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:41:43.967867", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.019173622131348, + "points_saved": 29, + "points_rate": 2.894450290385418, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03802465570384059, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:41:53.987546", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.019679307937622, + "points_saved": 31, + "points_rate": 3.093911396489676, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.037705559884348226, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:42:04.017110", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.029563665390015, + "points_saved": 30, + "points_rate": 2.991157043403982, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03261450926462809, + "csv_write_time_avg": 0.0001861572265625 + } + }, + { + "timestamp": "2025-08-16T18:42:14.051628", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.034517526626587, + "points_saved": 30, + "points_rate": 2.9896803628470443, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03505815664927165, + "csv_write_time_avg": 2.3523966471354168e-06 + } + }, + { + "timestamp": "2025-08-16T18:42:24.074615", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.022987127304077, + "points_saved": 30, + "points_rate": 2.9931196776932527, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03995765844980876, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:42:34.105791", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.031176567077637, + "points_saved": 30, + "points_rate": 2.9906760986004497, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03671567440032959, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:42:44.125526", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.019734621047974, + "points_saved": 30, + "points_rate": 2.9940912743318018, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03370640277862549, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:42:54.147451", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.02192497253418, + "points_saved": 30, + "points_rate": 2.9934368978232424, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03480325539906819, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:43:04.168635", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.020179986953735, + "points_saved": 30, + "points_rate": 2.9939581962659325, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033075324694315594, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:43:14.211417", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.043785810470581, + "points_saved": 30, + "points_rate": 2.9869215220345695, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03348086675008138, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:43:24.264286", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.05286955833435, + "points_saved": 30, + "points_rate": 2.9842225471958344, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03486417929331462, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:43:34.294862", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.03057599067688, + "points_saved": 30, + "points_rate": 2.990855164038845, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.037721689542134604, + "csv_write_time_avg": 8.074442545572917e-06 + } + }, + { + "timestamp": "2025-08-16T18:43:44.317575", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022712707519531, + "points_saved": 30, + "points_rate": 2.9932016286860668, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03777104218800863, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:43:54.338864", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.021288871765137, + "points_saved": 30, + "points_rate": 2.9936269060684046, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03858914375305176, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:44:04.367668", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.028803825378418, + "points_saved": 30, + "points_rate": 2.991383670710899, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033110372225443524, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:44:14.387856", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.020187616348267, + "points_saved": 30, + "points_rate": 2.9939559166590866, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03545501232147217, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:44:24.413348", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.025492906570435, + "points_saved": 30, + "points_rate": 2.9923715751011923, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.038822444279988606, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:44:34.434651", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.021303176879883, + "points_saved": 30, + "points_rate": 2.9936226327542816, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03907454013824463, + "csv_write_time_avg": 2.1378199259440104e-06 + } + }, + { + "timestamp": "2025-08-16T18:44:44.456535", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021883726119995, + "points_saved": 30, + "points_rate": 2.9934492177165377, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.038679075241088864, + "csv_write_time_avg": 3.41494878133138e-05 + } + }, + { + "timestamp": "2025-08-16T18:44:54.487457", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.030921697616577, + "points_saved": 30, + "points_rate": 2.9907520868324817, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03588964939117432, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:45:04.512931", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.025474309921265, + "points_saved": 30, + "points_rate": 2.992377125769684, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03285581270853678, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:45:14.533861", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02092957496643, + "points_saved": 30, + "points_rate": 2.993734241476345, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034104410807291666, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:45:24.552954", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.01909351348877, + "points_saved": 30, + "points_rate": 2.994282861978562, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04114320278167725, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:45:34.574416", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021461963653564, + "points_saved": 30, + "points_rate": 2.9935751997867963, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03865260283152262, + "csv_write_time_avg": 2.1139780680338543e-06 + } + }, + { + "timestamp": "2025-08-16T18:45:44.602132", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.027715682983398, + "points_saved": 30, + "points_rate": 2.991708276183848, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035773030916849774, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:45:54.648955", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.046823501586914, + "points_saved": 30, + "points_rate": 2.9860184161950736, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04938198725382487, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:46:04.675742", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.026786804199219, + "points_saved": 30, + "points_rate": 2.991985427219416, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.05026083787282308, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:46:14.699188", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.023446083068848, + "points_saved": 30, + "points_rate": 2.99298262806787, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04142306645711263, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:46:24.728657", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02946925163269, + "points_saved": 30, + "points_rate": 2.9911852010629896, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034744095802307126, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:46:34.763352", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.034694910049438, + "points_saved": 30, + "points_rate": 2.989627514231242, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03623064359029134, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:46:44.798418", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.035065650939941, + "points_saved": 30, + "points_rate": 2.9895170638161224, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03550455570220947, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:46:54.833445", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.035026550292969, + "points_saved": 30, + "points_rate": 2.989528712220912, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03584007422129313, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:47:04.863273", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.029828548431396, + "points_saved": 30, + "points_rate": 2.9910780483572488, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033046849568684894, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:47:14.888002", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.02372694015503, + "points_saved": 30, + "points_rate": 2.9928987670065177, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.052537735303243, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:47:24.929998", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.04299807548523, + "points_saved": 30, + "points_rate": 2.987155804921385, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03631941477457682, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:47:34.952176", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 1 lost, 0.5% CPU", + "details": { + "duration": 10.022178173065186, + "points_saved": 29, + "points_rate": 2.893582562515014, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 1, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.41257500648498535, + "delay_max": 0.41257500648498535, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11003260776914399, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:47:44.972177", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.020000696182251, + "points_saved": 30, + "points_rate": 2.9940117680261626, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0358401616414388, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:47:54.991660", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.019483089447021, + "points_saved": 31, + "points_rate": 3.0939719867036475, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03440387787357453, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:48:05.013586", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.021925926208496, + "points_saved": 30, + "points_rate": 2.9934366129714176, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03831257820129395, + "csv_write_time_avg": 2.288818359375e-06 + } + }, + { + "timestamp": "2025-08-16T18:48:15.034004", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.02041745185852, + "points_saved": 29, + "points_rate": 2.894091003625929, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03531730586084826, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:48:25.054188", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.01968002319336, + "points_saved": 30, + "points_rate": 2.994107589319877, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.029297367731730143, + "csv_write_time_avg": 3.455479939778646e-05 + } + }, + { + "timestamp": "2025-08-16T18:48:35.073444", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.019760131835938, + "points_saved": 31, + "points_rate": 3.093886439606795, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.029540261914653164, + "csv_write_time_avg": 2.6841317453692036e-06 + } + }, + { + "timestamp": "2025-08-16T18:48:45.093224", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.019780158996582, + "points_saved": 29, + "points_rate": 2.894275077877973, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03299535554030846, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:48:55.114322", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021098613739014, + "points_saved": 30, + "points_rate": 2.9936837423064313, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034754101435343424, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:49:05.134332", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020009517669678, + "points_saved": 30, + "points_rate": 2.9940091321367333, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034403173128763835, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:49:15.157282", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022950410842896, + "points_saved": 30, + "points_rate": 2.9931306422054926, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.038344653447469075, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:49:25.181671", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.024388790130615, + "points_saved": 30, + "points_rate": 2.9927011639389045, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03300506273905436, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:49:35.206930", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.025259256362915, + "points_saved": 30, + "points_rate": 2.99244131576541, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.031709758440653484, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:49:45.227900", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020969867706299, + "points_saved": 30, + "points_rate": 2.9937222041429714, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03466165860493978, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:49:55.248124", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020223617553711, + "points_saved": 30, + "points_rate": 2.9939451598111195, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03512241045633952, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:50:05.270903", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02277946472168, + "points_saved": 30, + "points_rate": 2.993181692323414, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.029123560587565104, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:50:15.291526", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020622253417969, + "points_saved": 30, + "points_rate": 2.993826056038306, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03510467211405436, + "csv_write_time_avg": 2.3365020751953127e-06 + } + }, + { + "timestamp": "2025-08-16T18:50:25.312097", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020571231842041, + "points_saved": 30, + "points_rate": 2.9938412996526567, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.039731621742248535, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:50:35.333477", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021379947662354, + "points_saved": 30, + "points_rate": 2.993599699510243, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.032850217819213864, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:50:45.353137", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.019142866134644, + "points_saved": 30, + "points_rate": 2.99426811263486, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03189492225646973, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:50:55.374469", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021849870681763, + "points_saved": 30, + "points_rate": 2.9934593300746752, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03440151214599609, + "csv_write_time_avg": 1.6768773396809896e-06 + } + }, + { + "timestamp": "2025-08-16T18:51:05.394087", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.019617795944214, + "points_saved": 30, + "points_rate": 2.9941261843484224, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.032616837819417314, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:51:15.416248", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02014970779419, + "points_saved": 30, + "points_rate": 2.9939672434898306, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03851320743560791, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:51:25.437974", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023736476898193, + "points_saved": 30, + "points_rate": 2.992895919514774, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03566768169403076, + "csv_write_time_avg": 2.368291219075521e-06 + } + }, + { + "timestamp": "2025-08-16T18:51:35.464980", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.027006149291992, + "points_saved": 30, + "points_rate": 2.9919199762451827, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03494581381479899, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:51:45.485106", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020126104354858, + "points_saved": 30, + "points_rate": 2.993974296088117, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03350958029429118, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:51:55.505125", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020019769668579, + "points_saved": 30, + "points_rate": 2.9940060688116064, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034443116188049315, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:52:05.524794", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.019668579101562, + "points_saved": 30, + "points_rate": 2.9941110090779093, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03295203049977621, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:52:15.545170", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020376205444336, + "points_saved": 30, + "points_rate": 2.9938995687307832, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033940331141153975, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:52:25.564830", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.019659519195557, + "points_saved": 30, + "points_rate": 2.9941137163918916, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.037054944038391116, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:52:35.584368", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.019538640975952, + "points_saved": 30, + "points_rate": 2.99414983812846, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03233649730682373, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:52:45.610525", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.026156425476074, + "points_saved": 30, + "points_rate": 2.992173543569614, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03598020076751709, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:52:55.629308", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.018783569335938, + "points_saved": 30, + "points_rate": 2.9943754940290073, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03388658364613851, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:53:05.649137", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.01982855796814, + "points_saved": 30, + "points_rate": 2.9940632044190902, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03389056523640951, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:53:15.668682", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.019544839859009, + "points_saved": 30, + "points_rate": 2.9941479857105113, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03094977537790934, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:53:25.688836", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020153760910034, + "points_saved": 30, + "points_rate": 2.9939660324409423, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03297783533732097, + "csv_write_time_avg": 1.970926920572917e-06 + } + }, + { + "timestamp": "2025-08-16T18:53:35.712949", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024113416671753, + "points_saved": 30, + "points_rate": 2.9927833767428305, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03977081775665283, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:53:45.734533", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021584272384644, + "points_saved": 30, + "points_rate": 2.993538664606916, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03817342122395833, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:53:55.754872", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020339012145996, + "points_saved": 30, + "points_rate": 2.9939106814286394, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04898201624552409, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:54:05.774858", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.019985675811768, + "points_saved": 30, + "points_rate": 2.9940162561728965, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.048808534940083824, + "csv_write_time_avg": 3.910064697265625e-06 + } + }, + { + "timestamp": "2025-08-16T18:54:15.794000", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.019142389297485, + "points_saved": 30, + "points_rate": 2.994268255139901, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.047912915547688804, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:54:25.813871", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.019870519638062, + "points_saved": 30, + "points_rate": 2.9940506657448966, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04157432715098063, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:54:35.834033", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020162343978882, + "points_saved": 30, + "points_rate": 2.99396346787006, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036922852198282875, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:54:45.854550", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020516872406006, + "points_saved": 30, + "points_rate": 2.9938575406836034, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03728023370107015, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:54:55.876560", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022009372711182, + "points_saved": 30, + "points_rate": 2.9934116886466566, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03241578737894694, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:55:05.895902", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.01934266090393, + "points_saved": 30, + "points_rate": 2.9942084042161548, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03446401755015056, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:55:15.916486", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.020583152770996, + "points_saved": 30, + "points_rate": 2.9938377380466212, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033979241053263345, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:55:25.936216", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.019730567932129, + "points_saved": 30, + "points_rate": 2.994092485482012, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033030064900716145, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:55:35.957144", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020928382873535, + "points_saved": 30, + "points_rate": 2.993734597611943, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03712433179219564, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:55:45.986469", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.029324293136597, + "points_saved": 30, + "points_rate": 2.9912284340561217, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03613278071085612, + "csv_write_time_avg": 2.0742416381835936e-06 + } + }, + { + "timestamp": "2025-08-16T18:55:56.008570", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022101879119873, + "points_saved": 30, + "points_rate": 2.993384058737443, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03555033206939697, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:56:06.030073", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02150297164917, + "points_saved": 31, + "points_rate": 3.093348381744634, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03062953487519295, + "csv_write_time_avg": 3.219419910061744e-05 + } + }, + { + "timestamp": "2025-08-16T18:56:16.050557", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020483255386353, + "points_saved": 30, + "points_rate": 2.993867584567239, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.031682276725769044, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:56:26.070889", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 28 points saved, 1 lost, 0.2% CPU", + "details": { + "duration": 10.020332336425781, + "points_saved": 28, + "points_rate": 2.7943184976225552, + "variables_saved": 56, + "udp_points_sent": 0, + "points_lost": 1, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.4320363998413086, + "delay_max": 0.4320363998413086, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10605038915361677, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:56:36.097110", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02622103691101, + "points_saved": 31, + "points_rate": 3.09189273664276, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.043794616576164, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:56:46.117953", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020843267440796, + "points_saved": 30, + "points_rate": 2.993760025912634, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03613253434499105, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:56:56.139877", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021923780441284, + "points_saved": 30, + "points_rate": 2.9934372538880996, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03974302609761556, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:57:06.160715", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020838022232056, + "points_saved": 30, + "points_rate": 2.993761592936891, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03577961921691895, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:57:16.181474", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020759344100952, + "points_saved": 30, + "points_rate": 2.9937850984975984, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033437617619832355, + "csv_write_time_avg": 5.690256754557292e-06 + } + }, + { + "timestamp": "2025-08-16T18:57:26.206479", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.024627447128296, + "points_saved": 30, + "points_rate": 2.9926299164956944, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03578271865844727, + "csv_write_time_avg": 2.6543935139973957e-06 + } + }, + { + "timestamp": "2025-08-16T18:57:36.227130", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02102780342102, + "points_saved": 30, + "points_rate": 2.9937048961942283, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03529698848724365, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:57:46.248541", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021411180496216, + "points_saved": 30, + "points_rate": 2.9935903696264194, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03299981753031413, + "csv_write_time_avg": 2.193450927734375e-06 + } + }, + { + "timestamp": "2025-08-16T18:57:56.269261", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.0207200050354, + "points_saved": 30, + "points_rate": 2.9937968514163686, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.043124961853027347, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:58:06.290143", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.020881652832031, + "points_saved": 30, + "points_rate": 2.9937485581941394, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03852230707804362, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:58:16.310985", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020842790603638, + "points_saved": 30, + "points_rate": 2.9937601683693167, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03576955000559489, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:58:26.331742", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 2.8% CPU", + "details": { + "duration": 10.020756483078003, + "points_saved": 30, + "points_rate": 2.9937859532522157, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 2.8, + "cpu_max": 2.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03851509094238281, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:58:36.352594", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.020852088928223, + "points_saved": 30, + "points_rate": 2.993757390466447, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04075197378794352, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:58:46.374483", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021888732910156, + "points_saved": 30, + "points_rate": 2.9934477222327533, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03648757139841716, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:58:56.430723", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.047770738601685, + "points_saved": 30, + "points_rate": 2.9857369142336743, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03797228336334228, + "csv_write_time_avg": 0.0005204041798909505 + } + }, + { + "timestamp": "2025-08-16T18:59:06.588973", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 6.1% CPU", + "details": { + "duration": 10.166719436645508, + "points_saved": 31, + "points_rate": 3.049164501211848, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 6.1, + "cpu_max": 6.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03940090825480799, + "csv_write_time_avg": 0.00020283268344017767 + } + }, + { + "timestamp": "2025-08-16T18:59:16.609731", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 2.7% CPU", + "details": { + "duration": 10.020758152008057, + "points_saved": 30, + "points_rate": 2.9937854546452964, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 2.7, + "cpu_max": 2.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03148477872212728, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:59:26.634341", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024610042572021, + "points_saved": 30, + "points_rate": 2.9926351122485038, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034551318486531576, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:59:36.654175", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 2.7% CPU", + "details": { + "duration": 10.019834280014038, + "points_saved": 30, + "points_rate": 2.994061494593698, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 2.7, + "cpu_max": 2.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03190950552622477, + "csv_write_time_avg": 4.172325134277344e-06 + } + }, + { + "timestamp": "2025-08-16T18:59:46.675148", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02097225189209, + "points_saved": 30, + "points_rate": 2.9937214918777575, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0309370756149292, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T18:59:56.695162", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020014524459839, + "points_saved": 30, + "points_rate": 2.9940076360934462, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03550891081492106, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:00:06.714877", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.019715309143066, + "points_saved": 30, + "points_rate": 2.9940970451151214, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03322467803955078, + "csv_write_time_avg": 0.00016694068908691407 + } + }, + { + "timestamp": "2025-08-16T19:00:16.736236", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020806789398193, + "points_saved": 30, + "points_rate": 2.9937709238880226, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03781743049621582, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:00:26.756561", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02087688446045, + "points_saved": 30, + "points_rate": 2.993749982750664, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0328164021174113, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:00:36.777152", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020590543746948, + "points_saved": 30, + "points_rate": 2.993835529855135, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03114332358042399, + "csv_write_time_avg": 1.700719197591146e-06 + } + }, + { + "timestamp": "2025-08-16T19:00:46.814337", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.037185668945312, + "points_saved": 30, + "points_rate": 2.988885628849022, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.032117398579915364, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:00:56.834361", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020024061203003, + "points_saved": 30, + "points_rate": 2.9940047864913213, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033533056577046715, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:01:06.854522", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020160913467407, + "points_saved": 30, + "points_rate": 2.993963895298235, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034093403816223146, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:01:16.877161", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022639274597168, + "points_saved": 30, + "points_rate": 2.9932235589917275, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03848221302032471, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:01:26.897689", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020527601242065, + "points_saved": 29, + "points_rate": 2.8940591906962454, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.031914702777204845, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:01:36.918657", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020967721939087, + "points_saved": 31, + "points_rate": 3.0935136066880182, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.037901286155946796, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:01:46.939202", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020545244216919, + "points_saved": 30, + "points_rate": 2.993849063983187, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03715606530507406, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:01:56.960640", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021437644958496, + "points_saved": 30, + "points_rate": 2.993582464197855, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04491612911224365, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:02:06.981696", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021056175231934, + "points_saved": 30, + "points_rate": 2.9936964203581726, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04442189534505208, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:02:17.002084", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020388126373291, + "points_saved": 30, + "points_rate": 2.9938960069861076, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0393158753712972, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:02:27.022752", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020668029785156, + "points_saved": 30, + "points_rate": 2.993812379656609, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03751126130421956, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:02:37.043657", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.020905256271362, + "points_saved": 30, + "points_rate": 2.9937415066593074, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.031386192639668783, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:02:47.064678", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021021127700806, + "points_saved": 30, + "points_rate": 2.993706890515569, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033611567815144856, + "csv_write_time_avg": 2.312660217285156e-06 + } + }, + { + "timestamp": "2025-08-16T19:02:57.087754", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.023075580596924, + "points_saved": 29, + "points_rate": 2.8933234880658163, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03861010485681994, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:03:07.110321", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.0225670337677, + "points_saved": 31, + "points_rate": 3.093019971386156, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03432297706604004, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:03:17.130788", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020466804504395, + "points_saved": 29, + "points_rate": 2.8940767496943294, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033310997075047984, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:03:27.155338", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.024550199508667, + "points_saved": 30, + "points_rate": 2.992652977234868, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03500888347625732, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:03:37.177008", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021669864654541, + "points_saved": 30, + "points_rate": 2.993513097633269, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034986408551534016, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:03:47.197954", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020946502685547, + "points_saved": 30, + "points_rate": 2.9937291843600002, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03249054749806722, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:03:57.217783", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.01982831954956, + "points_saved": 30, + "points_rate": 2.9940632756618575, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.030095895131429035, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:04:07.240073", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022290468215942, + "points_saved": 30, + "points_rate": 2.9933277323322547, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03070220152537028, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:04:17.261239", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021165370941162, + "points_saved": 30, + "points_rate": 2.993663799521001, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03193457921346029, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:04:27.281917", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020678997039795, + "points_saved": 30, + "points_rate": 2.9938091030420484, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03259256680806478, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:04:37.303157", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021239280700684, + "points_saved": 30, + "points_rate": 2.9936417203184877, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03485626379648844, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:04:47.334407", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.031249523162842, + "points_saved": 30, + "points_rate": 2.990654347768735, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03610609372456868, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:04:57.354676", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020270109176636, + "points_saved": 30, + "points_rate": 2.993931268631749, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03593323230743408, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:05:07.378536", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02385950088501, + "points_saved": 30, + "points_rate": 2.9928591873570545, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03813507556915283, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:05:17.400752", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022215604782104, + "points_saved": 30, + "points_rate": 2.9933500917387454, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.039050356547037764, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:05:27.422296", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 3.3% CPU", + "details": { + "duration": 10.021544218063354, + "points_saved": 30, + "points_rate": 2.9935506292459833, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 3.3, + "cpu_max": 3.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03380410671234131, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:05:37.446453", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 3.1% CPU", + "details": { + "duration": 10.024157047271729, + "points_saved": 30, + "points_rate": 2.9927703505169134, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 3.1, + "cpu_max": 3.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03564720153808594, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:05:47.468626", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022172927856445, + "points_saved": 30, + "points_rate": 2.9933628381741, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03933227062225342, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:05:57.490174", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 3.6% CPU", + "details": { + "duration": 10.0215482711792, + "points_saved": 30, + "points_rate": 2.9935494185341094, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 3.6, + "cpu_max": 3.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03921828269958496, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:06:07.512057", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.0218825340271, + "points_saved": 30, + "points_rate": 2.993449573784326, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03546323776245117, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:06:17.533416", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02135968208313, + "points_saved": 30, + "points_rate": 2.993605753282765, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.037067755063374834, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:06:27.553955", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020539045333862, + "points_saved": 30, + "points_rate": 2.9938509160312807, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033951155344645184, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:06:37.574347", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020391941070557, + "points_saved": 30, + "points_rate": 2.993894867229601, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03655114968617757, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:06:47.595688", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021340131759644, + "points_saved": 30, + "points_rate": 2.9936115934159306, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03788173198699951, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:06:57.617216", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021528959274292, + "points_saved": 30, + "points_rate": 2.9935551872288806, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03531761964162191, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:07:07.636853", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.019636154174805, + "points_saved": 30, + "points_rate": 2.994120698434756, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035181252161661784, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:07:17.658034", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021181344985962, + "points_saved": 30, + "points_rate": 2.9936590275367405, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0345853328704834, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:07:23.379972", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-16T19:07:25.402770", + "level": "info", + "event_type": "csv_recording_stopped", + "message": "🔥 CRITICAL: CSV recording stopped (dataset threads continue for UDP streaming)", + "details": { + "recording_protection": false, + "performance_monitoring": false + } + }, + { + "timestamp": "2025-08-16T19:07:25.422494", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-16T19:07:25.710292", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-16T19:07:25.810714", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: Fast", + "details": { + "dataset_id": "Fast" + } + }, + { + "timestamp": "2025-08-16T19:07:25.831696", + "level": "info", + "event_type": "plc_disconnection", + "message": "Disconnected from PLC 10.1.33.11 (application shutdown (will auto-reconnect on restart))", + "details": {} + }, + { + "timestamp": "2025-08-16T19:07:30.852044", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-16T19:07:30.931530", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 2, + "streaming_count": 2, + "prefix": "gateway_phoenix" + } + }, + { + "timestamp": "2025-08-16T19:07:30.953384", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: Fast", + "details": { + "dataset_id": "Fast", + "variables_count": 2, + "streaming_count": 2, + "prefix": "fast" + } + }, + { + "timestamp": "2025-08-16T19:07:30.974385", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY and performance monitoring: 2 datasets activated", + "details": { + "activated_datasets": 2, + "total_datasets": 3, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true + } + }, + { + "timestamp": "2025-08-16T19:07:40.932301", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.087032079696655, + "points_saved": 30, + "points_rate": 2.705863912393479, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04784541130065918, + "csv_write_time_avg": 0.0005331118901570638 + } + }, + { + "timestamp": "2025-08-16T19:07:50.953612", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 1.7% CPU", + "details": { + "duration": 10.021310806274414, + "points_saved": 30, + "points_rate": 2.9936203536584043, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.7, + "cpu_max": 1.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11101617018381754, + "csv_write_time_avg": 0.0006835699081420898 + } + }, + { + "timestamp": "2025-08-16T19:08:01.006526", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 9.5% CPU", + "details": { + "duration": 10.052913904190063, + "points_saved": 30, + "points_rate": 2.984209383062156, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 9.5, + "cpu_max": 9.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10393648942311605, + "csv_write_time_avg": 1.4011065165201823e-05 + } + }, + { + "timestamp": "2025-08-16T19:08:11.047034", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.040508031845093, + "points_saved": 29, + "points_rate": 2.888300064899288, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.09678150867593699, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:08:21.098417", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.05138373374939, + "points_saved": 30, + "points_rate": 2.984663683595068, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11185428301493326, + "csv_write_time_avg": 0.0007519006729125976 + } + }, + { + "timestamp": "2025-08-16T19:08:31.158087", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 9.3% CPU", + "details": { + "duration": 10.059126138687134, + "points_saved": 30, + "points_rate": 2.9823664189497325, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 9.3, + "cpu_max": 9.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12682891686757405, + "csv_write_time_avg": 4.315376281738282e-06 + } + }, + { + "timestamp": "2025-08-16T19:08:41.208175", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.050631046295166, + "points_saved": 30, + "points_rate": 2.984887203779957, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.052538673082987465, + "csv_write_time_avg": 6.818771362304688e-06 + } + }, + { + "timestamp": "2025-08-16T19:08:51.229607", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.021431922912598, + "points_saved": 30, + "points_rate": 2.993584173476169, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03783650398254394, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:09:01.252257", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.022650480270386, + "points_saved": 30, + "points_rate": 2.9932202124632683, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04180251757303874, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:09:11.273289", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021031618118286, + "points_saved": 30, + "points_rate": 2.9937037565832263, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036138145128885905, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:09:21.294974", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.021685123443604, + "points_saved": 30, + "points_rate": 2.993508539778542, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03387622038523356, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:09:31.315806", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020832061767578, + "points_saved": 30, + "points_rate": 2.9937633736482647, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03420941034952799, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:09:41.336960", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021154165267944, + "points_saved": 30, + "points_rate": 2.993667147041427, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0346364418665568, + "csv_write_time_avg": 2.4239222208658853e-06 + } + }, + { + "timestamp": "2025-08-16T19:09:51.358176", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021215677261353, + "points_saved": 30, + "points_rate": 2.9936487713832487, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.032182741165161136, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:10:01.379125", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020949840545654, + "points_saved": 30, + "points_rate": 2.9937281871841463, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03955988089243571, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:10:11.402968", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.023842334747314, + "points_saved": 30, + "points_rate": 2.992864312720283, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03396910826365153, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:10:21.426892", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023923635482788, + "points_saved": 30, + "points_rate": 2.992840038585858, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04043682416280111, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:10:31.447439", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.020547151565552, + "points_saved": 30, + "points_rate": 2.9938484941226964, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03308540185292562, + "csv_write_time_avg": 3.997484842936198e-06 + } + }, + { + "timestamp": "2025-08-16T19:10:41.469666", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02222752571106, + "points_saved": 30, + "points_rate": 2.9933465313013388, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035635002454121906, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:10:51.492104", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022438049316406, + "points_saved": 30, + "points_rate": 2.9932836553722764, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035645023981730146, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:11:01.512698", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.020593881607056, + "points_saved": 29, + "points_rate": 2.8940400481881534, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.09928355545833192, + "csv_write_time_avg": 1.5595863605367725e-05 + } + }, + { + "timestamp": "2025-08-16T19:11:11.562105", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.0494065284729, + "points_saved": 30, + "points_rate": 2.985250911583808, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11558911800384522, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:11:21.608925", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.046819925308228, + "points_saved": 29, + "points_rate": 2.886485496465222, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11980490848935883, + "csv_write_time_avg": 1.0375318856074891e-05 + } + }, + { + "timestamp": "2025-08-16T19:11:31.641962", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.033037185668945, + "points_saved": 30, + "points_rate": 2.9901214801487623, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.1062915007273356, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:11:41.672410", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 4.2% CPU", + "details": { + "duration": 10.030447959899902, + "points_saved": 30, + "points_rate": 2.9908933399520254, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 4.2, + "cpu_max": 4.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10167043209075928, + "csv_write_time_avg": 1.5958150227864584e-05 + } + }, + { + "timestamp": "2025-08-16T19:11:51.702622", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.03021240234375, + "points_saved": 29, + "points_rate": 2.891264794474701, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12335007766197467, + "csv_write_time_avg": 5.186837295006062e-05 + } + }, + { + "timestamp": "2025-08-16T19:12:01.812010", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 3.6% CPU", + "details": { + "duration": 10.062845230102539, + "points_saved": 30, + "points_rate": 2.9812641766819965, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 3.6, + "cpu_max": 3.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.13734569549560546, + "csv_write_time_avg": 0.006834896405537924 + } + }, + { + "timestamp": "2025-08-16T19:12:12.022833", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 27.9% CPU", + "details": { + "duration": 10.257365465164185, + "points_saved": 30, + "points_rate": 2.924727611771782, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 27.9, + "cpu_max": 27.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10403913656870524, + "csv_write_time_avg": 7.255872090657552e-06 + } + }, + { + "timestamp": "2025-08-16T19:12:22.072160", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.049326658248901, + "points_saved": 30, + "points_rate": 2.9852746378161332, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.1097390333811442, + "csv_write_time_avg": 4.177093505859375e-05 + } + }, + { + "timestamp": "2025-08-16T19:12:32.128849", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 4.8% CPU", + "details": { + "duration": 10.056689500808716, + "points_saved": 29, + "points_rate": 2.8836527166984665, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 4.8, + "cpu_max": 4.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12073146063705971, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:12:42.180414", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.051565170288086, + "points_saved": 30, + "points_rate": 2.9846098086971042, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.052029935518900554, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:12:52.210836", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 6.7% CPU", + "details": { + "duration": 10.03042197227478, + "points_saved": 30, + "points_rate": 2.9909010889993852, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 6.7, + "cpu_max": 6.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035839176177978514, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:13:02.233078", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022242069244385, + "points_saved": 30, + "points_rate": 2.993342187579173, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04259144465128581, + "csv_write_time_avg": 3.0835469563802084e-06 + } + }, + { + "timestamp": "2025-08-16T19:13:12.255831", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 2.8% CPU", + "details": { + "duration": 10.022752523422241, + "points_saved": 30, + "points_rate": 2.9931897380378083, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 2.8, + "cpu_max": 2.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03979020913441976, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:13:22.277177", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.0213463306427, + "points_saved": 30, + "points_rate": 2.9936097416639234, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036008230845133465, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:13:32.298639", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021461963653564, + "points_saved": 30, + "points_rate": 2.9935751997867963, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0313589334487915, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:13:42.320854", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.022215366363525, + "points_saved": 30, + "points_rate": 2.9933501629475803, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036451681454976397, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:13:52.343029", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022174596786499, + "points_saved": 30, + "points_rate": 2.993362339708108, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036104957262674965, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:14:02.364890", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021860837936401, + "points_saved": 30, + "points_rate": 2.9934560542328676, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03544267813364665, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:14:12.387828", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.022937774658203, + "points_saved": 30, + "points_rate": 2.993134415725039, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034711662928263345, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:14:22.419569", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.031741857528687, + "points_saved": 30, + "points_rate": 2.990507573466457, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03802084922790527, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:14:32.445012", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.025442838668823, + "points_saved": 30, + "points_rate": 2.992386519255582, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035738531748453775, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:14:42.467801", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.022788763046265, + "points_saved": 30, + "points_rate": 2.9931789154939734, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03576900164286296, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:14:52.489778", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 1.6% CPU", + "details": { + "duration": 10.021976947784424, + "points_saved": 30, + "points_rate": 2.99342137347783, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.6, + "cpu_max": 1.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03509997526804606, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:15:02.516858", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.027080297470093, + "points_saved": 30, + "points_rate": 2.991897851617806, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034346755345662436, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:15:12.542578", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.02571988105774, + "points_saved": 30, + "points_rate": 2.992303830140018, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03341960112253825, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:15:22.564223", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021644592285156, + "points_saved": 30, + "points_rate": 2.9935206466106914, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03856631914774577, + "csv_write_time_avg": 1.8676122029622395e-06 + } + }, + { + "timestamp": "2025-08-16T19:15:32.587374", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02315068244934, + "points_saved": 30, + "points_rate": 2.9930708367509995, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.07393383979797363, + "csv_write_time_avg": 0.0034141381581624347 + } + }, + { + "timestamp": "2025-08-16T19:15:42.627091", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 11.4% CPU", + "details": { + "duration": 10.039717197418213, + "points_saved": 30, + "points_rate": 2.9881319772348487, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 11.4, + "cpu_max": 11.4, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.13204529285430908, + "csv_write_time_avg": 0.002132876714070638 + } + }, + { + "timestamp": "2025-08-16T19:15:52.709882", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 12.8% CPU", + "details": { + "duration": 10.051823854446411, + "points_saved": 29, + "points_rate": 2.8850485663029093, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 12.8, + "cpu_max": 12.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12764191627502441, + "csv_write_time_avg": 0.0047072213271568564 + } + }, + { + "timestamp": "2025-08-16T19:16:03.272298", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 18.6% CPU", + "details": { + "duration": 10.545773983001709, + "points_saved": 31, + "points_rate": 2.939566128571274, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 18.6, + "cpu_max": 18.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12527349687391712, + "csv_write_time_avg": 0.006640495792511971 + } + }, + { + "timestamp": "2025-08-16T19:16:13.714731", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 28.5% CPU", + "details": { + "duration": 10.490042686462402, + "points_saved": 31, + "points_rate": 2.955183398825067, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 28.5, + "cpu_max": 28.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.17165814676592428, + "csv_write_time_avg": 0.010614848905994047 + } + }, + { + "timestamp": "2025-08-16T19:16:23.764646", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 14.0% CPU", + "details": { + "duration": 10.047585248947144, + "points_saved": 30, + "points_rate": 2.985792034274465, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 14.0, + "cpu_max": 14.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10109870433807373, + "csv_write_time_avg": 6.14325205485026e-06 + } + }, + { + "timestamp": "2025-08-16T19:16:33.819746", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.057429313659668, + "points_saved": 30, + "points_rate": 2.98286958470143, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0682836373647054, + "csv_write_time_avg": 1.8437703450520833e-06 + } + }, + { + "timestamp": "2025-08-16T19:16:43.841807", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022061109542847, + "points_saved": 30, + "points_rate": 2.993396235773745, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03508152961730957, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:16:53.865649", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023842096328735, + "points_saved": 30, + "points_rate": 2.9928643839060074, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03584434191385905, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:17:03.889184", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.023535013198853, + "points_saved": 30, + "points_rate": 2.992956073929648, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03705562750498454, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:17:13.911783", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022598505020142, + "points_saved": 30, + "points_rate": 2.993235734722241, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03309902350107829, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:17:23.933307", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021524906158447, + "points_saved": 30, + "points_rate": 2.9935563979454205, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0322664737701416, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:17:33.955695", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022387981414795, + "points_saved": 30, + "points_rate": 2.9932986086380877, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0366328239440918, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:17:43.979073", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.023377418518066, + "points_saved": 30, + "points_rate": 2.993003131317331, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034492087364196775, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:17:54.003532", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02445936203003, + "points_saved": 30, + "points_rate": 2.9926800954106287, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03611936569213867, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:18:04.028119", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02458667755127, + "points_saved": 30, + "points_rate": 2.992642087397081, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03341340223948161, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:18:14.051374", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022731304168701, + "points_saved": 30, + "points_rate": 2.9931960749583557, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.039432740211486815, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:18:24.093772", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.042921304702759, + "points_saved": 30, + "points_rate": 2.9871786395410687, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036375999450683594, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:18:34.116268", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022496461868286, + "points_saved": 30, + "points_rate": 2.993266210084321, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03750355243682861, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:18:44.145632", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.028759002685547, + "points_saved": 30, + "points_rate": 2.991397040448022, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035286386807759605, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:18:54.182567", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.037540197372437, + "points_saved": 30, + "points_rate": 2.9887800606619948, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0366624116897583, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:19:04.206788", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024221181869507, + "points_saved": 30, + "points_rate": 2.99275120288248, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034904193878173825, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:19:14.228686", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021897315979004, + "points_saved": 30, + "points_rate": 2.9934451585497417, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.039334623018900554, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:19:24.252233", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023547649383545, + "points_saved": 30, + "points_rate": 2.992952300859768, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.038429967562357586, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:19:34.277448", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.025214433670044, + "points_saved": 30, + "points_rate": 2.992454694958336, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03453621069590251, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:19:44.300623", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.023175477981567, + "points_saved": 30, + "points_rate": 2.993063432432423, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035415784517923994, + "csv_write_time_avg": 1.8517176310221354e-06 + } + }, + { + "timestamp": "2025-08-16T19:19:54.324301", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.023677349090576, + "points_saved": 30, + "points_rate": 2.9929135740509274, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.041378331184387204, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:20:04.362004", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.0377037525177, + "points_saved": 30, + "points_rate": 2.9887313612413866, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04175265630086263, + "csv_write_time_avg": 6.663004557291666e-05 + } + }, + { + "timestamp": "2025-08-16T19:20:14.394759", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 4.2% CPU", + "details": { + "duration": 10.03275465965271, + "points_saved": 30, + "points_rate": 2.99020568305599, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 4.2, + "cpu_max": 4.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.038167627652486165, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:20:24.420594", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.024834394454956, + "points_saved": 30, + "points_rate": 2.9925681382421563, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0391517957051595, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T19:20:34.470446", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.050852537155151, + "points_saved": 30, + "points_rate": 2.9848214257545327, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.06537377039591472, + "csv_write_time_avg": 0.0 + } } ], - "last_updated": "2025-08-16T18:34:22.923863", + "last_updated": "2025-08-16T19:20:34.470446", "total_entries": 1000 } \ No newline at end of file diff --git a/frontend/src/components/ChartjsHistoricalPlot.jsx b/frontend/src/components/ChartjsHistoricalPlot.jsx index 98c50cc..6db0b53 100644 --- a/frontend/src/components/ChartjsHistoricalPlot.jsx +++ b/frontend/src/components/ChartjsHistoricalPlot.jsx @@ -461,12 +461,6 @@ const ChartjsHistoricalPlot = ({ console.log('📊 Zoom/Pan events setup for historical chart'); }; - const resetZoom = useCallback(() => { - if (chartRef.current && window.Chart.registry.plugins.get('zoom')) { - chartRef.current.resetZoom(); - } - }, []); - const toggleZoom = useCallback(() => { setIsZoomEnabled(!isZoomEnabled); }, [isZoomEnabled]); @@ -523,17 +517,6 @@ const ChartjsHistoricalPlot = ({ /> - {isZoomEnabled && ( - - )} - {dataPointsCount.toLocaleString()} data points {(() => { diff --git a/frontend/src/components/DataAvailabilityBar.jsx b/frontend/src/components/DataAvailabilityBar.jsx new file mode 100644 index 0000000..49bdf41 --- /dev/null +++ b/frontend/src/components/DataAvailabilityBar.jsx @@ -0,0 +1,107 @@ +import { useMemo } from 'react' +import { Box, Tooltip, useColorModeValue } from '@chakra-ui/react' + +/** + * DataAvailabilityBar - Shows data availability segments on a timeline + * Used under time selectors to visualize where data exists + */ +export default function DataAvailabilityBar({ + segments = [], + minDate, + maxDate, + height = '8px', + showTooltips = true +}) { + // Color mode + const bgColor = useColorModeValue('gray.100', 'gray.600') + const segmentColor = useColorModeValue('blue.400', 'blue.300') + const borderColor = useColorModeValue('gray.300', 'gray.500') + + // Convert segments to visual blocks + const visualSegments = useMemo(() => { + if (!segments || segments.length === 0 || !minDate || !maxDate) { + return [] + } + + const totalRange = maxDate.getTime() - minDate.getTime() + if (totalRange <= 0) return [] + + return segments.map((segment, index) => { + try { + const startTime = new Date(segment.start).getTime() + const endTime = new Date(segment.end).getTime() + + // Calculate positions as percentages + const leftPercent = Math.max(0, ((startTime - minDate.getTime()) / totalRange) * 100) + const rightPercent = Math.min(100, ((endTime - minDate.getTime()) / totalRange) * 100) + const widthPercent = Math.max(0.1, rightPercent - leftPercent) // Minimum 0.1% width for visibility + + return { + id: `${segment.dataset}-${index}`, + dataset: segment.dataset, + left: leftPercent, + width: widthPercent, + start: segment.start, + end: segment.end, + filesCount: segment.files_count || 0, + dateFolder: segment.date_folder || '' + } + } catch (error) { + console.warn('Error processing segment:', segment, error) + return null + } + }).filter(Boolean) + }, [segments, minDate, maxDate]) + + if (!visualSegments.length) { + return ( + + {/* Empty state - no data available */} + + ) + } + + return ( + + {visualSegments.map((segment) => ( + + + + ))} + + ) +} diff --git a/frontend/src/components/PlotHistoricalSession.jsx b/frontend/src/components/PlotHistoricalSession.jsx index d752a3b..f61c606 100644 --- a/frontend/src/components/PlotHistoricalSession.jsx +++ b/frontend/src/components/PlotHistoricalSession.jsx @@ -48,6 +48,7 @@ import { import { SettingsIcon, RepeatIcon, ViewIcon, DeleteIcon, TimeIcon, CalendarIcon } from '@chakra-ui/icons' import ChartjsHistoricalPlot from './ChartjsHistoricalPlot.jsx' import TimePointSelector from './TimePointSelector.jsx' +import DataAvailabilityBar from './DataAvailabilityBar.jsx' import * as api from '../services/api' /** @@ -78,6 +79,7 @@ export default function PlotHistoricalSession({ }) const [timeRangeSeconds, setTimeRangeSeconds] = useState(1000) // 500 seg atrás + 500 seg adelante const [dateRange, setDateRange] = useState(null) // Min/max dates disponibles del backend + const [dataSegments, setDataSegments] = useState([]) // Data availability segments // Debounced state updates for pan/zoom with 1s cooldown const pendingUpdatesRef = useRef({ centralTime: null, rangeSeconds: null }) @@ -173,6 +175,7 @@ export default function PlotHistoricalSession({ // Load date range from backend on mount useEffect(() => { loadDateRange() + loadDataSegments() }, []) // Load historical data when derived time range changes @@ -216,6 +219,18 @@ export default function PlotHistoricalSession({ } } + const loadDataSegments = async () => { + try { + const response = await api.getHistoricalDataSegments() + if (response.success) { + setDataSegments(response.segments || []) + } + } catch (error) { + console.error('Error loading data segments:', error) + // Non-critical error, don't set error state + } + } + // Function to check if a range is contained within another range const isRangeContained = (newRange, existingRange) => { if (!existingRange || !newRange) return false @@ -428,7 +443,7 @@ export default function PlotHistoricalSession({ const formatCentralTimeInfo = () => { const halfRange = timeRangeSeconds / 2 return { - central: centralTime.toLocaleString('es-ES', { + central: centralTime.toLocaleString('en-US', { day: '2-digit', month: '2-digit', year: 'numeric', @@ -437,7 +452,7 @@ export default function PlotHistoricalSession({ hour12: false }), range: `±${halfRange}s (${timeRangeSeconds}s total)`, - start: derivedTimeRange.start.toLocaleString('es-ES', { + start: derivedTimeRange.start.toLocaleString('en-US', { day: '2-digit', month: '2-digit', year: 'numeric', @@ -445,7 +460,7 @@ export default function PlotHistoricalSession({ minute: '2-digit', hour12: false }), - end: derivedTimeRange.end.toLocaleString('es-ES', { + end: derivedTimeRange.end.toLocaleString('en-US', { day: '2-digit', month: '2-digit', year: 'numeric', @@ -483,7 +498,7 @@ export default function PlotHistoricalSession({ - Centro: {formatCentralTimeInfo().central} + Center: {formatCentralTimeInfo().central} @@ -572,13 +587,14 @@ export default function PlotHistoricalSession({ maxDate={dateRange.maxDate} initial={centralTime} stepMinutes={1} + dataSegments={dataSegments} onTimeChange={handleTimePointChange} /> - Rango: {timeRangeSeconds}s - Desde: {formatCentralTimeInfo().start} - Hasta: {formatCentralTimeInfo().end} + Range: {timeRangeSeconds}s + From: {formatCentralTimeInfo().start} + To: {formatCentralTimeInfo().end} diff --git a/frontend/src/components/TimePointSelector.jsx b/frontend/src/components/TimePointSelector.jsx index 9b3cc54..7e11b8d 100644 --- a/frontend/src/components/TimePointSelector.jsx +++ b/frontend/src/components/TimePointSelector.jsx @@ -3,12 +3,14 @@ import { Box, Flex, Text, Slider, SliderTrack, SliderFilledTrack, SliderThumb, B import { CheckIcon } from "@chakra-ui/icons"; import DatePicker from "react-datepicker"; import "react-datepicker/dist/react-datepicker.css"; +import DataAvailabilityBar from "./DataAvailabilityBar.jsx"; export default function TimePointSelector({ minDate, maxDate, initial, stepMinutes = 5, + dataSegments = [], onTimeChange, }) { // Color mode values @@ -134,7 +136,7 @@ export default function TimePointSelector({ - Seleccionar fecha y hora + Select Date and Time @@ -196,7 +198,7 @@ export default function TimePointSelector({ - Navegar con slider + Navigate with slider {hasPendingChanges && (