diff --git a/application_events.json b/application_events.json index 4720d47..6ca682d 100644 --- a/application_events.json +++ b/application_events.json @@ -1,2583 +1,5 @@ { "events": [ - { - "timestamp": "2025-08-16T17:50:46.182343", - "level": "info", - "event_type": "csv_recording_started", - "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY and performance monitoring: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3, - "priority": "CRITICAL", - "recording_protection": true, - "performance_monitoring": true - } - }, - { - "timestamp": "2025-08-16T17:50:56.157022", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 11.070454359054565, - "points_saved": 37, - "points_rate": 3.34222957793395, - "variables_saved": 74, - "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.04276608776401829, - "csv_write_time_avg": 0.000244295274889147 - } - }, - { - "timestamp": "2025-08-16T17:51:06.170160", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.013138055801392, - "points_saved": 36, - "points_rate": 3.5952765056647147, - "variables_saved": 72, - "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.046510808997684054, - "csv_write_time_avg": 2.7841991848415797e-05 - } - }, - { - "timestamp": "2025-08-16T17:51:16.182989", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 3.1% CPU", - "details": { - "duration": 10.012829065322876, - "points_saved": 36, - "points_rate": 3.5953874539492237, - "variables_saved": 72, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 3.1, - "cpu_max": 3.1, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03804396258460151, - "csv_write_time_avg": 3.0610296461317274e-05 - } - }, - { - "timestamp": "2025-08-16T17:51:26.202381", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.6% CPU", - "details": { - "duration": 10.019392728805542, - "points_saved": 36, - "points_rate": 3.5930321302308834, - "variables_saved": 72, - "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.03497481346130371, - "csv_write_time_avg": 7.715490129258898e-06 - } - }, - { - "timestamp": "2025-08-16T17:51:36.214771", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.012389421463013, - "points_saved": 36, - "points_rate": 3.595545327355003, - "variables_saved": 72, - "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.039346019426981606, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:51:46.227696", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.012925148010254, - "points_saved": 36, - "points_rate": 3.5953529530932165, - "variables_saved": 72, - "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.03932499885559082, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:51:56.240555", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.012859106063843, - "points_saved": 36, - "points_rate": 3.5953766670099454, - "variables_saved": 72, - "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.04122459226184421, - "csv_write_time_avg": 2.602736155192057e-06 - } - }, - { - "timestamp": "2025-08-16T17:52:06.253745", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.013189792633057, - "points_saved": 36, - "points_rate": 3.595257929344959, - "variables_saved": 72, - "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.04294577572080824, - "csv_write_time_avg": 1.4636251661512588e-06 - } - }, - { - "timestamp": "2025-08-16T17:52:16.266571", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.012826204299927, - "points_saved": 36, - "points_rate": 3.5953884812801498, - "variables_saved": 72, - "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.0387861794895596, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:52:26.279174", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.012603044509888, - "points_saved": 37, - "points_rate": 3.695342743092951, - "variables_saved": 74, - "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.03841180414766879, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:52:36.292670", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.013496160507202, - "points_saved": 36, - "points_rate": 3.595147930648084, - "variables_saved": 72, - "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.03261729743745592, - "csv_write_time_avg": 5.74191411336263e-06 - } - }, - { - "timestamp": "2025-08-16T17:52:46.305377", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.012706756591797, - "points_saved": 36, - "points_rate": 3.5954313728702427, - "variables_saved": 72, - "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.03950485255983141, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:52:56.319032", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.013654947280884, - "points_saved": 36, - "points_rate": 3.5950909222986027, - "variables_saved": 72, - "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.037491301695505776, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:53:06.332901", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.013869047164917, - "points_saved": 36, - "points_rate": 3.5950140580470404, - "variables_saved": 72, - "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.03695770104726156, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:53:16.352174", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.019272804260254, - "points_saved": 36, - "points_rate": 3.593075136619954, - "variables_saved": 72, - "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.035578529040018715, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:53:26.365408", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.01323390007019, - "points_saved": 36, - "points_rate": 3.5952420925419157, - "variables_saved": 72, - "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.03323685460620456, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:53:36.378311", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.012903451919556, - "points_saved": 36, - "points_rate": 3.595360743551213, - "variables_saved": 72, - "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.03913132349650065, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:53:46.391772", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.013461112976074, - "points_saved": 37, - "points_rate": 3.695026083643853, - "variables_saved": 74, - "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.03530258745760531, - "csv_write_time_avg": 1.5658301276129645e-06 - } - }, - { - "timestamp": "2025-08-16T17:53:56.405491", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.013718128204346, - "points_saved": 36, - "points_rate": 3.5950682392989926, - "variables_saved": 72, - "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.037487030029296875, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:54:06.418616", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.013125658035278, - "points_saved": 36, - "points_rate": 3.5952809571615547, - "variables_saved": 72, - "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.03964172469245063, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:54:16.431687", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.013070821762085, - "points_saved": 36, - "points_rate": 3.5953006466067094, - "variables_saved": 72, - "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.03765919473436144, - "csv_write_time_avg": 4.516707526312934e-06 - } - }, - { - "timestamp": "2025-08-16T17:54:26.444920", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.013233184814453, - "points_saved": 36, - "points_rate": 3.5952423493538253, - "variables_saved": 72, - "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.037419060866038, - "csv_write_time_avg": 2.3245811462402344e-06 - } - }, - { - "timestamp": "2025-08-16T17:54:36.460973", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.016053199768066, - "points_saved": 36, - "points_rate": 3.5942301106022105, - "variables_saved": 72, - "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.03436344199710422, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:54:46.474547", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.013573408126831, - "points_saved": 36, - "points_rate": 3.595120196630612, - "variables_saved": 72, - "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.03271661864386664, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:54:56.488189", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.01364254951477, - "points_saved": 36, - "points_rate": 3.5950953733358944, - "variables_saved": 72, - "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.0374917189280192, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:55:06.502096", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.013907194137573, - "points_saved": 37, - "points_rate": 3.694861484402497, - "variables_saved": 74, - "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.03852872590760927, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T17:55:08.307569", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1_1755359708307_2", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S", - "AUX Blink_1.6S" - ], - "time_window": 36, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-16T17:55:16.515549", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 35 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.013452291488647, - "points_saved": 35, - "points_rate": 3.4952980232152018, - "variables_saved": 70, - "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.06907689911978586, - "csv_write_time_avg": 6.014960152762277e-06 - } - }, - { - "timestamp": "2025-08-16T17:55:26.548136", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.032587766647339, - "points_saved": 37, - "points_rate": 3.6879816913243464, - "variables_saved": 74, - "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.06016896222088788, - "csv_write_time_avg": 3.0472471907332136e-05 - } - }, - { - "timestamp": "2025-08-16T17:55:31.264778", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T17:55:33.278864", - "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-16T17:55:33.291929", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T17:55:33.835152", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-16T17:55:33.945620", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-16T17:55:33.958575", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-16T17:55:33.972570", - "level": "info", - "event_type": "plc_disconnection", - "message": "Disconnected from PLC 10.1.33.11 (stopped recording and streaming)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:00:44.230305", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-16T18:01:59.976168", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1_1755360119976_2", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S", - "AUX Blink_1.6S" - ], - "time_window": 36, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-16T18:02:35.827867", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:02:35.840125", - "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-16T18:02:35.854551", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:02:35.867423", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-16T18:02:35.881419", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-16T18:02:35.895463", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-16T18:02:35.908710", - "level": "info", - "event_type": "plc_disconnection", - "message": "Disconnected from PLC 10.1.33.11 (stopped recording and streaming)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:02:46.128780", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-16T18:06:55.335011", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:06:55.349592", - "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-16T18:06:55.363606", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:06:55.376630", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-16T18:06:55.392695", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-16T18:06:55.406337", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-16T18:06:55.420713", - "level": "info", - "event_type": "plc_disconnection", - "message": "Disconnected from PLC 10.1.33.11 (stopped recording and streaming)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:07:07.885319", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-16T18:07:28.351306", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:07:28.367798", - "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-16T18:07:28.393690", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:07:28.420822", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-16T18:07:28.444904", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-16T18:07:28.471738", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-16T18:07:28.490132", - "level": "info", - "event_type": "plc_disconnection", - "message": "Disconnected from PLC 10.1.33.11 (stopped recording and streaming)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:08:52.243921", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-16T18:08:54.594696", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-16T18:08:54.617597", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 2, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-16T18:08:54.634112", - "level": "info", - "event_type": "csv_recording_started", - "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY and performance monitoring: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3, - "priority": "CRITICAL", - "recording_protection": true, - "performance_monitoring": true - } - }, - { - "timestamp": "2025-08-16T18:08:54.653130", - "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": [ - "test", - "Fast", - "DAR" - ] - } - }, - { - "timestamp": "2025-08-16T18:09:04.594218", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 13.355351448059082, - "points_saved": 36, - "points_rate": 2.695548682489508, - "variables_saved": 72, - "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.07478510671191746, - "csv_write_time_avg": 0.0008287827173868815 - } - }, - { - "timestamp": "2025-08-16T18:09:09.869658", - "level": "info", - "event_type": "plot_session_created", - "message": "Plot session 'UR29' created and started", - "details": { - "session_id": "plot_1_1755360549868_2", - "variables": [ - "UR29_Brix", - "UR29_ma", - "AUX Blink_1.0S", - "AUX Blink_1.6S" - ], - "time_window": 36, - "trigger_variable": null, - "auto_started": true - } - }, - { - "timestamp": "2025-08-16T18:09:14.628840", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.034621953964233, - "points_saved": 36, - "points_rate": 3.5875791001551383, - "variables_saved": 72, - "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.10597432321972317, - "csv_write_time_avg": 0.00024400817023383247 - } - }, - { - "timestamp": "2025-08-16T18:09:24.664064", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 35 points saved, 0 lost, 1.4% CPU", - "details": { - "duration": 10.035223245620728, - "points_saved": 35, - "points_rate": 3.4877151353133726, - "variables_saved": 70, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 1.4, - "cpu_max": 1.4, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.10966954912458148, - "csv_write_time_avg": 9.672982352120535e-06 - } - }, - { - "timestamp": "2025-08-16T18:09:34.689052", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.024988651275635, - "points_saved": 36, - "points_rate": 3.591026509084293, - "variables_saved": 72, - "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.10865267780092028, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:09:44.711185", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 35 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.021626234054565, - "points_saved": 35, - "points_rate": 3.492447152046664, - "variables_saved": 70, - "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.11189383779253279, - "csv_write_time_avg": 1.2377330235072544e-05 - } - }, - { - "timestamp": "2025-08-16T18:09:45.994337", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:09:48.019510", - "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-16T18:09:48.037352", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:09:48.061680", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-16T18:09:48.594707", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-16T18:09:48.704248", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-16T18:09:48.731607", - "level": "info", - "event_type": "plc_disconnection", - "message": "Disconnected from PLC 10.1.33.11 (stopped recording and streaming)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:09:54.026179", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-16T18:12:35.193846", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-16T18:12:35.214164", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 2, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-16T18:12:35.242172", - "level": "info", - "event_type": "csv_recording_started", - "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY and performance monitoring: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3, - "priority": "CRITICAL", - "recording_protection": true, - "performance_monitoring": true - } - }, - { - "timestamp": "2025-08-16T18:12:35.264006", - "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-16T18:12:45.194277", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 172.17324900627136, - "points_saved": 36, - "points_rate": 0.20909171551202307, - "variables_saved": 72, - "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.07627265320883857, - "csv_write_time_avg": 0.0006985391889299665 - } - }, - { - "timestamp": "2025-08-16T18:12:55.217766", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.023489236831665, - "points_saved": 36, - "points_rate": 3.5915636909866406, - "variables_saved": 72, - "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.11325633525848389, - "csv_write_time_avg": 9.622838762071398e-06 - } - }, - { - "timestamp": "2025-08-16T18:13:05.245625", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 35 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.027859687805176, - "points_saved": 35, - "points_rate": 3.490276199472885, - "variables_saved": 70, - "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.11114109584263393, - "csv_write_time_avg": 4.802431379045759e-06 - } - }, - { - "timestamp": "2025-08-16T18:13:11.169608", - "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-16T18:13:15.286578", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.040952205657959, - "points_saved": 36, - "points_rate": 3.585317334715967, - "variables_saved": 72, - "udp_points_sent": 28, - "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.11712222629123265, - "csv_write_time_avg": 5.404154459635417e-06 - } - }, - { - "timestamp": "2025-08-16T18:13:25.324111", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.6% CPU", - "details": { - "duration": 10.037533283233643, - "points_saved": 36, - "points_rate": 3.5865385433025847, - "variables_saved": 72, - "udp_points_sent": 72, - "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.1134060952398512, - "csv_write_time_avg": 1.1357996198866102e-05 - } - }, - { - "timestamp": "2025-08-16T18:13:35.353198", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 35 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.029086589813232, - "points_saved": 35, - "points_rate": 3.489849218726487, - "variables_saved": 70, - "udp_points_sent": 70, - "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.11029632432120187, - "csv_write_time_avg": 4.945482526506697e-06 - } - }, - { - "timestamp": "2025-08-16T18:13:45.385301", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.032102823257446, - "points_saved": 36, - "points_rate": 3.5884799661882574, - "variables_saved": 72, - "udp_points_sent": 72, - "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.10879535145229763, - "csv_write_time_avg": 5.525350570678711e-05 - } - }, - { - "timestamp": "2025-08-16T18:13:55.414956", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 35 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029655456542969, - "points_saved": 35, - "points_rate": 3.4896512798121417, - "variables_saved": 70, - "udp_points_sent": 70, - "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.11340193748474121, - "csv_write_time_avg": 4.182543073381697e-06 - } - }, - { - "timestamp": "2025-08-16T18:14:05.434624", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.019159078598022, - "points_saved": 36, - "points_rate": 3.593115920965841, - "variables_saved": 72, - "udp_points_sent": 72, - "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.1110761629210578, - "csv_write_time_avg": 3.1597084469265406e-05 - } - }, - { - "timestamp": "2025-08-16T18:14:15.473900", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.039785385131836, - "points_saved": 36, - "points_rate": 3.58573401910695, - "variables_saved": 72, - "udp_points_sent": 72, - "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.11252274778154162, - "csv_write_time_avg": 5.053149329291449e-06 - } - }, - { - "timestamp": "2025-08-16T18:14:25.509577", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 35 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.035677194595337, - "points_saved": 35, - "points_rate": 3.48755737369164, - "variables_saved": 70, - "udp_points_sent": 70, - "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.10935754776000976, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:14:35.545532", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.8% CPU", - "details": { - "duration": 10.035954475402832, - "points_saved": 36, - "points_rate": 3.5871027602040813, - "variables_saved": 72, - "udp_points_sent": 72, - "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.10765999555587769, - "csv_write_time_avg": 2.1682845221625434e-05 - } - }, - { - "timestamp": "2025-08-16T18:14:45.574789", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.029256820678711, - "points_saved": 36, - "points_rate": 3.5894982692809103, - "variables_saved": 72, - "udp_points_sent": 72, - "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.10831038819419013, - "csv_write_time_avg": 1.9841723971896703e-05 - } - }, - { - "timestamp": "2025-08-16T18:14:50.541624", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:14:52.561333", - "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-16T18:14:52.579277", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:14:53.063130", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-16T18:14:53.250504", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-16T18:14:53.266532", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-16T18:14:53.283593", - "level": "info", - "event_type": "plc_disconnection", - "message": "Disconnected from PLC 10.1.33.11 (stopped recording and streaming)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:14:58.719086", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-16T18:15:09.745453", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-16T18:15:09.772485", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 2, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-16T18:15:09.797139", - "level": "info", - "event_type": "csv_recording_started", - "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY and performance monitoring: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3, - "priority": "CRITICAL", - "recording_protection": true, - "performance_monitoring": true - } - }, - { - "timestamp": "2025-08-16T18:15:09.817144", - "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-16T18:15:19.746228", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 22.043440341949463, - "points_saved": 36, - "points_rate": 1.6331389039800062, - "variables_saved": 72, - "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.07398335138956706, - "csv_write_time_avg": 0.00012909344264439175 - } - }, - { - "timestamp": "2025-08-16T18:15:29.770773", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.024544954299927, - "points_saved": 36, - "points_rate": 3.591185451720496, - "variables_saved": 72, - "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.10564761691623265, - "csv_write_time_avg": 3.854433695475261e-06 - } - }, - { - "timestamp": "2025-08-16T18:15:38.837357", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:15:39.801524", - "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-16T18:15:39.819009", - "level": "info", - "event_type": "udp_streaming_stopped", - "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", - "details": {} - }, - { - "timestamp": "2025-08-16T18:15:40.316145", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: DAR", - "details": { - "dataset_id": "DAR" - } - }, - { - "timestamp": "2025-08-16T18:15:40.473755", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: Fast", - "details": { - "dataset_id": "Fast" - } - }, - { - "timestamp": "2025-08-16T18:15:40.487765", - "level": "info", - "event_type": "dataset_deactivated", - "message": "Dataset deactivated: test", - "details": { - "dataset_id": "Test" - } - }, - { - "timestamp": "2025-08-16T18:15:40.502765", - "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-16T18:15:47.739844", - "level": "info", - "event_type": "application_started", - "message": "Application initialization completed successfully", - "details": {} - }, - { - "timestamp": "2025-08-16T18:15:47.789389", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: DAR", - "details": { - "dataset_id": "DAR", - "variables_count": 2, - "streaming_count": 2, - "prefix": "gateway_phoenix" - } - }, - { - "timestamp": "2025-08-16T18:15:47.805386", - "level": "info", - "event_type": "dataset_activated", - "message": "Dataset activated: Fast", - "details": { - "dataset_id": "Fast", - "variables_count": 2, - "streaming_count": 2, - "prefix": "fast" - } - }, - { - "timestamp": "2025-08-16T18:15:47.821386", - "level": "info", - "event_type": "csv_recording_started", - "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY and performance monitoring: 2 datasets activated", - "details": { - "activated_datasets": 2, - "total_datasets": 3, - "priority": "CRITICAL", - "recording_protection": true, - "performance_monitoring": true - } - }, - { - "timestamp": "2025-08-16T18:15:57.789677", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 11.05662226676941, - "points_saved": 36, - "points_rate": 3.2559672503416994, - "variables_saved": 72, - "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.04439822170469496, - "csv_write_time_avg": 0.00016028351253933378 - } - }, - { - "timestamp": "2025-08-16T18:16:07.805238", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 0 lost, 0.6% CPU", - "details": { - "duration": 10.015561580657959, - "points_saved": 37, - "points_rate": 3.694251161258332, - "variables_saved": 74, - "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.03554723069474504, - "csv_write_time_avg": 2.2488671380120353e-06 - } - }, - { - "timestamp": "2025-08-16T18:16:17.821970", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.01673150062561, - "points_saved": 36, - "points_rate": 3.5939867208930942, - "variables_saved": 72, - "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.03927622238794962, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:16:27.837370", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.015400409698486, - "points_saved": 36, - "points_rate": 3.594464377593844, - "variables_saved": 72, - "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.04052731063630846, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:16:37.854374", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.017004013061523, - "points_saved": 36, - "points_rate": 3.593888946541135, - "variables_saved": 72, - "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.03979142506917318, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:16:47.870105", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.015730619430542, - "points_saved": 36, - "points_rate": 3.5943458712996845, - "variables_saved": 72, - "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.03612257374657525, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:16:57.885474", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.015369653701782, - "points_saved": 36, - "points_rate": 3.594475415762017, - "variables_saved": 72, - "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.04104538758595785, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:17:07.902040", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.016565561294556, - "points_saved": 36, - "points_rate": 3.5940462606373944, - "variables_saved": 72, - "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.04232439729902479, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:17:17.917923", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.015883445739746, - "points_saved": 36, - "points_rate": 3.5942910273494237, - "variables_saved": 72, - "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.03648039367463854, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:17:27.933485", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.01556134223938, - "points_saved": 37, - "points_rate": 3.6942512491992954, - "variables_saved": 74, - "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.03906994896966058, - "csv_write_time_avg": 3.0524021870381124e-05 - } - }, - { - "timestamp": "2025-08-16T18:17:37.949275", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.015790224075317, - "points_saved": 36, - "points_rate": 3.594324481104396, - "variables_saved": 72, - "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.03867859310574002, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:17:47.965127", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.015851974487305, - "points_saved": 36, - "points_rate": 3.594302321130578, - "variables_saved": 72, - "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.03987422916624281, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:17:57.980939", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.015811681747437, - "points_saved": 36, - "points_rate": 3.5943167806964156, - "variables_saved": 72, - "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.037962251239352755, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:18:07.997921", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.016981840133667, - "points_saved": 36, - "points_rate": 3.5938969017357842, - "variables_saved": 72, - "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.040401822990841336, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:18:18.014167", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.016246557235718, - "points_saved": 36, - "points_rate": 3.5941607262047346, - "variables_saved": 72, - "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.03960382276111179, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:18:28.029038", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.014870882034302, - "points_saved": 36, - "points_rate": 3.5946544317990634, - "variables_saved": 72, - "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.03836107916302151, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:18:38.046633", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.017594814300537, - "points_saved": 37, - "points_rate": 3.693501352957593, - "variables_saved": 74, - "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.04004202017912994, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:18:48.062480", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.015847206115723, - "points_saved": 36, - "points_rate": 3.594304032315732, - "variables_saved": 72, - "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.03702466355429755, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:18:58.077999", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.0155189037323, - "points_saved": 36, - "points_rate": 3.594421851331591, - "variables_saved": 72, - "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.04394581582811144, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:19:08.094513", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.016514301300049, - "points_saved": 36, - "points_rate": 3.594064653342285, - "variables_saved": 72, - "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.03640420569313897, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:19:18.115813", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.021299362182617, - "points_saved": 36, - "points_rate": 3.592348526764226, - "variables_saved": 72, - "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.03397510449091593, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:19:28.132007", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.016194581985474, - "points_saved": 36, - "points_rate": 3.5941793767412866, - "variables_saved": 72, - "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.033335248629252114, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:19:38.148596", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.01658844947815, - "points_saved": 36, - "points_rate": 3.5940380481415857, - "variables_saved": 72, - "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.03539826472600301, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:19:48.164694", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.016098737716675, - "points_saved": 36, - "points_rate": 3.5942137695226792, - "variables_saved": 72, - "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.03839094771279229, - "csv_write_time_avg": 1.9404623243543838e-06 - } - }, - { - "timestamp": "2025-08-16T18:19:58.180998", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 37 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.016303777694702, - "points_saved": 37, - "points_rate": 3.6939774213313363, - "variables_saved": 74, - "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.04166726808290224, - "csv_write_time_avg": 3.5569474503800677e-06 - } - }, - { - "timestamp": "2025-08-16T18:20:08.197365", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.016367435455322, - "points_saved": 36, - "points_rate": 3.5941173516228457, - "variables_saved": 72, - "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.03984416855706109, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:20:18.213931", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.016565084457397, - "points_saved": 36, - "points_rate": 3.594046431731456, - "variables_saved": 72, - "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.03554742866092258, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:20:28.232351", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.018420934677124, - "points_saved": 36, - "points_rate": 3.593380656964801, - "variables_saved": 72, - "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.038087175952063665, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:20:38.249273", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.016921520233154, - "points_saved": 36, - "points_rate": 3.593918543465045, - "variables_saved": 72, - "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.037242107921176486, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:20:48.265814", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.016541242599487, - "points_saved": 36, - "points_rate": 3.5940549864553146, - "variables_saved": 72, - "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.036770641803741455, - "csv_write_time_avg": 2.1060307820638022e-06 - } - }, - { - "timestamp": "2025-08-16T18:20:58.282420", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.016606092453003, - "points_saved": 36, - "points_rate": 3.5940317177016823, - "variables_saved": 72, - "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.03727916876475016, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-16T18:21:08.299399", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 36 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.01697850227356, - "points_saved": 36, - "points_rate": 3.593898099295018, - "variables_saved": 72, - "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.03724938631057739, - "csv_write_time_avg": 0.0 - } - }, { "timestamp": "2025-08-16T18:21:18.315253", "level": "info", @@ -21209,8 +18631,3143 @@ "read_time_avg": 0.10174032052357991, "csv_write_time_avg": 0.0 } + }, + { + "timestamp": "2025-08-16T20:36:56.364121", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 5.3% CPU", + "details": { + "duration": 10.061962842941284, + "points_saved": 30, + "points_rate": 2.981525619630542, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 5.3, + "cpu_max": 5.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04073771635691325, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:37:06.394866", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.030744552612305, + "points_saved": 30, + "points_rate": 2.9908049041271925, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03560118675231934, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:37:16.423447", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.028580665588379, + "points_saved": 30, + "points_rate": 2.9914502361177244, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03720237414042155, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:37:26.453755", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.030308723449707, + "points_saved": 30, + "points_rate": 2.9909348582525137, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.041125551859537764, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:37:36.483145", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.029389381408691, + "points_saved": 30, + "points_rate": 2.991209021718759, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.047101593017578124, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:37:46.512150", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.029005289077759, + "points_saved": 30, + "points_rate": 2.991323579485192, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04483318328857422, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:37:56.541352", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.029202222824097, + "points_saved": 30, + "points_rate": 2.991264841756514, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04510513146718343, + "csv_write_time_avg": 2.837181091308594e-06 + } + }, + { + "timestamp": "2025-08-16T20:38:06.569938", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.028585433959961, + "points_saved": 30, + "points_rate": 2.9914488137489976, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03943785031636556, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:38:16.599008", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.029070377349854, + "points_saved": 30, + "points_rate": 2.9913041659128723, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033607975641886396, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:38:26.628802", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.029793500900269, + "points_saved": 30, + "points_rate": 2.991088500207628, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033319767316182455, + "csv_write_time_avg": 2.280871073404948e-06 + } + }, + { + "timestamp": "2025-08-16T20:38:36.658161", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.029359340667725, + "points_saved": 30, + "points_rate": 2.991217981227771, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.05154252052307129, + "csv_write_time_avg": 0.00017143090565999348 + } + }, + { + "timestamp": "2025-08-16T20:38:46.718914", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 2.8% CPU", + "details": { + "duration": 10.058753967285156, + "points_saved": 30, + "points_rate": 2.9824767657675357, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 2.8, + "cpu_max": 2.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10460737546284994, + "csv_write_time_avg": 0.002077031135559082 + } + }, + { + "timestamp": "2025-08-16T20:38:56.825641", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 8.7% CPU", + "details": { + "duration": 10.107733011245728, + "points_saved": 29, + "points_rate": 2.8690904248989355, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 8.7, + "cpu_max": 8.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11106049603429334, + "csv_write_time_avg": 0.0018250202310496364 + } + }, + { + "timestamp": "2025-08-16T20:39:06.883871", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 12.0% CPU", + "details": { + "duration": 10.059223651885986, + "points_saved": 31, + "points_rate": 3.081748758433049, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 12.0, + "cpu_max": 12.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.08341622352600098, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:39:16.935123", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.051251411437988, + "points_saved": 29, + "points_rate": 2.885212876776614, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.08391529938270306, + "csv_write_time_avg": 0.0005917466919997643 + } + }, + { + "timestamp": "2025-08-16T20:39:27.001582", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 7.5% CPU", + "details": { + "duration": 10.06645941734314, + "points_saved": 30, + "points_rate": 2.9801938056109463, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 7.5, + "cpu_max": 7.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.049323050181070964, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:39:37.030232", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.028649806976318, + "points_saved": 30, + "points_rate": 2.991429611903572, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.050429495175679524, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:39:47.100187", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.068791627883911, + "points_saved": 30, + "points_rate": 2.979503510323899, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.1303873300552368, + "csv_write_time_avg": 0.003666234016418457 + } + }, + { + "timestamp": "2025-08-16T20:39:57.130741", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 8.1% CPU", + "details": { + "duration": 10.031717300415039, + "points_saved": 30, + "points_rate": 2.9905148940709103, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 8.1, + "cpu_max": 8.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04050344626108805, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:40:07.162804", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.032063484191895, + "points_saved": 30, + "points_rate": 2.9904116981788187, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03976258436838786, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:40:17.191193", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.028388261795044, + "points_saved": 30, + "points_rate": 2.9915076298242678, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03728508949279785, + "csv_write_time_avg": 2.384185791015625e-06 + } + }, + { + "timestamp": "2025-08-16T20:40:27.221083", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.029889583587646, + "points_saved": 30, + "points_rate": 2.991059846669731, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03533314863840739, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:40:37.250665", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.029582262039185, + "points_saved": 30, + "points_rate": 2.991151497260913, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03366369406382243, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:40:47.283122", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.03245759010315, + "points_saved": 30, + "points_rate": 2.9902942255738507, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.038564658164978026, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:40:57.316541", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.033418893814087, + "points_saved": 30, + "points_rate": 2.9900077249337143, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.044162686665852866, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:41:07.345455", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.028913974761963, + "points_saved": 30, + "points_rate": 2.991350815800776, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03725996017456055, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:41:17.375494", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.030039072036743, + "points_saved": 30, + "points_rate": 2.991015267691083, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03471035162607829, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:41:27.403633", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.028138160705566, + "points_saved": 30, + "points_rate": 2.9915822378228225, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03552371660868327, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:41:37.433936", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.030303001403809, + "points_saved": 30, + "points_rate": 2.990936564508699, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03182211716969808, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:41:47.461630", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02769422531128, + "points_saved": 30, + "points_rate": 2.99171467796414, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03522191047668457, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:41:57.488805", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.027174949645996, + "points_saved": 30, + "points_rate": 2.991869609401712, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04017088413238525, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:42:07.518211", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.029406309127808, + "points_saved": 30, + "points_rate": 2.991203973130181, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03855424722035726, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:42:17.545223", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.027012348175049, + "points_saved": 30, + "points_rate": 2.9919181265853436, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035361131032307945, + "csv_write_time_avg": 1.9391377766927082e-06 + } + }, + { + "timestamp": "2025-08-16T20:42:27.572199", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.026975393295288, + "points_saved": 30, + "points_rate": 2.9919291534374386, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033144172032674155, + "csv_write_time_avg": 3.333886464436849e-05 + } + }, + { + "timestamp": "2025-08-16T20:42:37.599626", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.027427911758423, + "points_saved": 30, + "points_rate": 2.9917941334508344, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036641478538513184, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:42:47.627542", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.027915477752686, + "points_saved": 30, + "points_rate": 2.991648669811403, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03286041418711345, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:42:57.657210", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.029668092727661, + "points_saved": 30, + "points_rate": 2.991125899944035, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03320193290710449, + "csv_write_time_avg": 1.6768773396809896e-06 + } + }, + { + "timestamp": "2025-08-16T20:43:07.691711", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.034500360488892, + "points_saved": 30, + "points_rate": 2.9896854773283765, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.07593237559000651, + "csv_write_time_avg": 0.00296479066212972 + } + }, + { + "timestamp": "2025-08-16T20:43:17.782444", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 16.1% CPU", + "details": { + "duration": 10.089764595031738, + "points_saved": 30, + "points_rate": 2.973310201386877, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 16.1, + "cpu_max": 16.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12472867965698242, + "csv_write_time_avg": 0.0010937690734863282 + } + }, + { + "timestamp": "2025-08-16T20:43:27.859659", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 9.8% CPU", + "details": { + "duration": 10.062681913375854, + "points_saved": 29, + "points_rate": 2.881935477007541, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 9.8, + "cpu_max": 9.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12268065584116969, + "csv_write_time_avg": 0.0027132445368273504 + } + }, + { + "timestamp": "2025-08-16T20:43:38.192648", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 9.8% CPU", + "details": { + "duration": 10.348491430282593, + "points_saved": 31, + "points_rate": 2.9956057082180396, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 9.8, + "cpu_max": 9.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10223702461488786, + "csv_write_time_avg": 0.0005253976391207787 + } + }, + { + "timestamp": "2025-08-16T20:43:48.253908", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.06025767326355, + "points_saved": 29, + "points_rate": 2.8826299426774415, + "variables_saved": 58, + "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.1089395079119452, + "csv_write_time_avg": 6.207104386954472e-06 + } + }, + { + "timestamp": "2025-08-16T20:43:58.326209", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.073302507400513, + "points_saved": 30, + "points_rate": 2.978169272486359, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12354648113250732, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:44:08.391497", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.064391374588013, + "points_saved": 30, + "points_rate": 2.980806179273613, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11173728307088217, + "csv_write_time_avg": 1.5934308369954426e-05 + } + }, + { + "timestamp": "2025-08-16T20:44:18.452576", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.060974836349487, + "points_saved": 29, + "points_rate": 2.8824244640017733, + "variables_saved": 58, + "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.10105233356870454, + "csv_write_time_avg": 5.072560803643588e-06 + } + }, + { + "timestamp": "2025-08-16T20:44:28.509613", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.058038473129272, + "points_saved": 30, + "points_rate": 2.9826889288748517, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10302333037058513, + "csv_write_time_avg": 4.855791727701823e-06 + } + }, + { + "timestamp": "2025-08-16T20:44:38.554668", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.045054197311401, + "points_saved": 30, + "points_rate": 2.986544364094085, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12618552843729655, + "csv_write_time_avg": 0.0015963872273763021 + } + }, + { + "timestamp": "2025-08-16T20:44:48.600352", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 6.2% CPU", + "details": { + "duration": 10.045684099197388, + "points_saved": 29, + "points_rate": 2.886811860062073, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 6.2, + "cpu_max": 6.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.07831774086787782, + "csv_write_time_avg": 5.845365853145205e-06 + } + }, + { + "timestamp": "2025-08-16T20:44:58.629310", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.028958559036255, + "points_saved": 30, + "points_rate": 2.9913375175899506, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03625458081563314, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:45:08.657989", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.028679132461548, + "points_saved": 30, + "points_rate": 2.99142086447794, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03550413449605306, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:45:18.688559", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.030569314956665, + "points_saved": 30, + "points_rate": 2.99085715456517, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03524561723073324, + "csv_write_time_avg": 3.332297007242839e-05 + } + }, + { + "timestamp": "2025-08-16T20:45:28.719481", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.030922174453735, + "points_saved": 30, + "points_rate": 2.9907519446619317, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035062305132548016, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:45:38.748395", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.028914213180542, + "points_saved": 30, + "points_rate": 2.9913507446870344, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033526492118835446, + "csv_write_time_avg": 2.392133076985677e-06 + } + }, + { + "timestamp": "2025-08-16T20:45:48.778363", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 31 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.029967784881592, + "points_saved": 31, + "points_rate": 3.0907377436173857, + "variables_saved": 62, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03895238907106461, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:45:58.807564", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.02920150756836, + "points_saved": 29, + "points_rate": 2.8915562199159788, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03384844188032479, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:46:08.836429", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.028864860534668, + "points_saved": 30, + "points_rate": 2.991365465303579, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.039566294352213545, + "csv_write_time_avg": 2.304712931315104e-06 + } + }, + { + "timestamp": "2025-08-16T20:46:18.865642", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.029212713241577, + "points_saved": 30, + "points_rate": 2.991261712934952, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03922937711079915, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:46:26.971973", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-16T20:46:28.895331", + "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-16T20:46:28.925838", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-16T20:46:28.952451", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: test", + "details": { + "dataset_id": "Test" + } + }, + { + "timestamp": "2025-08-16T20:46:29.008908", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: Fast", + "details": { + "dataset_id": "Fast" + } + }, + { + "timestamp": "2025-08-16T20:46:29.340080", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-16T20:46:29.366218", + "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-16T20:46:32.288291", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-16T20:46:32.370290", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 2, + "streaming_count": 2, + "prefix": "gateway_phoenix" + } + }, + { + "timestamp": "2025-08-16T20:46:32.408231", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: Fast", + "details": { + "dataset_id": "Fast", + "variables_count": 2, + "streaming_count": 2, + "prefix": "fast" + } + }, + { + "timestamp": "2025-08-16T20:46:32.438922", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY and performance monitoring: 2 datasets activated", + "details": { + "activated_datasets": 2, + "total_datasets": 3, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true + } + }, + { + "timestamp": "2025-08-16T20:46:42.371369", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.089497327804565, + "points_saved": 30, + "points_rate": 2.705262385949754, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.038559611638387045, + "csv_write_time_avg": 0.0002069391053298424 + } + }, + { + "timestamp": "2025-08-16T20:46:52.401154", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.029784679412842, + "points_saved": 30, + "points_rate": 2.991091130956985, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04308903217315674, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:47:02.448504", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 3.1% CPU", + "details": { + "duration": 10.03435206413269, + "points_saved": 30, + "points_rate": 2.9897296614928988, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 3.1, + "cpu_max": 3.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.09004952907562255, + "csv_write_time_avg": 0.0003996133804321289 + } + }, + { + "timestamp": "2025-08-16T20:47:12.521939", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 10.2% CPU", + "details": { + "duration": 10.086433172225952, + "points_saved": 30, + "points_rate": 2.9742922485827927, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 10.2, + "cpu_max": 10.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10428303082784017, + "csv_write_time_avg": 0.0020782073338826497 + } + }, + { + "timestamp": "2025-08-16T20:47:22.589060", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 4.2% CPU", + "details": { + "duration": 10.0659658908844, + "points_saved": 29, + "points_rate": 2.880995258116462, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 4.2, + "cpu_max": 4.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10059090318350956, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:47:32.649353", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.061448335647583, + "points_saved": 30, + "points_rate": 2.9816780844275055, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11059606075286865, + "csv_write_time_avg": 0.0009559790293375651 + } + }, + { + "timestamp": "2025-08-16T20:47:42.709289", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 6.7% CPU", + "details": { + "duration": 10.058944463729858, + "points_saved": 30, + "points_rate": 2.9824202835767517, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 6.7, + "cpu_max": 6.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12008512814839681, + "csv_write_time_avg": 1.6395250956217448e-05 + } + }, + { + "timestamp": "2025-08-16T20:47:51.564754", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-16T20:47:52.741233", + "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-16T20:47:52.772865", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-16T20:47:53.129072", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-16T20:47:53.952944", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: Fast", + "details": { + "dataset_id": "Fast" + } + }, + { + "timestamp": "2025-08-16T20:47:53.981323", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: test", + "details": { + "dataset_id": "Test" + } + }, + { + "timestamp": "2025-08-16T20:47:54.012048", + "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-16T20:47:56.691366", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-16T20:47:56.757040", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 2, + "streaming_count": 2, + "prefix": "gateway_phoenix" + } + }, + { + "timestamp": "2025-08-16T20:47:56.788324", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: Fast", + "details": { + "dataset_id": "Fast", + "variables_count": 2, + "streaming_count": 2, + "prefix": "fast" + } + }, + { + "timestamp": "2025-08-16T20:47:56.818399", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY and performance monitoring: 2 datasets activated", + "details": { + "activated_datasets": 2, + "total_datasets": 3, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true + } + }, + { + "timestamp": "2025-08-16T20:48:06.757497", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.069613456726074, + "points_saved": 30, + "points_rate": 2.710121732549886, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.044919482866923016, + "csv_write_time_avg": 0.00013764973344474002 + } + }, + { + "timestamp": "2025-08-16T20:48:16.786876", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 2.6% CPU", + "details": { + "duration": 10.029379606246948, + "points_saved": 30, + "points_rate": 2.9912119371086576, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 2.6, + "cpu_max": 2.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.1026104211807251, + "csv_write_time_avg": 0.00017365614573160807 + } + }, + { + "timestamp": "2025-08-16T20:48:26.849456", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 7.5% CPU", + "details": { + "duration": 10.06257963180542, + "points_saved": 30, + "points_rate": 2.981342866115279, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 7.5, + "cpu_max": 7.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10060224533081055, + "csv_write_time_avg": 3.925164540608724e-05 + } + }, + { + "timestamp": "2025-08-16T20:48:36.920056", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 2.6% CPU", + "details": { + "duration": 10.069708585739136, + "points_saved": 30, + "points_rate": 2.9792321937187363, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 2.6, + "cpu_max": 2.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0979474941889445, + "csv_write_time_avg": 1.2771288553873699e-05 + } + }, + { + "timestamp": "2025-08-16T20:48:46.997318", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.076756000518799, + "points_saved": 29, + "points_rate": 2.877910311464021, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10109890740493248, + "csv_write_time_avg": 0.0005463978339885844 + } + }, + { + "timestamp": "2025-08-16T20:48:57.091924", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 5.6% CPU", + "details": { + "duration": 10.09600305557251, + "points_saved": 30, + "points_rate": 2.971472951708492, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 5.6, + "cpu_max": 5.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11587661107381185, + "csv_write_time_avg": 0.0010371764500935873 + } + }, + { + "timestamp": "2025-08-16T20:49:07.160980", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 3.1% CPU", + "details": { + "duration": 10.069056034088135, + "points_saved": 30, + "points_rate": 2.979425270694388, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 3.1, + "cpu_max": 3.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11006903648376465, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:49:17.198982", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.038002729415894, + "points_saved": 29, + "points_rate": 2.8890209319247213, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.09850378694205449, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:49:27.249564", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.050581455230713, + "points_saved": 30, + "points_rate": 2.9849019316575793, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10142248471577962, + "csv_write_time_avg": 2.052783966064453e-05 + } + }, + { + "timestamp": "2025-08-16T20:49:30.240498", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-16T20:49:32.270249", + "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-16T20:49:32.301674", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-16T20:49:32.332056", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: test", + "details": { + "dataset_id": "Test" + } + }, + { + "timestamp": "2025-08-16T20:49:32.424145", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-16T20:49:32.568112", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: Fast", + "details": { + "dataset_id": "Fast" + } + }, + { + "timestamp": "2025-08-16T20:49:32.598876", + "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-16T20:49:37.449594", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-16T20:49:37.516092", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 2, + "streaming_count": 2, + "prefix": "gateway_phoenix" + } + }, + { + "timestamp": "2025-08-16T20:49:37.547014", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: Fast", + "details": { + "dataset_id": "Fast", + "variables_count": 2, + "streaming_count": 2, + "prefix": "fast" + } + }, + { + "timestamp": "2025-08-16T20:49:37.575463", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY and performance monitoring: 2 datasets activated", + "details": { + "activated_datasets": 2, + "total_datasets": 3, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true + } + }, + { + "timestamp": "2025-08-16T20:49:47.516925", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.078372716903687, + "points_saved": 30, + "points_rate": 2.7079789393820604, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0445414940516154, + "csv_write_time_avg": 0.0005309828396501212 + } + }, + { + "timestamp": "2025-08-16T20:49:57.547099", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 3.0% CPU", + "details": { + "duration": 10.030174016952515, + "points_saved": 30, + "points_rate": 2.990975026883427, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 3.0, + "cpu_max": 3.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.08463428815205892, + "csv_write_time_avg": 0.0004153728485107422 + } + }, + { + "timestamp": "2025-08-16T20:50:07.585133", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 4.7% CPU", + "details": { + "duration": 10.038033962249756, + "points_saved": 30, + "points_rate": 2.988633044361239, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 4.7, + "cpu_max": 4.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10028981367746989, + "csv_write_time_avg": 5.404154459635417e-06 + } + }, + { + "timestamp": "2025-08-16T20:50:17.631971", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.045838117599487, + "points_saved": 29, + "points_rate": 2.8867676007235645, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.08414169015555546, + "csv_write_time_avg": 3.4751563236631197e-05 + } + }, + { + "timestamp": "2025-08-16T20:50:27.662777", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.031805992126465, + "points_saved": 30, + "points_rate": 2.9904884547753134, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03381749788920085, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:50:37.698668", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.035891056060791, + "points_saved": 30, + "points_rate": 2.9892711900138305, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10107214450836181, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:50:47.762811", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.063127040863037, + "points_saved": 30, + "points_rate": 2.981180688485786, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.1311439832051595, + "csv_write_time_avg": 0.002040394147237142 + } + }, + { + "timestamp": "2025-08-16T20:50:57.806541", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 7.0% CPU", + "details": { + "duration": 10.044746160507202, + "points_saved": 30, + "points_rate": 2.9866359508367277, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 7.0, + "cpu_max": 7.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.07543189525604248, + "csv_write_time_avg": 2.9826164245605467e-05 + } + }, + { + "timestamp": "2025-08-16T20:51:07.837176", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.030635118484497, + "points_saved": 30, + "points_rate": 2.9908375337784814, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03454430103302002, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:51:17.866326", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.029149770736694, + "points_saved": 30, + "points_rate": 2.9912804859625046, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03503462473551432, + "csv_write_time_avg": 1.724561055501302e-06 + } + }, + { + "timestamp": "2025-08-16T20:51:27.899027", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.032700538635254, + "points_saved": 30, + "points_rate": 2.990221813605621, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03171673615773519, + "csv_write_time_avg": 3.0358632405598956e-06 + } + }, + { + "timestamp": "2025-08-16T20:51:37.928687", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.028661012649536, + "points_saved": 30, + "points_rate": 2.9914262693852995, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034659775098164876, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:51:47.957609", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.029921054840088, + "points_saved": 30, + "points_rate": 2.9910504615111653, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03645302454630534, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:51:57.986526", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.028917074203491, + "points_saved": 30, + "points_rate": 2.9913498913224026, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04102790355682373, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:52:08.016539", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.0300133228302, + "points_saved": 30, + "points_rate": 2.9910229462721, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0362394650777181, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:52:18.047492", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.03095269203186, + "points_saved": 30, + "points_rate": 2.9907428457748244, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03687135378519694, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:52:28.076824", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.029331684112549, + "points_saved": 30, + "points_rate": 2.9912262297120913, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03505408763885498, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:52:38.106278", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.029454231262207, + "points_saved": 30, + "points_rate": 2.991189680739437, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03737199306488037, + "csv_write_time_avg": 1.8358230590820313e-06 + } + }, + { + "timestamp": "2025-08-16T20:52:48.137868", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.031590700149536, + "points_saved": 30, + "points_rate": 2.9905526348431266, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03934734662373861, + "csv_write_time_avg": 2.463658650716146e-06 + } + }, + { + "timestamp": "2025-08-16T20:52:58.178194", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.038325309753418, + "points_saved": 30, + "points_rate": 2.9885463037197506, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03694597085316976, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:53:08.210562", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.03436803817749, + "points_saved": 30, + "points_rate": 2.9897249020426404, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03930521011352539, + "csv_write_time_avg": 1.8914540608723959e-06 + } + }, + { + "timestamp": "2025-08-16T20:53:18.239581", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.029018878936768, + "points_saved": 30, + "points_rate": 2.991319526081146, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03619508743286133, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:53:28.269430", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.029849529266357, + "points_saved": 30, + "points_rate": 2.991071791502178, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04249527454376221, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:53:38.299417", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.029986381530762, + "points_saved": 29, + "points_rate": 2.891329947705678, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0926489336737271, + "csv_write_time_avg": 3.983234537058863e-05 + } + }, + { + "timestamp": "2025-08-16T20:53:48.367885", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.068468809127808, + "points_saved": 30, + "points_rate": 2.979599040203888, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12407302061716716, + "csv_write_time_avg": 3.333091735839844e-05 + } + }, + { + "timestamp": "2025-08-16T20:53:58.435476", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.067591190338135, + "points_saved": 30, + "points_rate": 2.979858779803355, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10508711338043213, + "csv_write_time_avg": 8.042653401692709e-06 + } + }, + { + "timestamp": "2025-08-16T20:54:08.502790", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.06731390953064, + "points_saved": 29, + "points_rate": 2.880609491330746, + "variables_saved": 58, + "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.10635380909360688, + "csv_write_time_avg": 1.763475352320178e-05 + } + }, + { + "timestamp": "2025-08-16T20:54:18.572110", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.069319248199463, + "points_saved": 30, + "points_rate": 2.9793473878946113, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10327016512552897, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:54:28.629747", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.057636737823486, + "points_saved": 30, + "points_rate": 2.9828080673444686, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12453580697377523, + "csv_write_time_avg": 1.560052235921224e-05 + } + }, + { + "timestamp": "2025-08-16T20:54:38.691410", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.061663150787354, + "points_saved": 29, + "points_rate": 2.882227278472413, + "variables_saved": 58, + "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.10200872914544468, + "csv_write_time_avg": 6.577064251077586e-06 + } + }, + { + "timestamp": "2025-08-16T20:54:48.737084", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.045673847198486, + "points_saved": 30, + "points_rate": 2.9863601443089185, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.09784417152404785, + "csv_write_time_avg": 3.925959269205729e-06 + } + }, + { + "timestamp": "2025-08-16T20:54:58.803638", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.066554546356201, + "points_saved": 30, + "points_rate": 2.9801656427579903, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10332967440287272, + "csv_write_time_avg": 1.0402997334798177e-05 + } + }, + { + "timestamp": "2025-08-16T20:55:08.839512", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.035874128341675, + "points_saved": 29, + "points_rate": 2.889633691010825, + "variables_saved": 58, + "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.12217319422754748, + "csv_write_time_avg": 9.964252340382544e-06 + } + }, + { + "timestamp": "2025-08-16T20:55:18.916829", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.077316284179688, + "points_saved": 30, + "points_rate": 2.976983073072421, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.1005561351776123, + "csv_write_time_avg": 1.1928876241048177e-05 + } + }, + { + "timestamp": "2025-08-16T20:55:28.990525", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.073697090148926, + "points_saved": 30, + "points_rate": 2.9780526187686363, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.09561003049214681, + "csv_write_time_avg": 8.638699849446615e-06 + } + }, + { + "timestamp": "2025-08-16T20:55:39.039654", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.04912781715393, + "points_saved": 30, + "points_rate": 2.985333707149171, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.08838914235432943, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:55:49.069618", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.029964208602905, + "points_saved": 29, + "points_rate": 2.891336339478271, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.07885145318919215, + "csv_write_time_avg": 0.0016091856463202115 + } + }, + { + "timestamp": "2025-08-16T20:55:59.147965", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 6.4% CPU", + "details": { + "duration": 10.077841520309448, + "points_saved": 30, + "points_rate": 2.9768279189092492, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 6.4, + "cpu_max": 6.4, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11337864398956299, + "csv_write_time_avg": 2.3174285888671876e-05 + } + }, + { + "timestamp": "2025-08-16T20:56:09.210652", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.063193082809448, + "points_saved": 30, + "points_rate": 2.981161123823392, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.04431777795155843, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:56:19.294312", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.052111625671387, + "points_saved": 30, + "points_rate": 2.98444755859904, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.09065058231353759, + "csv_write_time_avg": 0.0016658624013264974 + } + }, + { + "timestamp": "2025-08-16T20:56:29.797915", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 9.9% CPU", + "details": { + "duration": 10.535151481628418, + "points_saved": 30, + "points_rate": 2.8476097427089773, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 9.9, + "cpu_max": 9.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12518953482309977, + "csv_write_time_avg": 0.004193854331970215 + } + }, + { + "timestamp": "2025-08-16T20:56:39.838487", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 13.1% CPU", + "details": { + "duration": 10.040572166442871, + "points_saved": 30, + "points_rate": 2.9878775335398307, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 13.1, + "cpu_max": 13.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.12054553826649984, + "csv_write_time_avg": 1.8366177876790364e-05 + } + }, + { + "timestamp": "2025-08-16T20:56:49.882115", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 29 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.043627977371216, + "points_saved": 29, + "points_rate": 2.8874028453999308, + "variables_saved": 58, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.11612901194342251, + "csv_write_time_avg": 0.003242648881057213 + } + }, + { + "timestamp": "2025-08-16T20:56:59.947305", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 8.5% CPU", + "details": { + "duration": 10.065189599990845, + "points_saved": 30, + "points_rate": 2.980569784798419, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 8.5, + "cpu_max": 8.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10867322285970052, + "csv_write_time_avg": 0.0032126824061075848 + } + }, + { + "timestamp": "2025-08-16T20:57:10.008862", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 7.8% CPU", + "details": { + "duration": 10.061557292938232, + "points_saved": 30, + "points_rate": 2.9816457956320233, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 7.8, + "cpu_max": 7.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.10728957653045654, + "csv_write_time_avg": 1.6490618387858074e-05 + } + }, + { + "timestamp": "2025-08-16T20:57:20.073326", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.063961029052734, + "points_saved": 30, + "points_rate": 2.9809336416740613, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03861977259318034, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:57:30.104922", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.032098770141602, + "points_saved": 30, + "points_rate": 2.990401179989235, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.038195260365804035, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:57:40.134523", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.029601335525513, + "points_saved": 30, + "points_rate": 2.991145808930412, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03722910881042481, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:57:50.164879", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.03035569190979, + "points_saved": 30, + "points_rate": 2.9909208528065636, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.039890654881795246, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-16T20:58:00.198061", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 30 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.033182382583618, + "points_saved": 30, + "points_rate": 2.990078208094407, + "variables_saved": 60, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.048909878730773924, + "csv_write_time_avg": 3.5127003987630206e-06 + } } ], - "last_updated": "2025-08-16T20:36:46.303292", + "last_updated": "2025-08-16T20:58:00.198061", "total_entries": 1000 } \ No newline at end of file diff --git a/frontend/src/components/ChartjsHistoricalPlot.jsx b/frontend/src/components/ChartjsHistoricalPlot.jsx index 10b165d..e9832f1 100644 --- a/frontend/src/components/ChartjsHistoricalPlot.jsx +++ b/frontend/src/components/ChartjsHistoricalPlot.jsx @@ -54,6 +54,9 @@ const ChartjsHistoricalPlot = ({ isPanEnabled: true }); + // NEW: Track dataset visibility state + const datasetVisibilityRef = useRef(new Map()); + const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(null); const [dataPointsCount, setDataPointsCount] = useState(0); @@ -64,6 +67,60 @@ const ChartjsHistoricalPlot = ({ const textColor = useColorModeValue('gray.600', 'gray.300'); const borderColor = useColorModeValue('gray.200', 'gray.600'); + // Helper function to save current dataset visibility state + const saveDatasetVisibility = useCallback(() => { + if (chartRef.current && chartRef.current.data.datasets) { + const visibilityMap = new Map(); + chartRef.current.data.datasets.forEach((dataset, index) => { + const variableName = dataset.label; + // Use getDatasetMeta to get the actual visibility state that Chart.js uses + const meta = chartRef.current.getDatasetMeta(index); + const isHidden = meta.hidden === true; + visibilityMap.set(variableName, isHidden); + console.log(`📊 Saving visibility for ${variableName}: hidden=${isHidden}`); + }); + datasetVisibilityRef.current = visibilityMap; + } + }, []); + + // Helper function to restore dataset visibility state + const restoreDatasetVisibility = useCallback((datasets) => { + const visibilityMap = datasetVisibilityRef.current; + if (visibilityMap.size === 0) { + return datasets; // No previous state to restore + } + + datasets.forEach((dataset) => { + const variableName = dataset.label; + if (visibilityMap.has(variableName)) { + dataset.hidden = visibilityMap.get(variableName); + console.log(`📊 Restoring visibility for ${variableName}: hidden=${dataset.hidden}`); + } + }); + + return datasets; + }, []); + + // Helper function to apply visibility state to chart meta (after chart is created/updated) + const applyVisibilityToMeta = useCallback(() => { + if (!chartRef.current) return; + + const visibilityMap = datasetVisibilityRef.current; + if (visibilityMap.size === 0) return; + + chartRef.current.data.datasets.forEach((dataset, index) => { + const variableName = dataset.label; + if (visibilityMap.has(variableName)) { + const shouldBeHidden = visibilityMap.get(variableName); + const meta = chartRef.current.getDatasetMeta(index); + if (meta.hidden !== shouldBeHidden) { + meta.hidden = shouldBeHidden; + console.log(`📊 Applied meta visibility for ${variableName}: hidden=${shouldBeHidden}`); + } + } + }); + }, []); + // Check dependencies on mount useEffect(() => { if (!checkChartDependencies()) { @@ -154,6 +211,12 @@ const ChartjsHistoricalPlot = ({ } try { + // SAVE visibility state FIRST, before any processing - this is the critical fix + if (chartRef.current) { + console.log('📊 Saving visibility state BEFORE data processing...'); + saveDatasetVisibility(); + } + console.log(`📊 createOrUpdateChart called - Chart exists? ${!!chartRef.current}`); console.log(`📊 Processing ${historicalData.length} historical data points for variables:`, session?.variables); @@ -195,6 +258,9 @@ const ChartjsHistoricalPlot = ({ // UPDATE existing chart data (faster, preserves zoom/pan) console.log(`📊 Updating existing chart with ${processedData.datasets.length} datasets`); + // RESTORE VISIBILITY STATE when updating datasets + restoreDatasetVisibility(processedData.datasets); + chartRef.current.data.datasets = processedData.datasets; // Update time range for axis if we have time range data @@ -213,11 +279,17 @@ const ChartjsHistoricalPlot = ({ // Update without animation for better performance chartRef.current.update('none'); - console.log(`📊 Chart data updated (preserving zoom/pan state)`); + // Apply visibility state to chart meta AFTER update + applyVisibilityToMeta(); + + console.log(`📊 Chart data updated (preserving zoom/pan state and dataset visibility)`); } else { // CREATE new chart (first time only) console.log(`📊 Creating new chart with ${processedData.datasets.length} datasets`); + // If we have previous visibility state, apply it to the new datasets + restoreDatasetVisibility(processedData.datasets); + // Create chart configuration const chartConfig = createChartConfig(processedData, config, isZoomEnabled); @@ -237,6 +309,9 @@ const ChartjsHistoricalPlot = ({ setupZoomPanEvents(chartRef.current); } + // Apply visibility state to chart meta AFTER chart creation + applyVisibilityToMeta(); + console.log(`📊 Historical chart created for session ${sessionDataRef.current.sessionId} with ${processedData.datasets.length} datasets`); } @@ -369,7 +444,27 @@ const ChartjsHistoricalPlot = ({ }, legend: { display: true, - position: 'top' + position: 'top', + onClick: function(event, legendItem, legend) { + // Get the dataset index from the legend item + const datasetIndex = legendItem.datasetIndex; + const chart = legend.chart; + const dataset = chart.data.datasets[datasetIndex]; + const meta = chart.getDatasetMeta(datasetIndex); + + // Get the CURRENT visibility state from meta (this is what Chart.js actually uses) + const currentlyHidden = meta.hidden; + const willBeHidden = !currentlyHidden; // After click it will be toggled + + console.log(`📊 Legend clicked for dataset: ${dataset.label}, currently hidden: ${currentlyHidden}, will be hidden: ${willBeHidden}`); + + // Call the default legend click behavior to toggle visibility + Chart.defaults.plugins.legend.onClick.call(this, event, legendItem, legend); + + // Update our visibility map with the NEW state (after toggle) + datasetVisibilityRef.current.set(dataset.label, willBeHidden); + console.log(`📊 Saved visibility state for ${dataset.label}: hidden=${willBeHidden}`); + } }, tooltip: { callbacks: { diff --git a/system_state.json b/system_state.json index cbe2e12..4aef15b 100644 --- a/system_state.json +++ b/system_state.json @@ -3,12 +3,12 @@ "should_connect": true, "should_stream": false, "active_datasets": [ - "Test", "Fast", + "Test", "DAR" ] }, "auto_recovery_enabled": true, - "last_update": "2025-08-16T20:26:17.367139", + "last_update": "2025-08-16T20:49:44.679756", "plotjuggler_path": "C:\\Program Files\\PlotJuggler\\plotjuggler.exe" } \ No newline at end of file