diff --git a/application_events.json b/application_events.json index 4ad484d..b1498f4 100644 --- a/application_events.json +++ b/application_events.json @@ -1,3797 +1,5 @@ { "events": [ - { - "timestamp": "2025-08-21T16:25:10.369524", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 24 points saved, 16 lost, 0.5% CPU", - "details": { - "duration": 10.024651765823364, - "points_saved": 24, - "points_rate": 2.3940981253655336, - "variables_saved": 72, - "udp_points_sent": 0, - "points_lost": 16, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 1.0836293995380402, - "delay_max": 2.4433116912841797, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.6654533445835114, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:25:20.394379", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 33 points saved, 7 lost, 0.2% CPU", - "details": { - "duration": 10.024855375289917, - "points_saved": 33, - "points_rate": 3.2918180626666294, - "variables_saved": 99, - "udp_points_sent": 0, - "points_lost": 7, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.9300810694694519, - "delay_max": 1.1758499145507812, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.36859555677934125, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:25:30.417864", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 26 points saved, 12 lost, 0.5% CPU", - "details": { - "duration": 10.023484230041504, - "points_saved": 26, - "points_rate": 2.593908405829092, - "variables_saved": 78, - "udp_points_sent": 0, - "points_lost": 12, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 1.118748378753662, - "delay_max": 2.4328675270080566, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.45634556733644926, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:25:40.442486", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 5 lost, 0.8% CPU", - "details": { - "duration": 10.024622678756714, - "points_saved": 37, - "points_rate": 3.690911985984979, - "variables_saved": 111, - "udp_points_sent": 0, - "points_lost": 5, - "cpu_average": 0.8, - "cpu_max": 0.8, - "delay_average": 0.600855827331543, - "delay_max": 1.0218746662139893, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3198038307396141, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:25:50.466919", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 34 points saved, 6 lost, 0.2% CPU", - "details": { - "duration": 10.023929357528687, - "points_saved": 34, - "points_rate": 3.3918834408448393, - "variables_saved": 102, - "udp_points_sent": 0, - "points_lost": 6, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.46743106842041016, - "delay_max": 0.78084397315979, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3905345552107867, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:26:00.490765", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 33 points saved, 4 lost, 0.0% CPU", - "details": { - "duration": 10.023844003677368, - "points_saved": 33, - "points_rate": 3.292150195862341, - "variables_saved": 99, - "udp_points_sent": 0, - "points_lost": 4, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.30614587664604187, - "delay_max": 0.5768396854400635, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3820333191842744, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:26:10.514388", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 33 points saved, 7 lost, 0.2% CPU", - "details": { - "duration": 10.023626327514648, - "points_saved": 33, - "points_rate": 3.292221689211985, - "variables_saved": 99, - "udp_points_sent": 0, - "points_lost": 7, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.6527783870697021, - "delay_max": 0.9736788272857666, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.4131336934638746, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:26:20.539429", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 34 points saved, 6 lost, 0.2% CPU", - "details": { - "duration": 10.02454423904419, - "points_saved": 34, - "points_rate": 3.3916753908446813, - "variables_saved": 102, - "udp_points_sent": 0, - "points_lost": 6, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.49126724402109784, - "delay_max": 0.608370304107666, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.36037222076864805, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:26:30.569539", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 25 points saved, 1 lost, 0.0% CPU", - "details": { - "duration": 10.030601978302002, - "points_saved": 25, - "points_rate": 2.492372846024546, - "variables_saved": 75, - "udp_points_sent": 0, - "points_lost": 1, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.1377269426981608, - "delay_max": 0.20629501342773438, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.2965036106109619, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:26:40.593586", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 30 points saved, 23 lost, 0.5% CPU", - "details": { - "duration": 10.024052143096924, - "points_saved": 30, - "points_rate": 2.992801670595812, - "variables_saved": 90, - "udp_points_sent": 0, - "points_lost": 23, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 1.504829317331314, - "delay_max": 3.3318283557891846, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.7017861684163411, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:26:50.628223", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 39 points saved, 0 lost, 0.6% CPU", - "details": { - "duration": 10.034635305404663, - "points_saved": 39, - "points_rate": 3.8865388539825227, - "variables_saved": 117, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.6, - "cpu_max": 0.6, - "delay_average": 0.10653424263000488, - "delay_max": 0.18605875968933105, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.26273080018850475, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:27:00.651730", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 30 points saved, 5 lost, 0.5% CPU", - "details": { - "duration": 10.02401065826416, - "points_saved": 30, - "points_rate": 2.9928140564442542, - "variables_saved": 90, - "udp_points_sent": 0, - "points_lost": 5, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.5086377263069153, - "delay_max": 0.748605489730835, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.32550986607869464, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:27:10.676073", - "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-21T16:27:10.700296", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-21T16:27:10.906102", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-21T16:27:10.931090", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-21T16:27:11.020924", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-21T16:27:11.044740", - "level": "info", - "event_type": "plc_disconnection", - "message": "Disconnected from PLC 10.1.33.11 (manually disconnected)", - "details": {} - }, - { - "timestamp": "2025-08-21T16:36:39.839025", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-21T16:36:39.865980", - "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-21T16:36:39.891153", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-21T16:36:39.919000", - "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-21T16:43:20.556449", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-21T16:46:51.987129", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-21T16:49:49.097135", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-21T16:50:08.446909", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-21T16:50:50.845606", - "level": "error", - "event_type": "plc_connection_failed", - "message": "Failed to connect to PLC 10.1.33.11", - "details": { - "ip": "10.1.33.11", - "rack": 0, - "slot": 2, - "symbols_path": "C:/Users/migue/Downloads/symSAE452.asc", - "error": "b' TCP : Unreachable peer'" - } - }, - { - "timestamp": "2025-08-21T16:51:30.265041", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-21T16:51:47.085245", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 3, - "streaming_count": 3, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-21T16:51:47.116113", - "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-21T16:51:47.154734", - "level": "info", - "event_type": "csv_recording_started", - "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3, - "priority": "CRITICAL", - "recording_protection": true, - "performance_monitoring": true, - "async_csv_buffering": true, - "csv_flush_interval": 5.0 - } - }, - { - "timestamp": "2025-08-21T16:51:47.187843", - "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": [ - "DAR", - "Fast", - "test" - ] - } - }, - { - "timestamp": "2025-08-21T16:51:57.086001", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 28 points saved, 10 lost, 0.0% CPU", - "details": { - "duration": 27.824703693389893, - "points_saved": 28, - "points_rate": 1.0063000241994222, - "variables_saved": 84, - "udp_points_sent": 0, - "points_lost": 10, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.8835371562412807, - "delay_max": 1.1541330814361572, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.5202504055840629, - "csv_write_time_avg": 0.00021372522626604353 - } - }, - { - "timestamp": "2025-08-21T16:52:07.123224", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 31 points saved, 8 lost, 0.3% CPU", - "details": { - "duration": 10.03722858428955, - "points_saved": 31, - "points_rate": 3.088501944503063, - "variables_saved": 93, - "udp_points_sent": 0, - "points_lost": 8, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.7352630297342936, - "delay_max": 1.4130275249481201, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.38508862064730737, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:52:17.149226", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 34 points saved, 7 lost, 0.2% CPU", - "details": { - "duration": 10.026506185531616, - "points_saved": 34, - "points_rate": 3.391011721417223, - "variables_saved": 102, - "udp_points_sent": 0, - "points_lost": 7, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.5432735284169515, - "delay_max": 0.654268741607666, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.340193089316873, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:52:27.173647", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 29 points saved, 8 lost, 0.2% CPU", - "details": { - "duration": 10.023896217346191, - "points_saved": 29, - "points_rate": 2.893086617339071, - "variables_saved": 87, - "udp_points_sent": 0, - "points_lost": 8, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 1.277729590733846, - "delay_max": 1.936011791229248, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3667390675380312, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:52:37.197987", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 4 lost, 0.2% CPU", - "details": { - "duration": 10.02436351776123, - "points_saved": 40, - "points_rate": 3.990278278429124, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 4, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.49927741289138794, - "delay_max": 0.8154547214508057, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.2802930951118469, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:52:38.430695", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-21T16:52:44.101521", - "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-21T16:52:44.127763", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-21T16:52:44.361737", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-21T16:52:44.546253", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-21T16:52:44.569921", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-21T16:52:44.593503", - "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-21T16:53:01.347197", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-21T16:53:03.217987", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 3, - "streaming_count": 3, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-21T16:53:03.241908", - "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-21T16:53:03.265827", - "level": "info", - "event_type": "csv_recording_started", - "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3, - "priority": "CRITICAL", - "recording_protection": true, - "performance_monitoring": true, - "async_csv_buffering": true, - "csv_flush_interval": 5.0 - } - }, - { - "timestamp": "2025-08-21T16:53:13.217436", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 38 points saved, 2 lost, 0.0% CPU", - "details": { - "duration": 12.874194145202637, - "points_saved": 38, - "points_rate": 2.951641055852812, - "variables_saved": 114, - "udp_points_sent": 0, - "points_lost": 2, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.4397190809249878, - "delay_max": 0.5078413486480713, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.28428461049732406, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:53:23.240388", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 3 lost, 0.8% CPU", - "details": { - "duration": 10.02295207977295, - "points_saved": 36, - "points_rate": 3.5917561725801956, - "variables_saved": 108, - "udp_points_sent": 0, - "points_lost": 3, - "cpu_average": 0.8, - "cpu_max": 0.8, - "delay_average": 0.6502220630645752, - "delay_max": 0.6686134338378906, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.2463507056236267, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:53:33.264268", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 30 points saved, 12 lost, 0.2% CPU", - "details": { - "duration": 10.023880243301392, - "points_saved": 30, - "points_rate": 2.992852994233241, - "variables_saved": 90, - "udp_points_sent": 0, - "points_lost": 12, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.9925717910130819, - "delay_max": 2.2608680725097656, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.4641139348347982, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:53:43.289184", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 4 lost, 0.3% CPU", - "details": { - "duration": 10.02491569519043, - "points_saved": 37, - "points_rate": 3.690804104991245, - "variables_saved": 111, - "udp_points_sent": 0, - "points_lost": 4, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.2626486619313558, - "delay_max": 0.38835644721984863, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.29797657760413915, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:53:53.312440", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 35 points saved, 2 lost, 0.2% CPU", - "details": { - "duration": 10.023256778717041, - "points_saved": 35, - "points_rate": 3.4918790142459004, - "variables_saved": 105, - "udp_points_sent": 0, - "points_lost": 2, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.42356055974960327, - "delay_max": 0.6793680191040039, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3215367180960519, - "csv_write_time_avg": 2.1730150495256695e-06 - } - }, - { - "timestamp": "2025-08-21T16:54:03.342383", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 33 points saved, 2 lost, 0.3% CPU", - "details": { - "duration": 10.029942989349365, - "points_saved": 33, - "points_rate": 3.2901483124123603, - "variables_saved": 99, - "udp_points_sent": 0, - "points_lost": 2, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.42848364512125653, - "delay_max": 0.5327439308166504, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.2555470683357932, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:54:13.366492", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 7 lost, 0.3% CPU", - "details": { - "duration": 10.023106098175049, - "points_saved": 37, - "points_rate": 3.691470452132274, - "variables_saved": 111, - "udp_points_sent": 0, - "points_lost": 7, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.5698193609714508, - "delay_max": 1.4589383602142334, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.4048425635776004, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:54:23.389179", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 34 points saved, 6 lost, 0.3% CPU", - "details": { - "duration": 10.023183584213257, - "points_saved": 34, - "points_rate": 3.3921358133707913, - "variables_saved": 102, - "udp_points_sent": 0, - "points_lost": 6, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.49664413928985596, - "delay_max": 0.6097054481506348, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3359138614991132, - "csv_write_time_avg": 2.7558382819680606e-06 - } - }, - { - "timestamp": "2025-08-21T16:54:33.414386", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 33 points saved, 4 lost, 0.2% CPU", - "details": { - "duration": 10.025712490081787, - "points_saved": 33, - "points_rate": 3.291536639679839, - "variables_saved": 99, - "udp_points_sent": 0, - "points_lost": 4, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.6580202579498291, - "delay_max": 0.8790240287780762, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3289936455813321, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:54:43.438390", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 28 points saved, 13 lost, 0.2% CPU", - "details": { - "duration": 10.024003982543945, - "points_saved": 28, - "points_rate": 2.7932949796069426, - "variables_saved": 84, - "udp_points_sent": 0, - "points_lost": 13, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.9806713036128453, - "delay_max": 2.0644259452819824, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.5201118673597064, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:54:53.462255", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 34 points saved, 4 lost, 0.0% CPU", - "details": { - "duration": 10.023865699768066, - "points_saved": 34, - "points_rate": 3.3919049814071927, - "variables_saved": 102, - "udp_points_sent": 0, - "points_lost": 4, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.6001495520273844, - "delay_max": 0.9582748413085938, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.2855761682285982, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:55:03.487118", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 6 lost, 0.2% CPU", - "details": { - "duration": 10.024862289428711, - "points_saved": 37, - "points_rate": 3.690823767127132, - "variables_saved": 111, - "udp_points_sent": 0, - "points_lost": 6, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.4659137385232108, - "delay_max": 0.8233795166015625, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.37062620472263647, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:55:13.511985", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 26 points saved, 13 lost, 0.3% CPU", - "details": { - "duration": 10.024867296218872, - "points_saved": 26, - "points_rate": 2.593550541043725, - "variables_saved": 78, - "udp_points_sent": 0, - "points_lost": 13, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 1.1262418826421101, - "delay_max": 1.5724685192108154, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.5372112530928391, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:55:23.537993", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 4 lost, 0.3% CPU", - "details": { - "duration": 10.025500774383545, - "points_saved": 36, - "points_rate": 3.5908430720971736, - "variables_saved": 108, - "udp_points_sent": 0, - "points_lost": 4, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.3937075614929199, - "delay_max": 0.8325951099395752, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.2873781720797221, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:55:33.562755", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 35 points saved, 3 lost, 0.0% CPU", - "details": { - "duration": 10.025269746780396, - "points_saved": 35, - "points_rate": 3.491177881895917, - "variables_saved": 105, - "udp_points_sent": 0, - "points_lost": 3, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.2688140273094177, - "delay_max": 0.3460674285888672, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.2639164856501988, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:55:43.586713", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 5 lost, 0.8% CPU", - "details": { - "duration": 10.023957967758179, - "points_saved": 36, - "points_rate": 3.591395745651881, - "variables_saved": 108, - "udp_points_sent": 0, - "points_lost": 5, - "cpu_average": 0.8, - "cpu_max": 0.8, - "delay_average": 0.5058521032333374, - "delay_max": 1.0866453647613525, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.34817906220753986, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:55:53.611213", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 6 lost, 0.2% CPU", - "details": { - "duration": 10.023500442504883, - "points_saved": 37, - "points_rate": 3.691325222384453, - "variables_saved": 111, - "udp_points_sent": 0, - "points_lost": 6, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.3507404327392578, - "delay_max": 0.4866204261779785, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3246876162451667, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:56:03.641369", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 35 points saved, 7 lost, 0.3% CPU", - "details": { - "duration": 10.030651092529297, - "points_saved": 35, - "points_rate": 3.4893048992669637, - "variables_saved": 105, - "udp_points_sent": 0, - "points_lost": 7, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.4017542203267415, - "delay_max": 0.7608156204223633, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3490114825112479, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:56:13.667676", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 29 points saved, 8 lost, 0.3% CPU", - "details": { - "duration": 10.026293754577637, - "points_saved": 29, - "points_rate": 2.892394808077478, - "variables_saved": 87, - "udp_points_sent": 0, - "points_lost": 8, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 1.1269780397415161, - "delay_max": 2.233947992324829, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.41037073628655796, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:56:23.694563", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 3 lost, 0.0% CPU", - "details": { - "duration": 10.026402473449707, - "points_saved": 40, - "points_rate": 3.9894668208184854, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 3, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.22768783569335938, - "delay_max": 0.3014225959777832, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.25233100056648256, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:56:33.728269", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 3 lost, 0.0% CPU", - "details": { - "duration": 10.034708023071289, - "points_saved": 36, - "points_rate": 3.58754832898283, - "variables_saved": 108, - "udp_points_sent": 0, - "points_lost": 3, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.5452591776847839, - "delay_max": 0.8806908130645752, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3062741160392761, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:56:43.763186", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 26 points saved, 12 lost, 0.2% CPU", - "details": { - "duration": 10.034916639328003, - "points_saved": 26, - "points_rate": 2.5909532619437, - "variables_saved": 78, - "udp_points_sent": 0, - "points_lost": 12, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 1.0101543154035295, - "delay_max": 2.1430282592773438, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.5883615933931791, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:56:53.791017", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 2 lost, 0.3% CPU", - "details": { - "duration": 10.027831315994263, - "points_saved": 36, - "points_rate": 3.590008533807351, - "variables_saved": 108, - "udp_points_sent": 0, - "points_lost": 2, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.42573481798171997, - "delay_max": 0.7930829524993896, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.29288768768310547, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:57:03.818927", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 33 points saved, 7 lost, 0.3% CPU", - "details": { - "duration": 10.027909994125366, - "points_saved": 33, - "points_rate": 3.290815336329538, - "variables_saved": 99, - "udp_points_sent": 0, - "points_lost": 7, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.6513587633768717, - "delay_max": 0.9422285556793213, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3773016496138139, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:57:13.844940", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 32 points saved, 7 lost, 0.6% CPU", - "details": { - "duration": 10.026012420654297, - "points_saved": 32, - "points_rate": 3.191697621885819, - "variables_saved": 96, - "udp_points_sent": 0, - "points_lost": 7, - "cpu_average": 0.6, - "cpu_max": 0.6, - "delay_average": 0.8788493871688843, - "delay_max": 1.3608324527740479, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.3574381172657013, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:57:23.871713", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 34 points saved, 6 lost, 0.8% CPU", - "details": { - "duration": 10.023780107498169, - "points_saved": 34, - "points_rate": 3.391933944617032, - "variables_saved": 102, - "udp_points_sent": 0, - "points_lost": 6, - "cpu_average": 0.8, - "cpu_max": 0.8, - "delay_average": 0.9135034084320068, - "delay_max": 1.3995976448059082, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.33987117514890786, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:57:33.913851", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 3 lost, 0.5% CPU", - "details": { - "duration": 10.04413104057312, - "points_saved": 37, - "points_rate": 3.6837432576834215, - "variables_saved": 111, - "udp_points_sent": 0, - "points_lost": 3, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.31731951236724854, - "delay_max": 0.5694646835327148, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.29563796842420426, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:57:43.946565", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 25 points saved, 10 lost, 0.5% CPU", - "details": { - "duration": 10.033714056015015, - "points_saved": 25, - "points_rate": 2.491599806455815, - "variables_saved": 75, - "udp_points_sent": 0, - "points_lost": 10, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 1.0643071174621581, - "delay_max": 1.8364009857177734, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.4587916088104248, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:57:53.971296", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 34 points saved, 8 lost, 0.5% CPU", - "details": { - "duration": 10.024731636047363, - "points_saved": 34, - "points_rate": 3.391611988668238, - "variables_saved": 102, - "udp_points_sent": 0, - "points_lost": 8, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.5907976925373077, - "delay_max": 1.2092702388763428, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.4195743308347814, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:58:03.997828", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 3 lost, 0.5% CPU", - "details": { - "duration": 10.026531219482422, - "points_saved": 37, - "points_rate": 3.6902094243825605, - "variables_saved": 111, - "udp_points_sent": 0, - "points_lost": 3, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.4645344416300456, - "delay_max": 0.7696645259857178, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.30814355128520243, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T16:58:09.197621", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-21T16:58:14.024878", - "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-21T16:58:14.049024", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-21T16:58:14.071679", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-21T16:58:14.982735", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-21T16:58:16.101304", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-21T16:58:16.125233", - "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-21T17:13:04.188526", - "level": "test_start", - "event_type": "Snap7 V2 Comprehensive Test Started", - "message": { - "version": "2.0" - }, - "details": {} - }, - { - "timestamp": "2025-08-21T20:27:04.624797", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-21T20:27:04.758494", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 3, - "streaming_count": 3, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-21T20:27:04.780496", - "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-21T20:27:04.803689", - "level": "info", - "event_type": "csv_recording_started", - "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3, - "priority": "CRITICAL", - "recording_protection": true, - "performance_monitoring": true, - "async_csv_buffering": true, - "csv_flush_interval": 5.0 - } - }, - { - "timestamp": "2025-08-21T20:27:14.758941", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 11.137519836425781, - "points_saved": 40, - "points_rate": 3.59146386156621, - "variables_saved": 120, - "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.1075567901134491, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:27:24.799340", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.040399312973022, - "points_saved": 40, - "points_rate": 3.9839052963079573, - "variables_saved": 120, - "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.09587008953094482, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:27:34.825458", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 1.9% CPU", - "details": { - "duration": 10.026118516921997, - "points_saved": 40, - "points_rate": 3.989579809224112, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 1.9, - "cpu_max": 1.9, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.10530199408531189, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:27:44.261803", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1_1755800864260_2", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_2.0S" - ], - "time_window": 60, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-21T20:27:44.860249", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.034790277481079, - "points_saved": 40, - "points_rate": 3.986132135692302, - "variables_saved": 120, - "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.10575302839279174, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:27:54.893126", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.032258987426758, - "points_saved": 41, - "points_rate": 4.086816344293397, - "variables_saved": 123, - "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.11475768903406655, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:27:57.699925", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'Clock' created and started", - "details": { - "session_id": "Clock_1755800877699_3", - "variables": [ - "AUX Blink_2.0S", - "M50.1", - "M50.2" - ], - "time_window": 10, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-21T20:28:04.922389", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029881477355957, - "points_saved": 40, - "points_rate": 3.98808301875813, - "variables_saved": 120, - "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.1172984778881073, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:28:14.950096", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.02717900276184, - "points_saved": 40, - "points_rate": 3.9891578667322665, - "variables_saved": 120, - "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.09763008952140809, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:28:24.974185", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024616956710815, - "points_saved": 40, - "points_rate": 3.9901773975735457, - "variables_saved": 120, - "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.11843433380126953, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:28:35.000395", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026209592819214, - "points_saved": 40, - "points_rate": 3.9895435687528473, - "variables_saved": 120, - "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.11554068922996522, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:28:45.027276", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.8% CPU", - "details": { - "duration": 10.026880979537964, - "points_saved": 41, - "points_rate": 4.089008345034656, - "variables_saved": 123, - "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.1019672824115288, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:28:55.050015", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.022738933563232, - "points_saved": 40, - "points_rate": 3.990925062015898, - "variables_saved": 120, - "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.10392338633537293, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:29:05.073683", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.023668050765991, - "points_saved": 40, - "points_rate": 3.9905551338507532, - "variables_saved": 120, - "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.10820170640945434, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:29:15.104749", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.031065940856934, - "points_saved": 40, - "points_rate": 3.9876121078098388, - "variables_saved": 120, - "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.12057952284812927, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:29:25.133876", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.02912712097168, - "points_saved": 40, - "points_rate": 3.988382988620905, - "variables_saved": 120, - "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.11160809397697449, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:29:35.158152", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.023769617080688, - "points_saved": 40, - "points_rate": 3.9905146993641254, - "variables_saved": 120, - "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.12997862100601196, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:29:45.195183", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 39 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.037537336349487, - "points_saved": 39, - "points_rate": 3.885415186329335, - "variables_saved": 117, - "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.12308825590671638, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-21T20:29:55.233803", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.038620233535767, - "points_saved": 41, - "points_rate": 4.0842266214068275, - "variables_saved": 123, - "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.13901661663520626, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T11:17:19.139701", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-22T11:17:19.255558", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 3, - "streaming_count": 3, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-22T11:17:19.278577", - "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-22T11:17:19.300390", - "level": "info", - "event_type": "csv_recording_started", - "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3, - "priority": "CRITICAL", - "recording_protection": true, - "performance_monitoring": true, - "async_csv_buffering": true, - "csv_flush_interval": 5.0 - } - }, - { - "timestamp": "2025-08-22T11:17:29.256253", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 11.118588209152222, - "points_saved": 40, - "points_rate": 3.597579049386338, - "variables_saved": 120, - "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.09855996966361999, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T11:17:39.281101", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.8% CPU", - "details": { - "duration": 10.025440692901611, - "points_saved": 40, - "points_rate": 3.989849546296903, - "variables_saved": 120, - "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.09924787878990174, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T11:17:44.502184", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-22T11:17:49.305000", - "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-22T11:17:49.327595", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-22T11:17:49.351465", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-22T11:17:49.784174", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-22T11:17:50.000411", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-22T11:17:50.022501", - "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-22T11:58:53.643278", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-22T11:58:53.764308", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 3, - "streaming_count": 3, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-22T11:58:53.788360", - "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-22T11:58:53.811243", - "level": "info", - "event_type": "csv_recording_started", - "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3, - "priority": "CRITICAL", - "recording_protection": true, - "performance_monitoring": true, - "async_csv_buffering": true, - "csv_flush_interval": 5.0 - } - }, - { - "timestamp": "2025-08-22T11:58:55.345174", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-22T11:59:00.765560", - "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-22T11:59:00.788247", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-22T11:59:00.809240", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-22T11:59:01.270883", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-22T11:59:01.294452", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-22T11:59:01.315486", - "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-22T12:14:33.638118", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-22T12:14:33.747283", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 3, - "streaming_count": 3, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-22T12:14:33.770375", - "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-22T12:14:33.791103", - "level": "info", - "event_type": "csv_recording_started", - "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3, - "priority": "CRITICAL", - "recording_protection": true, - "performance_monitoring": true, - "async_csv_buffering": true, - "csv_flush_interval": 5.0 - } - }, - { - "timestamp": "2025-08-22T12:14:43.747455", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 11.112417221069336, - "points_saved": 40, - "points_rate": 3.5995768701124096, - "variables_saved": 120, - "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.09494925737380981, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:14:53.770937", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02348256111145, - "points_saved": 40, - "points_rate": 3.9906289811078013, - "variables_saved": 120, - "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.09577364921569824, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:15:03.793328", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 1 lost, 0.0% CPU", - "details": { - "duration": 10.022390365600586, - "points_saved": 40, - "points_rate": 3.991063862099231, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 1, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.15465712547302246, - "delay_max": 0.15465712547302246, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.14149504899978638, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:15:13.816518", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.023190975189209, - "points_saved": 40, - "points_rate": 3.9907450730025538, - "variables_saved": 120, - "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.1041787326335907, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:15:23.105652", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1_1755857723105_2", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_2.0S" - ], - "time_window": 60, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-22T12:15:23.839289", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 39 points saved, 2 lost, 0.0% CPU", - "details": { - "duration": 10.022265434265137, - "points_saved": 39, - "points_rate": 3.8913357719166815, - "variables_saved": 117, - "udp_points_sent": 0, - "points_lost": 2, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.2998373508453369, - "delay_max": 0.442746639251709, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.16884919313284066, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:15:33.863876", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.025091886520386, - "points_saved": 40, - "points_rate": 3.98998836646909, - "variables_saved": 120, - "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.1265568733215332, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:15:43.902580", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 2 lost, 0.3% CPU", - "details": { - "duration": 10.03870415687561, - "points_saved": 40, - "points_rate": 3.9845780266971604, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 2, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.2131335735321045, - "delay_max": 0.21474337577819824, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.15595608949661255, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:15:53.928383", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025803327560425, - "points_saved": 40, - "points_rate": 3.9897052329005924, - "variables_saved": 120, - "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.1588752329349518, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:16:03.954659", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.026276111602783, - "points_saved": 40, - "points_rate": 3.9895171003430177, - "variables_saved": 120, - "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.1259353756904602, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:16:13.978059", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.022894859313965, - "points_saved": 40, - "points_rate": 3.9908629753637737, - "variables_saved": 120, - "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.12480025291442871, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:16:24.001809", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02425503730774, - "points_saved": 40, - "points_rate": 3.990321460410786, - "variables_saved": 120, - "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.12434449791908264, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:16:34.024830", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.023021221160889, - "points_saved": 40, - "points_rate": 3.99081266190985, - "variables_saved": 120, - "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.12489773035049438, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:16:44.052764", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.6% CPU", - "details": { - "duration": 10.02793288230896, - "points_saved": 40, - "points_rate": 3.9888579699777456, - "variables_saved": 120, - "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.12282043695449829, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:16:54.075677", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.022913694381714, - "points_saved": 40, - "points_rate": 3.9908554757307515, - "variables_saved": 120, - "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.12542726397514342, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:17:04.102634", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026956796646118, - "points_saved": 40, - "points_rate": 3.989246269952959, - "variables_saved": 120, - "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.13097845315933226, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:17:14.126164", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.022969722747803, - "points_saved": 40, - "points_rate": 3.9908331668624433, - "variables_saved": 120, - "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.13081911206245422, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:17:24.150325", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.024721622467041, - "points_saved": 40, - "points_rate": 3.990135737071587, - "variables_saved": 120, - "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.1223885178565979, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:17:34.173801", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.023475408554077, - "points_saved": 40, - "points_rate": 3.990631828743135, - "variables_saved": 120, - "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.12129020690917969, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:17:44.197419", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.023618221282959, - "points_saved": 40, - "points_rate": 3.9905749717271513, - "variables_saved": 120, - "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.12196943163871765, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:17:54.221998", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 2 lost, 0.5% CPU", - "details": { - "duration": 10.023566722869873, - "points_saved": 40, - "points_rate": 3.990595474237288, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 2, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.12540435791015625, - "delay_max": 0.12651801109313965, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.1631916046142578, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:18:04.248626", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.027640104293823, - "points_saved": 40, - "points_rate": 3.9889744330644703, - "variables_saved": 120, - "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.16254809498786926, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:18:14.271953", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.023326873779297, - "points_saved": 40, - "points_rate": 3.990690965555431, - "variables_saved": 120, - "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.1311577320098877, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:18:24.296299", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024345874786377, - "points_saved": 40, - "points_rate": 3.9902853013690947, - "variables_saved": 120, - "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.1388661801815033, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:18:34.320905", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024100065231323, - "points_saved": 40, - "points_rate": 3.9903831505773115, - "variables_saved": 120, - "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.1315012276172638, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:18:44.344604", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.024204969406128, - "points_saved": 40, - "points_rate": 3.990341390871395, - "variables_saved": 120, - "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.12945570349693297, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:18:54.371918", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.02731442451477, - "points_saved": 40, - "points_rate": 3.9891039920128595, - "variables_saved": 120, - "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.13380863070487975, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:19:04.396419", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 2 lost, 0.3% CPU", - "details": { - "duration": 10.023431062698364, - "points_saved": 40, - "points_rate": 3.990649484172915, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 2, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.18572998046875, - "delay_max": 0.1883094310760498, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.15967006087303162, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:19:14.420121", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.023989200592041, - "points_saved": 40, - "points_rate": 3.990427283943752, - "variables_saved": 120, - "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.12911621928215028, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:19:24.442211", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.022873163223267, - "points_saved": 40, - "points_rate": 3.9908716142164926, - "variables_saved": 120, - "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.13624014854431152, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:19:34.464970", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02275800704956, - "points_saved": 40, - "points_rate": 3.9909174672146914, - "variables_saved": 120, - "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.12295441627502442, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:19:44.487909", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.022939443588257, - "points_saved": 40, - "points_rate": 3.9908452231134923, - "variables_saved": 120, - "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.13326812982559205, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:19:54.509929", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02202033996582, - "points_saved": 40, - "points_rate": 3.991211217212159, - "variables_saved": 120, - "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.15067850351333617, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:20:04.536830", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026900291442871, - "points_saved": 40, - "points_rate": 3.989268750795965, - "variables_saved": 120, - "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.14375657439231873, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:20:14.559645", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.022814989089966, - "points_saved": 40, - "points_rate": 3.9908947779182595, - "variables_saved": 120, - "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.13730505108833313, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:20:24.583943", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 39 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024298429489136, - "points_saved": 39, - "points_rate": 3.890546582818319, - "variables_saved": 117, - "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.13223494627536872, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:20:34.608155", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.023706197738647, - "points_saved": 41, - "points_rate": 4.09030344577035, - "variables_saved": 123, - "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.1430429772632878, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:20:44.629930", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.021772146224976, - "points_saved": 40, - "points_rate": 3.9913100613714603, - "variables_saved": 120, - "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.12433511018753052, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:20:54.655090", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025668382644653, - "points_saved": 40, - "points_rate": 3.9897589341019546, - "variables_saved": 120, - "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.16376638412475586, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:21:04.677179", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02208948135376, - "points_saved": 40, - "points_rate": 3.991183682247157, - "variables_saved": 120, - "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.13819193243980407, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:21:14.698920", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.021741151809692, - "points_saved": 40, - "points_rate": 3.9913224053663505, - "variables_saved": 120, - "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.12504522800445556, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:21:24.721367", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.022298097610474, - "points_saved": 40, - "points_rate": 3.991100604913841, - "variables_saved": 120, - "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.14154710173606871, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:21:34.750331", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.028505086898804, - "points_saved": 40, - "points_rate": 3.9886303744568896, - "variables_saved": 120, - "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.13414565920829774, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:21:44.773605", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02328896522522, - "points_saved": 40, - "points_rate": 3.9907060585378638, - "variables_saved": 120, - "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.12760087251663207, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:21:54.796186", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.023173809051514, - "points_saved": 40, - "points_rate": 3.990751907731826, - "variables_saved": 120, - "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.16224249005317687, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:22:04.819247", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 1 lost, 0.2% CPU", - "details": { - "duration": 10.023060321807861, - "points_saved": 40, - "points_rate": 3.9907970934754577, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 1, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.30532658100128174, - "delay_max": 0.3067007064819336, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.18022758960723878, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:22:14.847788", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02793002128601, - "points_saved": 40, - "points_rate": 3.9888591080206086, - "variables_saved": 120, - "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.1282654047012329, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:22:24.869734", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.022557020187378, - "points_saved": 40, - "points_rate": 3.9909974988849877, - "variables_saved": 120, - "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.12254247665405274, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:22:34.898202", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 38 points saved, 2 lost, 0.0% CPU", - "details": { - "duration": 10.027538299560547, - "points_saved": 38, - "points_rate": 3.7895641846279795, - "variables_saved": 114, - "udp_points_sent": 0, - "points_lost": 2, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.1744704246520996, - "delay_max": 0.1766188144683838, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.16067327951130114, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:22:44.922016", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024235010147095, - "points_saved": 41, - "points_rate": 4.090087668385417, - "variables_saved": 123, - "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.12052284798971037, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:22:54.945378", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.023871421813965, - "points_saved": 40, - "points_rate": 3.9904741707831506, - "variables_saved": 120, - "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.13016989827156067, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:23:05.035462", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 39 points saved, 2 lost, 0.2% CPU", - "details": { - "duration": 10.023361921310425, - "points_saved": 39, - "points_rate": 3.890910086473387, - "variables_saved": 117, - "udp_points_sent": 0, - "points_lost": 2, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.1363050937652588, - "delay_max": 0.13847613334655762, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.18003306633386856, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:23:15.089128", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.6% CPU", - "details": { - "duration": 10.120387554168701, - "points_saved": 41, - "points_rate": 4.051228253913225, - "variables_saved": 123, - "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.14962895323590533, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:23:25.113034", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.023905754089355, - "points_saved": 40, - "points_rate": 3.9904605032506004, - "variables_saved": 120, - "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.15249575972557067, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:23:35.137225", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.024190902709961, - "points_saved": 41, - "points_rate": 4.090105665178021, - "variables_saved": 123, - "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.1277271247491604, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:23:45.159140", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 39 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.021915674209595, - "points_saved": 39, - "points_rate": 3.891471577670787, - "variables_saved": 117, - "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.1384282417786427, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:23:55.182951", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.023303985595703, - "points_saved": 41, - "points_rate": 4.090467580243033, - "variables_saved": 123, - "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.13826042268334365, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:24:05.208369", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025924921035767, - "points_saved": 40, - "points_rate": 3.9896568461304263, - "variables_saved": 120, - "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.1478900730609894, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:24:15.231233", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.022863626480103, - "points_saved": 40, - "points_rate": 3.9908754115262237, - "variables_saved": 120, - "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.14085782766342164, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:24:25.254179", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.022945880889893, - "points_saved": 40, - "points_rate": 3.9908426599674085, - "variables_saved": 120, - "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.17188859581947327, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:24:35.278893", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 38 points saved, 2 lost, 0.3% CPU", - "details": { - "duration": 10.02371335029602, - "points_saved": 38, - "points_rate": 3.7910102446093776, - "variables_saved": 114, - "udp_points_sent": 0, - "points_lost": 2, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.14665043354034424, - "delay_max": 0.14830946922302246, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.16715892992521586, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:24:45.303597", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025198698043823, - "points_saved": 40, - "points_rate": 3.9899458559165555, - "variables_saved": 120, - "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.13398100733757018, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:24:55.326856", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.023765325546265, - "points_saved": 41, - "points_rate": 4.090279318043155, - "variables_saved": 123, - "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.13244600993830982, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:25:05.354476", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.6% CPU", - "details": { - "duration": 10.0276198387146, - "points_saved": 40, - "points_rate": 3.988982494686141, - "variables_saved": 120, - "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.1371506631374359, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:25:15.387263", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 39 points saved, 0 lost, 0.8% CPU", - "details": { - "duration": 10.032787561416626, - "points_saved": 39, - "points_rate": 3.8872546399749757, - "variables_saved": 117, - "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.1437069024795141, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:25:25.414695", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 42 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.0269136428833, - "points_saved": 42, - "points_rate": 4.188726610786152, - "variables_saved": 126, - "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.1437520980834961, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:25:35.439769", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02559208869934, - "points_saved": 40, - "points_rate": 3.9897892958449055, - "variables_saved": 120, - "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.14039768576622008, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:25:45.465948", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.026179075241089, - "points_saved": 40, - "points_rate": 3.9895557120834853, - "variables_saved": 120, - "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.15233646631240844, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-22T12:25:55.496594", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025831937789917, - "points_saved": 40, - "points_rate": 3.9896938476726107, - "variables_saved": 120, - "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.12907963395118713, - "csv_write_time_avg": 0.0 - } - }, { "timestamp": "2025-08-22T12:26:05.541197", "level": "info", @@ -19041,8 +15249,3907 @@ "read_time_avg": 0.08363530635833741, "csv_write_time_avg": 0.0 } + }, + { + "timestamp": "2025-08-22T16:50:58.439776", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.025602579116821, + "points_saved": 40, + "points_rate": 3.989785121077849, + "variables_saved": 120, + "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.08389288783073426, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:51:08.468931", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.028150796890259, + "points_saved": 40, + "points_rate": 3.988771290954664, + "variables_saved": 120, + "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.0831960380077362, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:51:18.495806", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 41 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.027878999710083, + "points_saved": 41, + "points_rate": 4.088601388308072, + "variables_saved": 123, + "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.0834169213364764, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:51:28.524565", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.028759956359863, + "points_saved": 40, + "points_rate": 3.9885290079790474, + "variables_saved": 120, + "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.0840187430381775, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:51:38.548034", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022538900375366, + "points_saved": 40, + "points_rate": 3.9910047142348244, + "variables_saved": 120, + "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.08537996411323548, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:51:48.576232", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.029128074645996, + "points_saved": 40, + "points_rate": 3.9883826093637658, + "variables_saved": 120, + "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.0821511447429657, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:51:58.599487", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.02325439453125, + "points_saved": 40, + "points_rate": 3.9907198226779768, + "variables_saved": 120, + "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.08515998125076293, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:52:08.621029", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021541833877563, + "points_saved": 40, + "points_rate": 3.9914017885731945, + "variables_saved": 120, + "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.08321292400360107, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:52:18.650969", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.029940366744995, + "points_saved": 40, + "points_rate": 3.9880596032876667, + "variables_saved": 120, + "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.08154643774032592, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:52:28.676894", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.025403261184692, + "points_saved": 40, + "points_rate": 3.9898644431459247, + "variables_saved": 120, + "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.08201367855072021, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:52:38.702040", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.025667667388916, + "points_saved": 40, + "points_rate": 3.989759218741149, + "variables_saved": 120, + "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.08374950885772706, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:52:48.725381", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023340940475464, + "points_saved": 40, + "points_rate": 3.9906853650438205, + "variables_saved": 120, + "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.08290048837661743, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:52:58.747455", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02156686782837, + "points_saved": 40, + "points_rate": 3.9913918180209507, + "variables_saved": 120, + "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.0836379885673523, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:53:08.769384", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022436380386353, + "points_saved": 40, + "points_rate": 3.9910455384160843, + "variables_saved": 120, + "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.07986687421798706, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:53:18.792910", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023525714874268, + "points_saved": 40, + "points_rate": 3.990611800460847, + "variables_saved": 120, + "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.08102576732635498, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:53:28.816163", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022742748260498, + "points_saved": 40, + "points_rate": 3.990923543053344, + "variables_saved": 120, + "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.08329228162765503, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:53:38.837284", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021631479263306, + "points_saved": 40, + "points_rate": 3.991366084730589, + "variables_saved": 120, + "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.08160098791122436, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:53:48.861075", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.02326488494873, + "points_saved": 40, + "points_rate": 3.9907156459633564, + "variables_saved": 120, + "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.08295836448669433, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:53:58.885209", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.024660348892212, + "points_saved": 40, + "points_rate": 3.9901601259159123, + "variables_saved": 120, + "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.09211885929107666, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:54:08.908175", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.022965908050537, + "points_saved": 40, + "points_rate": 3.990834685756203, + "variables_saved": 120, + "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.08013559579849243, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:54:18.931230", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.023055076599121, + "points_saved": 40, + "points_rate": 3.9907991819169197, + "variables_saved": 120, + "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.08233990073204041, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:54:28.953961", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022731304168701, + "points_saved": 40, + "points_rate": 3.9909280999444747, + "variables_saved": 120, + "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.08370274305343628, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:54:38.976576", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022614479064941, + "points_saved": 40, + "points_rate": 3.9909746188034356, + "variables_saved": 120, + "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.08298222422599792, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:54:49.000913", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.023808479309082, + "points_saved": 40, + "points_rate": 3.9904992281693223, + "variables_saved": 120, + "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.08254002928733825, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:54:59.025376", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.024486303329468, + "points_saved": 40, + "points_rate": 3.9902294032477914, + "variables_saved": 120, + "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.08571904301643371, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:55:09.048270", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022886991500854, + "points_saved": 40, + "points_rate": 3.9908661081302177, + "variables_saved": 120, + "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.09665729403495789, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:55:19.070364", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022606134414673, + "points_saved": 40, + "points_rate": 3.990977941620573, + "variables_saved": 120, + "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.08537576794624328, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:55:29.093553", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023188352584839, + "points_saved": 40, + "points_rate": 3.9907461171957888, + "variables_saved": 120, + "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.08649802803993226, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:55:39.123284", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02973198890686, + "points_saved": 40, + "points_rate": 3.9881424592642176, + "variables_saved": 120, + "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.0878221869468689, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:55:49.146399", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023114681243896, + "points_saved": 40, + "points_rate": 3.9907754497562915, + "variables_saved": 120, + "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.08513924479484558, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:55:59.169169", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 41 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022769927978516, + "points_saved": 41, + "points_rate": 4.090685538490582, + "variables_saved": 123, + "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.0855738011802115, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:56:09.194693", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.025523900985718, + "points_saved": 40, + "points_rate": 3.9898164320437326, + "variables_saved": 120, + "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.0828887939453125, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:56:19.217368", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.02216649055481, + "points_saved": 40, + "points_rate": 3.991153014440261, + "variables_saved": 120, + "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.08281679749488831, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:56:29.239587", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.022727489471436, + "points_saved": 40, + "points_rate": 3.990929618910497, + "variables_saved": 120, + "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.08173890113830566, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:56:39.262955", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 41 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023367881774902, + "points_saved": 41, + "points_rate": 4.090441504651215, + "variables_saved": 123, + "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.08149691325862234, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:56:49.288101", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.025146484375, + "points_saved": 40, + "points_rate": 3.9899666366315176, + "variables_saved": 120, + "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.0814607560634613, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:56:59.310293", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022191762924194, + "points_saved": 40, + "points_rate": 3.9911429501852917, + "variables_saved": 120, + "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.08179260492324829, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:57:09.332886", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022592544555664, + "points_saved": 40, + "points_rate": 3.9909833530774685, + "variables_saved": 120, + "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.0811562716960907, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:57:19.354866", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021980285644531, + "points_saved": 40, + "points_rate": 3.9912271686760286, + "variables_saved": 120, + "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.08831730484962463, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:57:29.389579", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.03471326828003, + "points_saved": 40, + "points_rate": 3.986162726387107, + "variables_saved": 120, + "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.08459624052047729, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:57:39.411999", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022419929504395, + "points_saved": 40, + "points_rate": 3.9910520893508385, + "variables_saved": 120, + "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.09302024245262146, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:57:49.442305", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.030305862426758, + "points_saved": 40, + "points_rate": 3.987914281840484, + "variables_saved": 120, + "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.10014787912368775, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:57:59.464333", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02202820777893, + "points_saved": 40, + "points_rate": 3.991208083903882, + "variables_saved": 120, + "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.08238269686698914, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:58:09.487065", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022732019424438, + "points_saved": 40, + "points_rate": 3.990927815138474, + "variables_saved": 120, + "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.08356409668922424, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:58:19.509986", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.022920846939087, + "points_saved": 40, + "points_rate": 3.9908526277762286, + "variables_saved": 120, + "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.08374552726745606, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:58:29.534608", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024622440338135, + "points_saved": 40, + "points_rate": 3.9901752148832834, + "variables_saved": 120, + "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.08104473948478699, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:58:39.557564", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022955417633057, + "points_saved": 40, + "points_rate": 3.990838862720003, + "variables_saved": 120, + "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.09279418587684632, + "csv_write_time_avg": 3.451108932495117e-06 + } + }, + { + "timestamp": "2025-08-22T16:58:49.592445", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.034372806549072, + "points_saved": 40, + "points_rate": 3.9862979750855425, + "variables_saved": 120, + "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.08295841813087464, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:58:59.616152", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023691654205322, + "points_saved": 40, + "points_rate": 3.990545737030774, + "variables_saved": 120, + "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.10349916815757751, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:59:09.641285", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.025656700134277, + "points_saved": 40, + "points_rate": 3.989763583213882, + "variables_saved": 120, + "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.08572155833244324, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:59:19.663686", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.022400617599487, + "points_saved": 40, + "points_rate": 3.991059779606035, + "variables_saved": 120, + "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.08171527981758117, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:59:29.685377", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021691083908081, + "points_saved": 40, + "points_rate": 3.991342345827079, + "variables_saved": 120, + "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.07951512932777405, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:59:39.710181", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.024282693862915, + "points_saved": 40, + "points_rate": 3.9903104512893353, + "variables_saved": 120, + "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.08165643215179444, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:59:49.733744", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024084329605103, + "points_saved": 40, + "points_rate": 3.9903894146085856, + "variables_saved": 120, + "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.0821855127811432, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T16:59:59.756651", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022907018661499, + "points_saved": 40, + "points_rate": 3.990858133825307, + "variables_saved": 120, + "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.08215146660804748, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:00:09.778668", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02201771736145, + "points_saved": 40, + "points_rate": 3.991212261649345, + "variables_saved": 120, + "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.0841810166835785, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:00:19.802836", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024167537689209, + "points_saved": 40, + "points_rate": 3.9903562913934376, + "variables_saved": 120, + "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.0823970079421997, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:00:29.826476", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.023640155792236, + "points_saved": 40, + "points_rate": 3.9905662392405117, + "variables_saved": 120, + "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.08223388195037842, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:00:38.594221", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'UR29' created and started", + "details": { + "session_id": "plot_1_1755874838593_10", + "variables": [ + "UR29_Brix", + "UR29_ma", + "AUX Blink_2.0S" + ], + "time_window": 20, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-22T17:00:38.618302", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'UR29' created and started", + "details": { + "session_id": "plot_1_1755874838618_11", + "variables": [ + "UR29_Brix", + "UR29_ma", + "AUX Blink_2.0S" + ], + "time_window": 20, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-22T17:00:39.850490", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 1.2% CPU", + "details": { + "duration": 10.024014234542847, + "points_saved": 40, + "points_rate": 3.990417318259548, + "variables_saved": 120, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.2, + "cpu_max": 1.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.08362970948219299, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:00:49.751521", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'UR29' created and started", + "details": { + "session_id": "plot_1_1755874849751_12", + "variables": [ + "UR29_Brix", + "UR29_ma", + "AUX Blink_2.0S" + ], + "time_window": 20, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-22T17:00:49.882600", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.032109498977661, + "points_saved": 40, + "points_rate": 3.9871973092076263, + "variables_saved": 120, + "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.0851893424987793, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:00:59.906518", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 2.2% CPU", + "details": { + "duration": 10.02391791343689, + "points_saved": 40, + "points_rate": 3.990455662688607, + "variables_saved": 120, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 2.2, + "cpu_max": 2.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.08515651822090149, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:01:09.933728", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 1.6% CPU", + "details": { + "duration": 10.026680707931519, + "points_saved": 40, + "points_rate": 3.9893561154648465, + "variables_saved": 120, + "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.08200139403343201, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:01:19.955799", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.022600412368774, + "points_saved": 40, + "points_rate": 3.990980220126951, + "variables_saved": 120, + "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.09259790778160096, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:01:29.983394", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 41 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.026585817337036, + "points_saved": 41, + "points_rate": 4.089128717085992, + "variables_saved": 123, + "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.08463561825635957, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:01:40.008727", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.026342391967773, + "points_saved": 40, + "points_rate": 3.989490727151358, + "variables_saved": 120, + "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.08288442492485046, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:01:50.036567", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 39 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.027220249176025, + "points_saved": 39, + "points_rate": 3.8894129211138826, + "variables_saved": 117, + "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.087508513377263, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:02:00.059442", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 1 lost, 0.3% CPU", + "details": { + "duration": 10.022559642791748, + "points_saved": 40, + "points_rate": 3.990996454560199, + "variables_saved": 120, + "udp_points_sent": 0, + "points_lost": 1, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.12607431411743164, + "delay_max": 0.18130064010620117, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.14904217123985292, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:02:10.085087", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.026580333709717, + "points_saved": 40, + "points_rate": 3.989396052163327, + "variables_saved": 120, + "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.1244113266468048, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:02:20.109093", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02400541305542, + "points_saved": 40, + "points_rate": 3.990420829971159, + "variables_saved": 120, + "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.12361927032470703, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:17:57.359887", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-22T17:17:57.478300", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 3, + "streaming_count": 3, + "prefix": "gateway_phoenix" + } + }, + { + "timestamp": "2025-08-22T17:17:57.525920", + "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-22T17:17:57.567108", + "level": "info", + "event_type": "csv_recording_started", + "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", + "details": { + "activated_datasets": 2, + "total_datasets": 3, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-22T17:18:07.046716", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'UR29' created and started", + "details": { + "session_id": "plot_1_1755875887045_2", + "variables": [ + "UR29_Brix", + "UR29_ma", + "AUX Blink_2.0S" + ], + "time_window": 20, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-22T17:18:07.476846", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.124568462371826, + "points_saved": 40, + "points_rate": 3.5956450926880947, + "variables_saved": 120, + "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.08127018213272094, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:18:17.508098", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 1.7% CPU", + "details": { + "duration": 10.03024959564209, + "points_saved": 40, + "points_rate": 3.9879366528804097, + "variables_saved": 120, + "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.08136916160583496, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:18:25.473300", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-22T17:18:27.531758", + "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-22T17:18:27.555966", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-22T17:18:28.006475", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-22T17:18:28.033466", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: test", + "details": { + "dataset_id": "Test" + } + }, + { + "timestamp": "2025-08-22T17:18:28.554510", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: Fast", + "details": { + "dataset_id": "Fast" + } + }, + { + "timestamp": "2025-08-22T17:18:28.580068", + "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-22T17:18:46.450390", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-22T17:18:46.559548", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 3, + "streaming_count": 3, + "prefix": "gateway_phoenix" + } + }, + { + "timestamp": "2025-08-22T17:18:46.588719", + "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-22T17:18:46.616591", + "level": "info", + "event_type": "csv_recording_started", + "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", + "details": { + "activated_datasets": 2, + "total_datasets": 3, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-22T17:18:56.559131", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.11515212059021, + "points_saved": 40, + "points_rate": 3.598691188931386, + "variables_saved": 120, + "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.09106534719467163, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:19:06.581482", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.022350788116455, + "points_saved": 40, + "points_rate": 3.99107962250016, + "variables_saved": 120, + "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.08716667294502259, + "csv_write_time_avg": 4.374980926513672e-06 + } + }, + { + "timestamp": "2025-08-22T17:19:16.611734", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.030252695083618, + "points_saved": 40, + "points_rate": 3.987935420570831, + "variables_saved": 120, + "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.08650467395782471, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:19:17.595070", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'UR29' created and started", + "details": { + "session_id": "plot_1_1755875957594_2", + "variables": [ + "UR29_Brix", + "UR29_ma", + "AUX Blink_2.0S" + ], + "time_window": 20, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-22T17:19:19.956626", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-22T17:19:23.571320", + "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-22T17:19:23.593010", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-22T17:19:23.616062", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: test", + "details": { + "dataset_id": "Test" + } + }, + { + "timestamp": "2025-08-22T17:19:24.096578", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-22T17:19:24.123410", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: Fast", + "details": { + "dataset_id": "Fast" + } + }, + { + "timestamp": "2025-08-22T17:19:24.149080", + "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-22T17:19:52.397138", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-22T17:19:52.509029", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 3, + "streaming_count": 3, + "prefix": "gateway_phoenix" + } + }, + { + "timestamp": "2025-08-22T17:19:52.538450", + "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-22T17:19:52.577542", + "level": "info", + "event_type": "csv_recording_started", + "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", + "details": { + "activated_datasets": 2, + "total_datasets": 3, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-22T17:20:02.508468", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.116255760192871, + "points_saved": 40, + "points_rate": 3.5983339051301195, + "variables_saved": 120, + "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.08722522854804993, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:20:10.124717", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'UR29' created and started", + "details": { + "session_id": "plot_1_1755876010124_2", + "variables": [ + "UR29_Brix", + "UR29_ma", + "AUX Blink_2.0S" + ], + "time_window": 20, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-22T17:20:12.531834", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.023366689682007, + "points_saved": 40, + "points_rate": 3.99067511330058, + "variables_saved": 120, + "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.08695074915885925, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:20:15.893428", + "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-22T17:20:22.554273", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.021933555603027, + "points_saved": 40, + "points_rate": 3.9912457788783624, + "variables_saved": 120, + "udp_points_sent": 52, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0846072256565094, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:20:32.581342", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.026923656463623, + "points_saved": 40, + "points_rate": 3.9892594548892304, + "variables_saved": 120, + "udp_points_sent": 80, + "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.08778247833251954, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:20:42.604380", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 41 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.023688554763794, + "points_saved": 41, + "points_rate": 4.090310645227959, + "variables_saved": 123, + "udp_points_sent": 83, + "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.08704558814444192, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:20:52.629927", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.025041103363037, + "points_saved": 40, + "points_rate": 3.9900085782771955, + "variables_saved": 120, + "udp_points_sent": 80, + "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.08781296014785767, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:21:02.652378", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.022956371307373, + "points_saved": 40, + "points_rate": 3.99083848299566, + "variables_saved": 120, + "udp_points_sent": 80, + "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.08645556569099426, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:21:12.678055", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02567744255066, + "points_saved": 40, + "points_rate": 3.9897553286756744, + "variables_saved": 120, + "udp_points_sent": 80, + "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.08627198934555054, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:21:22.707996", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.029434442520142, + "points_saved": 40, + "points_rate": 3.9882607767411677, + "variables_saved": 120, + "udp_points_sent": 80, + "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.08334290385246276, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:21:32.756719", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 41 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.048721551895142, + "points_saved": 41, + "points_rate": 4.080121017212144, + "variables_saved": 123, + "udp_points_sent": 81, + "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.09022484756097561, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:21:42.785018", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.028806686401367, + "points_saved": 40, + "points_rate": 3.9885104231033077, + "variables_saved": 120, + "udp_points_sent": 80, + "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.09035964608192444, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:21:46.405013", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-22T17:21:49.528848", + "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-22T17:21:49.552550", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-22T17:21:49.615286", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-22T17:21:49.635846", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: test", + "details": { + "dataset_id": "Test" + } + }, + { + "timestamp": "2025-08-22T17:21:50.147594", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: Fast", + "details": { + "dataset_id": "Fast" + } + }, + { + "timestamp": "2025-08-22T17:21:50.169781", + "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-22T17:29:28.901392", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-22T17:29:29.028961", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 3, + "streaming_count": 3, + "prefix": "gateway_phoenix" + } + }, + { + "timestamp": "2025-08-22T17:29:29.061313", + "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-22T17:29:29.091216", + "level": "info", + "event_type": "csv_recording_started", + "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", + "details": { + "activated_datasets": 2, + "total_datasets": 3, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-22T17:29:39.028512", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.132220983505249, + "points_saved": 40, + "points_rate": 3.593173371177998, + "variables_saved": 120, + "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.0998792827129364, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:29:49.050923", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.022410869598389, + "points_saved": 40, + "points_rate": 3.9910556971211912, + "variables_saved": 120, + "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.08932375311851501, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:29:50.298817", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-22T17:29:56.038377", + "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-22T17:29:56.058906", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-22T17:29:56.083641", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: Fast", + "details": { + "dataset_id": "Fast" + } + }, + { + "timestamp": "2025-08-22T17:29:56.108004", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: test", + "details": { + "dataset_id": "Test" + } + }, + { + "timestamp": "2025-08-22T17:29:56.553489", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-22T17:29:56.576512", + "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-22T17:30:32.563013", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-22T17:30:32.679126", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 3, + "streaming_count": 3, + "prefix": "gateway_phoenix" + } + }, + { + "timestamp": "2025-08-22T17:30:32.708387", + "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-22T17:30:32.743602", + "level": "info", + "event_type": "csv_recording_started", + "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", + "details": { + "activated_datasets": 2, + "total_datasets": 3, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-22T17:30:39.084507", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-22T17:30:42.680001", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.121741533279419, + "points_saved": 40, + "points_rate": 3.5965590353191184, + "variables_saved": 120, + "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.08933770060539245, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:30:42.703611", + "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-22T17:30:42.725322", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-22T17:30:43.218982", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: Fast", + "details": { + "dataset_id": "Fast" + } + }, + { + "timestamp": "2025-08-22T17:30:43.691604", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-22T17:30:43.713281", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: test", + "details": { + "dataset_id": "Test" + } + }, + { + "timestamp": "2025-08-22T17:30:43.738286", + "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-22T17:31:16.033592", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-22T17:31:16.150920", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 3, + "streaming_count": 3, + "prefix": "gateway_phoenix" + } + }, + { + "timestamp": "2025-08-22T17:31:16.178273", + "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-22T17:31:16.205858", + "level": "info", + "event_type": "csv_recording_started", + "message": "๐Ÿ”ฅ CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 2 datasets activated", + "details": { + "activated_datasets": 2, + "total_datasets": 3, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-22T17:31:26.151512", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.12044382095337, + "points_saved": 40, + "points_rate": 3.5969787397002246, + "variables_saved": 120, + "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.08594430685043335, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:31:36.173657", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.022669315338135, + "points_saved": 40, + "points_rate": 3.9909527832856093, + "variables_saved": 120, + "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.08777812123298645, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:31:46.195629", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.021971940994263, + "points_saved": 40, + "points_rate": 3.991230491913717, + "variables_saved": 120, + "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.08660681247711181, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:31:56.217961", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 1 lost, 0.5% CPU", + "details": { + "duration": 10.022331953048706, + "points_saved": 40, + "points_rate": 3.991087122975641, + "variables_saved": 120, + "udp_points_sent": 0, + "points_lost": 1, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.1936483383178711, + "delay_max": 0.1936483383178711, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11217279434204101, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:32:06.240575", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 41 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.022614479064941, + "points_saved": 41, + "points_rate": 4.090748984273522, + "variables_saved": 123, + "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.08024932116996951, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:32:16.262329", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.021753311157227, + "points_saved": 40, + "points_rate": 3.9913175627130997, + "variables_saved": 120, + "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.08244417905807495, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:32:26.286321", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.023484945297241, + "points_saved": 40, + "points_rate": 3.9906280318969265, + "variables_saved": 120, + "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.090254145860672, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:32:36.312837", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.027023553848267, + "points_saved": 40, + "points_rate": 3.989219710633712, + "variables_saved": 120, + "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.10730229020118713, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:32:46.336279", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.023441791534424, + "points_saved": 40, + "points_rate": 3.9906452126836425, + "variables_saved": 120, + "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.09199643731117249, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:32:56.365667", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02887487411499, + "points_saved": 40, + "points_rate": 3.9884833046668007, + "variables_saved": 120, + "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.09609494209289551, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:33:06.387306", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022152662277222, + "points_saved": 40, + "points_rate": 3.9911585213182383, + "variables_saved": 120, + "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.08240910172462464, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:33:16.409152", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.02184534072876, + "points_saved": 40, + "points_rate": 3.991280910855816, + "variables_saved": 120, + "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.0999777853488922, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:33:26.431361", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022209405899048, + "points_saved": 40, + "points_rate": 3.991135924226059, + "variables_saved": 120, + "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.08411611914634705, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:33:36.452433", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.021071434020996, + "points_saved": 40, + "points_rate": 3.991589149260244, + "variables_saved": 120, + "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.08176563978195191, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:33:46.476787", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024354934692383, + "points_saved": 40, + "points_rate": 3.9902816949914275, + "variables_saved": 120, + "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.08490045666694641, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:33:56.499023", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02223539352417, + "points_saved": 40, + "points_rate": 3.9911255752230534, + "variables_saved": 120, + "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.08134573101997375, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:34:06.522265", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022238492965698, + "points_saved": 40, + "points_rate": 3.9911243409418735, + "variables_saved": 120, + "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.083234041929245, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:34:16.545834", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024572610855103, + "points_saved": 40, + "points_rate": 3.9901950489825397, + "variables_saved": 120, + "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.08265101313591003, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:34:26.578167", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.03233289718628, + "points_saved": 40, + "points_rate": 3.9871085230055123, + "variables_saved": 120, + "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.0830224335193634, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:34:36.600757", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.02199935913086, + "points_saved": 40, + "points_rate": 3.9912195727249506, + "variables_saved": 120, + "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.08248811364173889, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:34:46.625756", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.025073528289795, + "points_saved": 40, + "points_rate": 3.989995673061533, + "variables_saved": 120, + "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.08461118936538696, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:34:56.651806", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.026059865951538, + "points_saved": 40, + "points_rate": 3.98960314767717, + "variables_saved": 120, + "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.0813144326210022, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:35:06.673231", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021931409835815, + "points_saved": 40, + "points_rate": 3.991246633432637, + "variables_saved": 120, + "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.08296173810958862, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:35:16.697706", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 41 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.024399518966675, + "points_saved": 41, + "points_rate": 4.090020546609891, + "variables_saved": 123, + "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.08503017774442347, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:35:26.719656", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.02202558517456, + "points_saved": 40, + "points_rate": 3.9912091283394275, + "variables_saved": 120, + "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.08215411901473998, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:35:36.742417", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02225375175476, + "points_saved": 40, + "points_rate": 3.991118264491811, + "variables_saved": 120, + "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.08123227953910828, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:35:46.764043", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02160906791687, + "points_saved": 40, + "points_rate": 3.991375010631357, + "variables_saved": 120, + "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.09282906055450439, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:35:56.785264", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021745204925537, + "points_saved": 40, + "points_rate": 3.9913207911472943, + "variables_saved": 120, + "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.08851815462112426, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:36:06.808841", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023576974868774, + "points_saved": 40, + "points_rate": 3.990591392702271, + "variables_saved": 120, + "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.09188026189804077, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:36:16.831003", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022161722183228, + "points_saved": 40, + "points_rate": 3.991154913361985, + "variables_saved": 120, + "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.08350428938865662, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:36:26.856572", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.025061845779419, + "points_saved": 40, + "points_rate": 3.9900003227252028, + "variables_saved": 120, + "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.08215383887290954, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:36:36.877775", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021202325820923, + "points_saved": 40, + "points_rate": 3.9915370131720453, + "variables_saved": 120, + "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.08036251664161682, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:36:46.899339", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021565198898315, + "points_saved": 40, + "points_rate": 3.991392482722884, + "variables_saved": 120, + "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.08415423631668091, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:36:56.927012", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.028179407119751, + "points_saved": 40, + "points_rate": 3.98875991105634, + "variables_saved": 120, + "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.08745444416999817, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:37:06.954034", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02702283859253, + "points_saved": 40, + "points_rate": 3.989219995195973, + "variables_saved": 120, + "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.08026837706565856, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:37:16.976376", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 41 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022341251373291, + "points_saved": 41, + "points_rate": 4.090860505710885, + "variables_saved": 123, + "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.08080510395329173, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:37:26.998475", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022099018096924, + "points_saved": 40, + "points_rate": 3.9911798843507653, + "variables_saved": 120, + "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.08009970188140869, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:37:37.027368", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02837085723877, + "points_saved": 40, + "points_rate": 3.988683762241086, + "variables_saved": 120, + "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.08077852725982666, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:37:47.048786", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021939992904663, + "points_saved": 40, + "points_rate": 3.9912432152177337, + "variables_saved": 120, + "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.08426268696784973, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:37:57.071518", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022222518920898, + "points_saved": 40, + "points_rate": 3.9911307022453575, + "variables_saved": 120, + "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.08096550703048706, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:38:07.092577", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021569013595581, + "points_saved": 40, + "points_rate": 3.991390963404505, + "variables_saved": 120, + "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.09030635356903076, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:38:17.118404", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.025826454162598, + "points_saved": 40, + "points_rate": 3.9896960298362734, + "variables_saved": 120, + "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.09073688983917236, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:38:27.141067", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022096872329712, + "points_saved": 40, + "points_rate": 3.9911807388768232, + "variables_saved": 120, + "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.08085213303565979, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:38:37.162461", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021453619003296, + "points_saved": 40, + "points_rate": 3.9914369232971896, + "variables_saved": 120, + "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.08255565166473389, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:38:47.185355", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.022889614105225, + "points_saved": 40, + "points_rate": 3.99086506387419, + "variables_saved": 120, + "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.08089765310287475, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:38:57.206599", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.021247148513794, + "points_saved": 40, + "points_rate": 3.991519159961265, + "variables_saved": 120, + "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.08325080871582032, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:39:07.229558", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022961378097534, + "points_saved": 40, + "points_rate": 3.990836489444044, + "variables_saved": 120, + "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.08063258528709412, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:39:17.275270", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.046217679977417, + "points_saved": 40, + "points_rate": 3.981597977885934, + "variables_saved": 120, + "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.08229193687438965, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:39:27.298501", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.022717237472534, + "points_saved": 40, + "points_rate": 3.990933701137412, + "variables_saved": 120, + "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.0821560263633728, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:39:37.325484", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.027496337890625, + "points_saved": 40, + "points_rate": 3.9890316238613917, + "variables_saved": 120, + "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.0831246554851532, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:39:47.351747", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.025685787200928, + "points_saved": 40, + "points_rate": 3.989752007894076, + "variables_saved": 120, + "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.08230199217796326, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-22T17:39:57.372241", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.021071434020996, + "points_saved": 40, + "points_rate": 3.991589149260244, + "variables_saved": 120, + "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.08364236950874329, + "csv_write_time_avg": 0.0 + } } ], - "last_updated": "2025-08-22T16:50:48.414173", + "last_updated": "2025-08-22T17:39:57.372241", "total_entries": 1000 } \ No newline at end of file diff --git a/core/plc_data_streamer.py b/core/plc_data_streamer.py index f64140e..ce1ad92 100644 --- a/core/plc_data_streamer.py +++ b/core/plc_data_streamer.py @@ -639,61 +639,39 @@ class PLCDataStreamer: return None def _get_disk_usage_safe(self, path): - """Safely get disk usage with Windows compatibility fallbacks""" - import shutil + """Get disk usage using shutil.disk_usage() - robust for Windows Python 3.12+""" from collections import namedtuple + import os + import shutil DiskUsage = namedtuple("DiskUsage", ["total", "used", "free", "percent"]) try: - # Method 1: Try psutil with absolute path - abs_path = os.path.abspath(path) - usage = psutil.disk_usage(abs_path) + # For Windows, always use the drive root (e.g., "D:\") for maximum compatibility + # Extract drive letter from the given path + drive = os.path.splitdrive(os.path.abspath(path))[0] + + # Ensure we have a valid drive (e.g., "D:") + if not drive or len(drive) < 2: + raise ValueError(f"Invalid drive extracted from path: {path}") + + # Create proper drive root path for Windows (e.g., "D:\") + drive_root = drive + "\\" + + # Use shutil.disk_usage() instead of psutil - avoids Python 3.12 Unicode API issues + usage = shutil.disk_usage(drive_root) + return DiskUsage( total=usage.total, used=usage.used, free=usage.free, percent=round((usage.used / usage.total) * 100, 1), ) - except (SystemError, OSError, Exception) as e: + + except Exception as e: if hasattr(self, "logger"): - self.logger.warning(f"psutil.disk_usage failed for {path}: {e}") - - try: - # Method 2: Try psutil with drive root - drive = os.path.splitdrive(os.path.abspath(path))[0] - if drive: - drive_root = drive + os.sep # e.g., "D:\" - if hasattr(self, "logger"): - self.logger.info(f"Trying psutil with drive root: {drive_root}") - usage = psutil.disk_usage(drive_root) - return DiskUsage( - total=usage.total, - used=usage.used, - free=usage.free, - percent=round((usage.used / usage.total) * 100, 1), - ) - except Exception as e2: - if hasattr(self, "logger"): - self.logger.warning( - f"psutil.disk_usage with drive root failed: {e2}" - ) - - try: - # Method 3: Use shutil.disk_usage (Python 3.3+) - if hasattr(self, "logger"): - self.logger.info("Trying shutil.disk_usage as fallback") - total, used, free = shutil.disk_usage(path) - return DiskUsage( - total=total, - used=used, - free=free, - percent=round((used / total) * 100, 1), - ) - except Exception as e3: - if hasattr(self, "logger"): - self.logger.error(f"All disk usage methods failed: {e3}") - return None + self.logger.error(f"Failed to get disk usage for drive root: {e}") + return None def _estimate_csv_size_per_hour(self) -> float: """Estimate CSV file size per hour based on active datasets and variables""" diff --git a/frontend/src/hooks/useCoordinatedConnection.js b/frontend/src/hooks/useCoordinatedConnection.js index 19c6235..fcbfaf8 100644 --- a/frontend/src/hooks/useCoordinatedConnection.js +++ b/frontend/src/hooks/useCoordinatedConnection.js @@ -112,7 +112,15 @@ export function useCoordinatedPolling(source, fetchFunction, interval = 5000, de let intervalId = null let isActive = true let consecutiveErrors = 0 - const maxConsecutiveErrors = 3 + let currentInterval = interval + + const scheduleNextPoll = (delay) => { + if (!isActive) return + if (intervalId) { + clearTimeout(intervalId) + } + intervalId = setTimeout(poll, delay) + } const poll = async () => { if (!isActive) return @@ -120,35 +128,43 @@ export function useCoordinatedPolling(source, fetchFunction, interval = 5000, de const data = await fetchFunction() if (isActive) { consecutiveErrors = 0 + currentInterval = interval // Reset to normal interval setConnectionError(null) onData(data) + // Schedule next poll at normal interval + scheduleNextPoll(interval) } } catch (error) { console.error(`Polling error for ${source}:`, error) consecutiveErrors++ - if (consecutiveErrors >= maxConsecutiveErrors) { + if (consecutiveErrors >= 3) { setConnectionError(error) - // Stop polling after too many consecutive errors - if (intervalId) { - clearInterval(intervalId) - intervalId = null - } + // Use exponential backoff instead of stopping completely + // Start with 10 seconds, max out at 30 seconds + currentInterval = Math.min(10000 + (consecutiveErrors - 3) * 5000, 30000) + console.log(`${source}: Using backoff interval ${currentInterval}ms after ${consecutiveErrors} errors`) + } else { + // For first few errors, keep normal interval + currentInterval = interval + } + + // Always continue polling, even with errors + if (isActive) { + scheduleNextPoll(currentInterval) } } } // Poll inicial poll() - - // Configurar intervalo - intervalId = setInterval(poll, interval) return { close: () => { isActive = false if (intervalId) { - clearInterval(intervalId) + clearTimeout(intervalId) + intervalId = null } } } diff --git a/system_state.json b/system_state.json index 809c114..6eb7a65 100644 --- a/system_state.json +++ b/system_state.json @@ -3,12 +3,11 @@ "should_connect": true, "should_stream": false, "active_datasets": [ - "Fast", "DAR", - "Test" + "Test", + "Fast" ] }, "auto_recovery_enabled": true, - "last_update": "2025-08-22T16:39:17.693082", - "plotjuggler_path": "C:\\Program Files\\PlotJuggler\\plotjuggler.exe" + "last_update": "2025-08-22T17:31:16.229568" } \ No newline at end of file diff --git a/test_disk_status.py b/test_disk_status.py new file mode 100644 index 0000000..0263c72 --- /dev/null +++ b/test_disk_status.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +""" +Test script to verify disk_space functionality after psutil fix +""" +import requests +import json + + +def test_disk_status(): + """Test the /api/status endpoint to check if disk_space_info works correctly""" + try: + print("๐Ÿงช Testing /api/status endpoint...") + response = requests.get("http://localhost:5050/api/status", timeout=10) + + if response.status_code == 200: + data = response.json() + print("โœ… Status endpoint responded successfully") + + # Check if disk_space_info is present and valid + if "disk_space_info" in data: + disk_info = data["disk_space_info"] + print(f"โœ… Disk space info retrieved successfully:") + print(f" ๐Ÿ“ Free space: {disk_info.get('free_space', 'Unknown')}") + print(f" ๐Ÿ“ Total space: {disk_info.get('total_space', 'Unknown')}") + print(f" ๐Ÿ“ Used space: {disk_info.get('used_space', 'Unknown')}") + print( + f" ๐Ÿ“Š Percent used: {disk_info.get('percent_used', 'Unknown')}%" + ) + print( + f" โฑ๏ธ Recording time left: {disk_info.get('recording_time_left', 'Unknown')}" + ) + + if disk_info.get("error"): + print(f"โŒ Error in disk_space_info: {disk_info['error']}") + else: + print("โœ… No errors in disk_space_info") + else: + print("โŒ disk_space_info not found in response") + + else: + print(f"โŒ Status endpoint failed: {response.status_code}") + print(f"Response: {response.text}") + + except requests.exceptions.ConnectionError: + print("โŒ Cannot connect to backend server at http://localhost:5050") + except Exception as e: + print(f"โŒ Error testing disk status: {e}") + + +if __name__ == "__main__": + test_disk_status()