diff --git a/.tests/test_db1001_specific_values.py b/.tests/test_db1001_specific_values.py index b720940..98ebaa6 100644 --- a/.tests/test_db1001_specific_values.py +++ b/.tests/test_db1001_specific_values.py @@ -38,7 +38,7 @@ project_root = Path(__file__).parent sys.path.insert(0, str(project_root)) import snap7 -from snap7.types import S7DataItem +from snap7.type import S7DataItem from utils.json_manager import JSONManager import struct import ctypes diff --git a/.tests/test_simple_data_integrity.py b/.tests/test_simple_data_integrity.py index ed5614c..afb6eba 100644 --- a/.tests/test_simple_data_integrity.py +++ b/.tests/test_simple_data_integrity.py @@ -19,18 +19,19 @@ project_root = Path(__file__).parent sys.path.insert(0, str(project_root)) import snap7 -from snap7.types import S7DataItem +from snap7.type import S7DataItem from utils.json_manager import JSONManager from utils.optimized_batch_reader import OptimizedBatchReader import struct import ctypes + class SimpleDataIntegrityVerifier: """ Sistema simplificado de verificación de integridad de datos. Compara directamente métodos optimizado vs individual. """ - + def __init__(self): self.json_manager = JSONManager() self.plc = None @@ -38,46 +39,46 @@ class SimpleDataIntegrityVerifier: "test_info": { "start_time": datetime.now().isoformat(), "plc_ip": None, - "total_variables": 0 + "total_variables": 0, }, - "results": {} + "results": {}, } - + def connect_plc(self) -> bool: """Conectar al PLC.""" try: print("🔌 Conectando al PLC...") - + # Cargar configuración config_data = self.json_manager.read_json("plc") plc_config = config_data.get("plc_config", {}) - + ip = plc_config.get("ip") rack = plc_config.get("rack", 0) slot = plc_config.get("slot", 2) - + self.test_results["test_info"]["plc_ip"] = ip - + # Conectar self.plc = snap7.client.Client() self.plc.connect(ip, rack, slot) - + print(f"✅ Conectado a PLC: {ip}:{rack}.{slot}") return True - + except Exception as e: print(f"❌ Error conectando PLC: {e}") return False - + def generate_test_variables(self) -> Dict[str, Dict[str, Any]]: """Generar conjunto comprehensivo de variables de test.""" variables = {} - + print("🔧 Generando variables de test...") - + # 1. DB1011 Variables - diferentes tipos print(" 📊 Variables DB1011...") - + # REALs for i in range(10): offset = i * 4 @@ -86,9 +87,9 @@ class SimpleDataIntegrityVerifier: "area": "db", "db": 1011, "offset": offset, - "type": "real" + "type": "real", } - + # INTs for i in range(5): offset = 100 + (i * 2) @@ -97,9 +98,9 @@ class SimpleDataIntegrityVerifier: "area": "db", "db": 1011, "offset": offset, - "type": "int" + "type": "int", } - + # BOOLs for byte_offset in range(50, 53): for bit in range(0, 4): @@ -109,45 +110,33 @@ class SimpleDataIntegrityVerifier: "db": 1011, "offset": byte_offset, "type": "bool", - "bit": bit + "bit": bit, } - + # 2. Memory Variables print(" 🧠 Variables Memory...") - + # Memory REALs for i in range(5): offset = 100 + (i * 4) var_name = f"M{offset}_real" - variables[var_name] = { - "area": "m", - "offset": offset, - "type": "real" - } - + variables[var_name] = {"area": "m", "offset": offset, "type": "real"} + # Memory INTs for i in range(3): offset = 200 + (i * 2) var_name = f"M{offset}_int" - variables[var_name] = { - "area": "m", - "offset": offset, - "type": "int" - } - + variables[var_name] = {"area": "m", "offset": offset, "type": "int"} + # 3. Input Variables print(" 📥 Variables Input...") - + # Input Words for i in range(3): offset = 300 + (i * 2) var_name = f"PEW{offset}" - variables[var_name] = { - "area": "e", - "offset": offset, - "type": "int" - } - + variables[var_name] = {"area": "e", "offset": offset, "type": "int"} + # Input Bits for byte_offset in range(0, 2): for bit in range(0, 4): @@ -156,26 +145,28 @@ class SimpleDataIntegrityVerifier: "area": "e", "offset": byte_offset, "type": "bool", - "bit": bit + "bit": bit, } - + self.test_results["test_info"]["total_variables"] = len(variables) print(f"✅ Generadas {len(variables)} variables de test") - + return variables - - def read_with_individual_method(self, variables: Dict[str, Dict[str, Any]]) -> Dict[str, Any]: + + def read_with_individual_method( + self, variables: Dict[str, Dict[str, Any]] + ) -> Dict[str, Any]: """Leer variables usando método individual (legacy).""" print("📖 Leyendo con método INDIVIDUAL...") - + results = {} - + for var_name, config in variables.items(): try: area = config.get("area", "db").lower() offset = config.get("offset", 0) var_type = config.get("type", "real").lower() - + if area == "db": db = config.get("db", 0) if var_type == "real": @@ -218,37 +209,39 @@ class SimpleDataIntegrityVerifier: value = None else: value = None - + results[var_name] = value - + # Pequeña pausa entre lecturas individuales time.sleep(0.001) - + except Exception as e: print(f" ❌ Error leyendo {var_name}: {e}") results[var_name] = None - + successful = len([v for v in results.values() if v is not None]) print(f" ✅ {successful}/{len(variables)} variables leídas exitosamente") - + return results - - def read_with_optimized_method(self, variables: Dict[str, Dict[str, Any]]) -> Dict[str, Any]: + + def read_with_optimized_method( + self, variables: Dict[str, Dict[str, Any]] + ) -> Dict[str, Any]: """Leer variables usando método optimizado (read_multi_vars) con chunking.""" print("🚀 Leyendo con método OPTIMIZADO...") - + results = {} CHUNK_SIZE = 19 # Límite seguro para S7 (detectamos que el límite es 20) - + try: # Preparar S7DataItems all_items = [] all_var_map = [] - + for var_name, config in variables.items(): try: item = S7DataItem() - + # Configurar área area = config.get("area", "db").lower() if area == "db": @@ -259,7 +252,7 @@ class SimpleDataIntegrityVerifier: item.Area = 129 else: continue - + # Configurar tipo var_type = config.get("type", "real").lower() if var_type == "real": @@ -273,56 +266,60 @@ class SimpleDataIntegrityVerifier: buffer_size = 1 else: continue - + item.DBNumber = config.get("db", 0) item.Start = config.get("offset", 0) item.Amount = 1 - + # Para BOOLs, ajustar offset if var_type == "bool" and "bit" in config: bit = config["bit"] item.Start = (item.Start * 8) + bit - + # Allocar buffer buffer = (ctypes.c_ubyte * buffer_size)() item.pData = ctypes.cast(buffer, ctypes.POINTER(ctypes.c_ubyte)) - + all_items.append(item) all_var_map.append({"name": var_name, "config": config}) - + except Exception as e: print(f" ❌ Error preparando {var_name}: {e}") results[var_name] = None - + if not all_items: return results - - print(f" 📊 Procesando {len(all_items)} variables en chunks de {CHUNK_SIZE}") - + + print( + f" 📊 Procesando {len(all_items)} variables en chunks de {CHUNK_SIZE}" + ) + # Procesar en chunks for chunk_start in range(0, len(all_items), CHUNK_SIZE): chunk_end = min(chunk_start + CHUNK_SIZE, len(all_items)) - + chunk_items = all_items[chunk_start:chunk_end] chunk_var_map = all_var_map[chunk_start:chunk_end] - - print(f" 🔄 Procesando chunk {chunk_start//CHUNK_SIZE + 1}: variables {chunk_start+1}-{chunk_end}") - + + print( + f" 🔄 Procesando chunk {chunk_start//CHUNK_SIZE + 1}: variables {chunk_start+1}-{chunk_end}" + ) + # Convertir chunk a ctypes array items_array = (S7DataItem * len(chunk_items))(*chunk_items) - + # Llamar read_multi_vars para este chunk result = self.plc.read_multi_vars(items_array) - + if isinstance(result, tuple) and len(result) == 2: ret_code, returned_items = result - + if ret_code == 0: for i, item in enumerate(returned_items): var_name = chunk_var_map[i]["name"] config = chunk_var_map[i]["config"] var_type = config.get("type", "real").lower() - + if item.Result == 0: try: if var_type == "real": @@ -333,58 +330,67 @@ class SimpleDataIntegrityVerifier: value = snap7.util.get_bool(item.pData, 0, 0) else: value = None - + results[var_name] = value except Exception as e: print(f" ❌ Error extrayendo {var_name}: {e}") results[var_name] = None else: - print(f" ❌ Error leyendo {var_name}: código {item.Result}") + print( + f" ❌ Error leyendo {var_name}: código {item.Result}" + ) results[var_name] = None else: print(f" ❌ Chunk falló: código {ret_code}") for var_info in chunk_var_map: results[var_info["name"]] = None else: - print(f" ❌ Formato de resultado inesperado para chunk: {type(result)}") + print( + f" ❌ Formato de resultado inesperado para chunk: {type(result)}" + ) for var_info in chunk_var_map: results[var_info["name"]] = None - + # Pequeña pausa entre chunks time.sleep(0.01) - + except Exception as e: print(f" ❌ Error en método optimizado: {e}") import traceback + traceback.print_exc() for var_name in variables.keys(): if var_name not in results: results[var_name] = None - + successful = len([v for v in results.values() if v is not None]) print(f" ✅ {successful}/{len(variables)} variables leídas exitosamente") - + return results - - def compare_results(self, individual_results: Dict[str, Any], - optimized_results: Dict[str, Any], pass_name: str) -> Dict[str, Any]: + + def compare_results( + self, + individual_results: Dict[str, Any], + optimized_results: Dict[str, Any], + pass_name: str, + ) -> Dict[str, Any]: """Comparar resultados entre métodos.""" print(f"🔍 Comparando resultados - {pass_name}...") - + comparison = { "identical": [], "different": [], "individual_errors": [], "optimized_errors": [], - "both_errors": [] + "both_errors": [], } - + total_vars = len(individual_results) - + for var_name in individual_results.keys(): individual_val = individual_results.get(var_name) optimized_val = optimized_results.get(var_name) - + if individual_val is None and optimized_val is None: comparison["both_errors"].append(var_name) elif individual_val is None: @@ -396,126 +402,136 @@ class SimpleDataIntegrityVerifier: if self._values_equal(individual_val, optimized_val): comparison["identical"].append(var_name) else: - comparison["different"].append({ - "variable": var_name, - "individual": individual_val, - "optimized": optimized_val - }) - + comparison["different"].append( + { + "variable": var_name, + "individual": individual_val, + "optimized": optimized_val, + } + ) + # Estadísticas identical_count = len(comparison["identical"]) different_count = len(comparison["different"]) - + print(f" 📊 Resultados {pass_name}:") - print(f" ✅ Idénticas: {identical_count}/{total_vars} ({identical_count/total_vars*100:.1f}%)") + print( + f" ✅ Idénticas: {identical_count}/{total_vars} ({identical_count/total_vars*100:.1f}%)" + ) print(f" ❌ Diferentes: {different_count}/{total_vars}") print(f" ⚠️ Errores individual: {len(comparison['individual_errors'])}") print(f" ⚠️ Errores optimizado: {len(comparison['optimized_errors'])}") print(f" ⚠️ Errores ambos: {len(comparison['both_errors'])}") - + return comparison - + def _values_equal(self, val1: Any, val2: Any, tolerance: float = 1e-6) -> bool: """Comparar valores con tolerancia para floats.""" if type(val1) != type(val2): return False - + if isinstance(val1, float): return abs(val1 - val2) <= tolerance else: return val1 == val2 - + def run_verification(self) -> bool: """Ejecutar verificación de integridad.""" print("🔍 === VERIFICACIÓN DE INTEGRIDAD DE DATOS ===") print("Sistema de doble pasada para validación de consistencia") print("=" * 60) - + try: # 1. Conectar PLC if not self.connect_plc(): return False - + # 2. Generar variables variables = self.generate_test_variables() - + # 3. PASADA 1 print(f"\n🔄 PASADA 1") print("-" * 20) - + time.sleep(0.5) individual_1 = self.read_with_individual_method(variables) - + time.sleep(0.2) optimized_1 = self.read_with_optimized_method(variables) - + comparison_1 = self.compare_results(individual_1, optimized_1, "Pasada 1") - + # 4. PASADA 2 print(f"\n🔄 PASADA 2") print("-" * 20) - + time.sleep(0.5) individual_2 = self.read_with_individual_method(variables) - + time.sleep(0.2) optimized_2 = self.read_with_optimized_method(variables) - + comparison_2 = self.compare_results(individual_2, optimized_2, "Pasada 2") - + # 5. Análisis final print(f"\n🔬 ANÁLISIS FINAL") print("-" * 20) - + identical_1 = set(comparison_1["identical"]) identical_2 = set(comparison_2["identical"]) consistently_identical = identical_1.intersection(identical_2) - + total_vars = len(variables) success_rate = len(consistently_identical) / total_vars * 100 - + print(f"📊 Resultados Finales:") - print(f" ✅ Variables consistentemente idénticas: {len(consistently_identical)}/{total_vars} ({success_rate:.1f}%)") - print(f" 🔄 Variables que cambiaron entre pasadas: {len(identical_1.symmetric_difference(identical_2))}") - + print( + f" ✅ Variables consistentemente idénticas: {len(consistently_identical)}/{total_vars} ({success_rate:.1f}%)" + ) + print( + f" 🔄 Variables que cambiaron entre pasadas: {len(identical_1.symmetric_difference(identical_2))}" + ) + # Mostrar variables diferentes si las hay if comparison_1["different"] or comparison_2["different"]: print(f"\n❌ Variables con diferencias detectadas:") for diff in comparison_1["different"]: - print(f" {diff['variable']}: Individual={diff['individual']}, Optimizado={diff['optimized']}") - + print( + f" {diff['variable']}: Individual={diff['individual']}, Optimizado={diff['optimized']}" + ) + # 6. Guardar resultado timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") filename = f"data_integrity_simple_{timestamp}.json" - + report = { "test_info": self.test_results["test_info"], "pass_1": { "individual": individual_1, "optimized": optimized_1, - "comparison": comparison_1 + "comparison": comparison_1, }, "pass_2": { "individual": individual_2, "optimized": optimized_2, - "comparison": comparison_2 + "comparison": comparison_2, }, "final_analysis": { "success_rate": success_rate, "consistently_identical": list(consistently_identical), - "total_variables": total_vars - } + "total_variables": total_vars, + }, } - - with open(filename, 'w', encoding='utf-8') as f: + + with open(filename, "w", encoding="utf-8") as f: json.dump(report, f, indent=2, ensure_ascii=False) - + print(f"📄 Reporte guardado: {filename}") - + # 7. Cleanup self.plc.disconnect() print("✅ PLC desconectado") - + # Resultado final if success_rate >= 95.0: print(f"\n🎉 ¡VERIFICACIÓN EXITOSA! ({success_rate:.1f}%)") @@ -523,10 +539,11 @@ class SimpleDataIntegrityVerifier: else: print(f"\n⚠️ VERIFICACIÓN CON OBSERVACIONES ({success_rate:.1f}%)") return False - + except Exception as e: print(f"❌ Error durante verificación: {e}") import traceback + traceback.print_exc() return False @@ -535,15 +552,15 @@ def main(): """Función principal.""" print("🔍 SIMPLE DATA INTEGRITY VERIFICATION") print("🚀 Iniciando verificación...") - + verifier = SimpleDataIntegrityVerifier() success = verifier.run_verification() - + if success: print("✅ ¡Sistema optimizado mantiene integridad de datos!") else: print("⚠️ Revisar reporte para detalles") - + return success diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..e69de29 diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..e69de29 diff --git a/application_events.json b/application_events.json index a3593f5..2f0774a 100644 --- a/application_events.json +++ b/application_events.json @@ -1,9067 +1,5 @@ { "events": [ - { - "timestamp": "2025-08-25T12:56:39.275586", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024317502975464, - "points_saved": 40, - "points_rate": 3.990296595067646, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02759968042373657, - "csv_write_time_avg": 5.137920379638672e-06 - } - }, - { - "timestamp": "2025-08-25T12:56:49.299878", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024291276931763, - "points_saved": 40, - "points_rate": 3.9903070346777882, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03479456901550293, - "csv_write_time_avg": 1.0728836059570312e-05 - } - }, - { - "timestamp": "2025-08-25T12:56:59.327976", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028098583221436, - "points_saved": 40, - "points_rate": 3.9887920594364923, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031082773208618165, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T12:57:09.357443", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029466390609741, - "points_saved": 40, - "points_rate": 3.988248072444879, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.034031301736831665, - "csv_write_time_avg": 1.7136335372924805e-05 - } - }, - { - "timestamp": "2025-08-25T12:57:19.386288", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028845310211182, - "points_saved": 40, - "points_rate": 3.988495062265319, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029743784666061403, - "csv_write_time_avg": 1.7648935317993165e-05 - } - }, - { - "timestamp": "2025-08-25T12:57:29.410895", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.024462223052979, - "points_saved": 40, - "points_rate": 3.990238988383148, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.034059321880340575, - "csv_write_time_avg": 1.405477523803711e-05 - } - }, - { - "timestamp": "2025-08-25T12:57:39.437781", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027031183242798, - "points_saved": 40, - "points_rate": 3.9892166753054594, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03518381714820862, - "csv_write_time_avg": 1.1229515075683594e-05 - } - }, - { - "timestamp": "2025-08-25T12:57:49.463640", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025732278823853, - "points_saved": 40, - "points_rate": 3.9897335064977932, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03982223272323608, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T12:57:59.486353", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.022839307785034, - "points_saved": 40, - "points_rate": 3.990885094698747, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.033529913425445555, - "csv_write_time_avg": 4.38690185546875e-06 - } - }, - { - "timestamp": "2025-08-25T12:58:09.510423", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024070501327515, - "points_saved": 40, - "points_rate": 3.9903949193795767, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03441189527511597, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T12:58:19.536931", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026507377624512, - "points_saved": 40, - "points_rate": 3.9894250802892075, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03709203004837036, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T12:58:29.561464", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02453327178955, - "points_saved": 40, - "points_rate": 3.990210707621235, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03833760023117065, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T12:58:39.588526", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027061700820923, - "points_saved": 40, - "points_rate": 3.9892045340386377, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.033612263202667234, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T12:58:49.612536", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.024009704589844, - "points_saved": 40, - "points_rate": 3.990419121570144, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03457499146461487, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T12:58:59.636194", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.023658752441406, - "points_saved": 40, - "points_rate": 3.9905588356404715, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03567785024642944, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T12:59:09.660516", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024321794509888, - "points_saved": 40, - "points_rate": 3.9902948867730053, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03313615918159485, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T12:59:19.685029", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024512529373169, - "points_saved": 40, - "points_rate": 3.99021896404385, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03218247890472412, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T12:59:29.710187", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025158166885376, - "points_saved": 40, - "points_rate": 3.989961987046358, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030500882863998414, - "csv_write_time_avg": 1.214742660522461e-05 - } - }, - { - "timestamp": "2025-08-25T12:59:39.738289", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02810263633728, - "points_saved": 40, - "points_rate": 3.9887904472634936, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030614411830902098, - "csv_write_time_avg": 1.0967254638671875e-05 - } - }, - { - "timestamp": "2025-08-25T12:59:49.762757", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024467706680298, - "points_saved": 40, - "points_rate": 3.9902368056255026, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029598152637481688, - "csv_write_time_avg": 2.22325325012207e-06 - } - }, - { - "timestamp": "2025-08-25T12:59:59.786955", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.024198055267334, - "points_saved": 40, - "points_rate": 3.9903441431887434, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029612165689468384, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:00:09.811664", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024708271026611, - "points_saved": 40, - "points_rate": 3.990141051346891, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028900301456451415, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:00:19.835594", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.023930788040161, - "points_saved": 40, - "points_rate": 3.990450537400472, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031039732694625854, - "csv_write_time_avg": 1.3709068298339844e-06 - } - }, - { - "timestamp": "2025-08-25T13:00:29.859792", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024197578430176, - "points_saved": 40, - "points_rate": 3.9903443330038733, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027347350120544435, - "csv_write_time_avg": 2.2828578948974608e-06 - } - }, - { - "timestamp": "2025-08-25T13:00:39.884021", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024229288101196, - "points_saved": 40, - "points_rate": 3.9903317103370903, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0278947114944458, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:00:49.908318", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02429723739624, - "points_saved": 40, - "points_rate": 3.990304662034323, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027148842811584473, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:00:59.933719", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025400876998901, - "points_saved": 40, - "points_rate": 3.98986539199358, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03203023076057434, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:01:09.960239", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026519775390625, - "points_saved": 40, - "points_rate": 3.9894201473752773, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03012676239013672, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:01:19.985226", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024986982345581, - "points_saved": 40, - "points_rate": 3.990030118786355, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.025900745391845705, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:01:30.012712", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026511430740356, - "points_saved": 40, - "points_rate": 3.9894234676044653, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028688716888427734, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:01:40.039502", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027764797210693, - "points_saved": 40, - "points_rate": 3.9889248310975876, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028957146406173705, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:01:50.066830", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.027328252792358, - "points_saved": 40, - "points_rate": 3.9890984908029723, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02965931296348572, - "csv_write_time_avg": 2.3365020751953127e-06 - } - }, - { - "timestamp": "2025-08-25T13:02:00.092630", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.024829864501953, - "points_saved": 40, - "points_rate": 3.9900926540050814, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02751281261444092, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:02:10.118369", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026708602905273, - "points_saved": 40, - "points_rate": 3.9893450168093905, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02914091944694519, - "csv_write_time_avg": 1.33514404296875e-05 - } - }, - { - "timestamp": "2025-08-25T13:02:20.143105", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024654388427734, - "points_saved": 40, - "points_rate": 3.9901624983874977, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031223171949386598, - "csv_write_time_avg": 1.0412931442260742e-05 - } - }, - { - "timestamp": "2025-08-25T13:02:30.167997", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02497410774231, - "points_saved": 40, - "points_rate": 3.9900352429945842, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029384100437164308, - "csv_write_time_avg": 1.537203788757324e-05 - } - }, - { - "timestamp": "2025-08-25T13:02:40.194798", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026800870895386, - "points_saved": 40, - "points_rate": 3.989308306312064, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02857844829559326, - "csv_write_time_avg": 7.450580596923828e-06 - } - }, - { - "timestamp": "2025-08-25T13:02:50.218905", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024107217788696, - "points_saved": 40, - "points_rate": 3.99038030329687, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027588796615600587, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:03:00.243280", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024374961853027, - "points_saved": 40, - "points_rate": 3.9902737230218204, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.026325196027755737, - "csv_write_time_avg": 7.188320159912109e-06 - } - }, - { - "timestamp": "2025-08-25T13:03:10.270456", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026121377944946, - "points_saved": 40, - "points_rate": 3.9895786707699723, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027967500686645507, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:03:20.299020", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02961802482605, - "points_saved": 40, - "points_rate": 3.988187775545295, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.026548975706100465, - "csv_write_time_avg": 3.445148468017578e-06 - } - }, - { - "timestamp": "2025-08-25T13:03:30.324664", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025644063949585, - "points_saved": 40, - "points_rate": 3.9897686118573485, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02781982421875, - "csv_write_time_avg": 2.4855136871337892e-06 - } - }, - { - "timestamp": "2025-08-25T13:03:40.351685", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026909112930298, - "points_saved": 40, - "points_rate": 3.9892652411118013, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02813042402267456, - "csv_write_time_avg": 7.790327072143554e-06 - } - }, - { - "timestamp": "2025-08-25T13:03:50.378823", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027250051498413, - "points_saved": 40, - "points_rate": 3.989129601293092, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027640193700790405, - "csv_write_time_avg": 2.54511833190918e-06 - } - }, - { - "timestamp": "2025-08-25T13:04:00.403911", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025087594985962, - "points_saved": 40, - "points_rate": 3.98999007450129, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028543633222579957, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:04:10.429718", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02580738067627, - "points_saved": 40, - "points_rate": 3.9897036199893443, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028236132860183717, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:04:20.454954", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.0252366065979, - "points_saved": 40, - "points_rate": 3.989930768683787, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.026930010318756102, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:04:30.490614", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.035658836364746, - "points_saved": 40, - "points_rate": 3.9857871468346318, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029343831539154052, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:04:40.517349", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026735544204712, - "points_saved": 40, - "points_rate": 3.9893342976537705, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.026088935136795045, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:04:50.543577", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025712966918945, - "points_saved": 40, - "points_rate": 3.9897411916723375, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027396786212921142, - "csv_write_time_avg": 9.024143218994141e-06 - } - }, - { - "timestamp": "2025-08-25T13:05:00.567932", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.0248703956604, - "points_saved": 40, - "points_rate": 3.9900765218187093, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027488279342651366, - "csv_write_time_avg": 1.7821788787841797e-05 - } - }, - { - "timestamp": "2025-08-25T13:05:10.598919", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.030986547470093, - "points_saved": 40, - "points_rate": 3.987643669015623, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0267602801322937, - "csv_write_time_avg": 1.3488531112670899e-05 - } - }, - { - "timestamp": "2025-08-25T13:05:20.624942", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025044441223145, - "points_saved": 40, - "points_rate": 3.990007249795258, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02661867141723633, - "csv_write_time_avg": 1.0818243026733398e-05 - } - }, - { - "timestamp": "2025-08-25T13:05:30.652397", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.028433561325073, - "points_saved": 40, - "points_rate": 3.9886588224766317, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02771233320236206, - "csv_write_time_avg": 1.4513731002807617e-05 - } - }, - { - "timestamp": "2025-08-25T13:05:40.678104", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025707244873047, - "points_saved": 40, - "points_rate": 3.989743468766777, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.026886147260665894, - "csv_write_time_avg": 1.4942884445190429e-05 - } - }, - { - "timestamp": "2025-08-25T13:05:50.706750", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028555631637573, - "points_saved": 40, - "points_rate": 3.988610271434308, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027034324407577515, - "csv_write_time_avg": 5.906820297241211e-06 - } - }, - { - "timestamp": "2025-08-25T13:06:00.731128", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024374008178711, - "points_saved": 40, - "points_rate": 3.9902741026386987, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02711039185523987, - "csv_write_time_avg": 1.6474723815917967e-05 - } - }, - { - "timestamp": "2025-08-25T13:06:10.756291", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025257349014282, - "points_saved": 40, - "points_rate": 3.9899225134537755, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02662447690963745, - "csv_write_time_avg": 1.6748905181884766e-05 - } - }, - { - "timestamp": "2025-08-25T13:06:20.782134", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025842666625977, - "points_saved": 40, - "points_rate": 3.98968957822887, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02847936749458313, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:06:30.808389", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026255130767822, - "points_saved": 40, - "points_rate": 3.9895254487641143, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028397655487060545, - "csv_write_time_avg": 1.7213821411132813e-05 - } - }, - { - "timestamp": "2025-08-25T13:06:40.833733", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025344371795654, - "points_saved": 40, - "points_rate": 3.989887879815099, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027933883666992187, - "csv_write_time_avg": 5.769729614257812e-06 - } - }, - { - "timestamp": "2025-08-25T13:06:50.859488", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025754690170288, - "points_saved": 40, - "points_rate": 3.9897245879372893, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0284526526927948, - "csv_write_time_avg": 5.072355270385742e-06 - } - }, - { - "timestamp": "2025-08-25T13:07:00.885258", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.02577018737793, - "points_saved": 40, - "points_rate": 3.989718420870898, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029016852378845215, - "csv_write_time_avg": 1.806020736694336e-06 - } - }, - { - "timestamp": "2025-08-25T13:07:10.911813", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026554346084595, - "points_saved": 40, - "points_rate": 3.9894063921989456, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028927409648895265, - "csv_write_time_avg": 2.777576446533203e-06 - } - }, - { - "timestamp": "2025-08-25T13:07:20.937593", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.02578091621399, - "points_saved": 40, - "points_rate": 3.9897141513745646, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02955195903778076, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:07:30.961519", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.023925065994263, - "points_saved": 40, - "points_rate": 3.9904528153046845, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029320037364959715, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:07:40.986576", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025057315826416, - "points_saved": 40, - "points_rate": 3.990002125658929, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028709083795547485, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:07:51.011773", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02519679069519, - "points_saved": 40, - "points_rate": 3.9899466150256218, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029056376218795775, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:08:01.037920", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026147603988647, - "points_saved": 40, - "points_rate": 3.9895682349706303, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02827322483062744, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:08:11.062669", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024749040603638, - "points_saved": 40, - "points_rate": 3.9901248238720406, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028116285800933838, - "csv_write_time_avg": 2.9265880584716798e-06 - } - }, - { - "timestamp": "2025-08-25T13:08:21.088473", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025803565979004, - "points_saved": 40, - "points_rate": 3.989705138023424, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028060686588287354, - "csv_write_time_avg": 4.488229751586914e-06 - } - }, - { - "timestamp": "2025-08-25T13:08:31.112712", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02423906326294, - "points_saved": 40, - "points_rate": 3.990327819155163, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027006059885025024, - "csv_write_time_avg": 2.2846460342407227e-05 - } - }, - { - "timestamp": "2025-08-25T13:08:41.139297", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026585102081299, - "points_saved": 40, - "points_rate": 3.9893941549149052, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028690862655639648, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:08:51.165971", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026674270629883, - "points_saved": 40, - "points_rate": 3.9893586767017983, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028262126445770263, - "csv_write_time_avg": 5.167722702026367e-06 - } - }, - { - "timestamp": "2025-08-25T13:09:01.190728", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02475619316101, - "points_saved": 40, - "points_rate": 3.990121976960238, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02859688997268677, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:09:11.218736", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028008937835693, - "points_saved": 40, - "points_rate": 3.988827717243045, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027675211429595947, - "csv_write_time_avg": 1.3530254364013671e-06 - } - }, - { - "timestamp": "2025-08-25T13:09:21.244011", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025274515151978, - "points_saved": 40, - "points_rate": 3.989915681565117, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027913939952850342, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:09:31.268372", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.02436113357544, - "points_saved": 40, - "points_rate": 3.9902792274736214, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02821305990219116, - "csv_write_time_avg": 7.18235969543457e-06 - } - }, - { - "timestamp": "2025-08-25T13:09:41.294021", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025648593902588, - "points_saved": 40, - "points_rate": 3.989766809134648, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030151951313018798, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:09:51.318834", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.024813652038574, - "points_saved": 40, - "points_rate": 3.9900991069161558, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028619158267974853, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:10:01.344857", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026022911071777, - "points_saved": 40, - "points_rate": 3.989617852940256, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029345440864562988, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:10:11.372510", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027652740478516, - "points_saved": 40, - "points_rate": 3.9889694064227452, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028062093257904052, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:10:21.399025", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026515007019043, - "points_saved": 40, - "points_rate": 3.989422044648422, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02939146161079407, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:10:31.424641", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02561616897583, - "points_saved": 40, - "points_rate": 3.9897797128698786, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027816158533096314, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:10:41.450089", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025447845458984, - "points_saved": 40, - "points_rate": 3.9898466997779014, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030446767807006836, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:10:51.475900", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025811433792114, - "points_saved": 40, - "points_rate": 3.9897020070794005, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028886884450912476, - "csv_write_time_avg": 1.531839370727539e-06 - } - }, - { - "timestamp": "2025-08-25T13:11:01.504895", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.02899432182312, - "points_saved": 40, - "points_rate": 3.9884358008818377, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02792678475379944, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:11:11.529723", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.0248281955719, - "points_saved": 40, - "points_rate": 3.9900933182743756, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027146577835083008, - "csv_write_time_avg": 2.5212764739990233e-06 - } - }, - { - "timestamp": "2025-08-25T13:11:21.555017", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025166511535645, - "points_saved": 40, - "points_rate": 3.989958665920736, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029243946075439453, - "csv_write_time_avg": 1.8978118896484374e-05 - } - }, - { - "timestamp": "2025-08-25T13:11:31.580530", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025640726089478, - "points_saved": 40, - "points_rate": 3.9897699401803806, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028018510341644286, - "csv_write_time_avg": 2.2655725479125978e-05 - } - }, - { - "timestamp": "2025-08-25T13:11:41.606759", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026228427886963, - "points_saved": 40, - "points_rate": 3.9895360740778614, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02914227843284607, - "csv_write_time_avg": 2.5987625122070313e-06 - } - }, - { - "timestamp": "2025-08-25T13:11:51.631906", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025147438049316, - "points_saved": 40, - "points_rate": 3.989966257073139, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02825446128845215, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:12:01.657681", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025774955749512, - "points_saved": 40, - "points_rate": 3.989716523315844, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02977135181427002, - "csv_write_time_avg": 1.290440559387207e-05 - } - }, - { - "timestamp": "2025-08-25T13:12:11.683262", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025580644607544, - "points_saved": 40, - "points_rate": 3.9897938501462047, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.026884937286376955, - "csv_write_time_avg": 1.913309097290039e-05 - } - }, - { - "timestamp": "2025-08-25T13:12:21.710970", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027708768844604, - "points_saved": 40, - "points_rate": 3.9889471186356373, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030802989006042482, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:12:31.740307", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.029336929321289, - "points_saved": 41, - "points_rate": 4.088007042632536, - "variables_saved": 123, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02850969244794148, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:12:41.765735", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 39 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02542781829834, - "points_saved": 39, - "points_rate": 3.890108303290307, - "variables_saved": 117, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028657570863381412, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:12:51.791352", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025516510009766, - "points_saved": 41, - "points_rate": 4.089564857737196, - "variables_saved": 123, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02819952732179223, - "csv_write_time_avg": 1.3037425715748856e-05 - } - }, - { - "timestamp": "2025-08-25T13:13:01.816272", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025020360946655, - "points_saved": 40, - "points_rate": 3.990016833863351, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028816258907318114, - "csv_write_time_avg": 2.397894859313965e-05 - } - }, - { - "timestamp": "2025-08-25T13:13:11.841991", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025718688964844, - "points_saved": 40, - "points_rate": 3.989738914580497, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02973046898841858, - "csv_write_time_avg": 8.45789909362793e-06 - } - }, - { - "timestamp": "2025-08-25T13:13:21.867647", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025655746459961, - "points_saved": 40, - "points_rate": 3.9897639627337016, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029222548007965088, - "csv_write_time_avg": 5.728006362915039e-06 - } - }, - { - "timestamp": "2025-08-25T13:13:31.894446", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.02679967880249, - "points_saved": 40, - "points_rate": 3.989308780603587, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02901836633682251, - "csv_write_time_avg": 1.1104345321655274e-05 - } - }, - { - "timestamp": "2025-08-25T13:13:41.922270", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02782416343689, - "points_saved": 40, - "points_rate": 3.9889012160630655, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02945091724395752, - "csv_write_time_avg": 8.279085159301758e-06 - } - }, - { - "timestamp": "2025-08-25T13:13:51.949063", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026793241500854, - "points_saved": 41, - "points_rate": 4.0890441253242535, - "variables_saved": 123, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02808553416554521, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:14:01.976282", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02721881866455, - "points_saved": 40, - "points_rate": 3.989142026654934, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028803932666778564, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:14:12.002164", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 39 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025881290435791, - "points_saved": 39, - "points_rate": 3.8899323530993857, - "variables_saved": 117, - "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.03208387203705616, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:14:22.026767", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.024603605270386, - "points_saved": 41, - "points_rate": 4.089937279758818, - "variables_saved": 123, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02863176276044148, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:14:32.051353", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.024586200714111, - "points_saved": 40, - "points_rate": 3.9901896396631873, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02638845443725586, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:14:42.077446", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026092767715454, - "points_saved": 40, - "points_rate": 3.9895900553406114, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028278273344039918, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:14:52.104098", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026652097702026, - "points_saved": 40, - "points_rate": 3.9893674987653616, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027522671222686767, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:15:02.129765", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.024669885635376, - "points_saved": 40, - "points_rate": 3.9901563299672436, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029466569423675537, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:15:12.161816", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.033047914505005, - "points_saved": 40, - "points_rate": 3.9868243768846248, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027992796897888184, - "csv_write_time_avg": 2.421736717224121e-05 - } - }, - { - "timestamp": "2025-08-25T13:15:22.188014", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02619743347168, - "points_saved": 40, - "points_rate": 3.9895484071022893, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027422761917114256, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:15:32.215462", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.027448415756226, - "points_saved": 40, - "points_rate": 3.989050687824793, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027330833673477172, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:15:42.242262", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026800155639648, - "points_saved": 40, - "points_rate": 3.989308590886964, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029438608884811403, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:15:52.268431", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.026168584823608, - "points_saved": 40, - "points_rate": 3.989559886370465, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028185999393463133, - "csv_write_time_avg": 1.2636184692382812e-06 - } - }, - { - "timestamp": "2025-08-25T13:16:02.294797", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026366233825684, - "points_saved": 40, - "points_rate": 3.9894812404770406, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02759019136428833, - "csv_write_time_avg": 3.564357757568359e-06 - } - }, - { - "timestamp": "2025-08-25T13:16:12.320870", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026073217391968, - "points_saved": 40, - "points_rate": 3.9895978348345835, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027175766229629517, - "csv_write_time_avg": 3.2722949981689452e-06 - } - }, - { - "timestamp": "2025-08-25T13:16:22.345559", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.024689197540283, - "points_saved": 40, - "points_rate": 3.9901486431933106, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028501623868942262, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:16:32.370635", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025075197219849, - "points_saved": 40, - "points_rate": 3.9899950088247507, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027850109338760375, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:16:42.399764", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.6% CPU", - "details": { - "duration": 10.029129266738892, - "points_saved": 40, - "points_rate": 3.9883821352924436, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.6, - "cpu_max": 0.6, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028364723920822142, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:16:52.429123", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029359579086304, - "points_saved": 40, - "points_rate": 3.9882905468271272, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028344136476516724, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:17:02.454254", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02513074874878, - "points_saved": 40, - "points_rate": 3.9899728993551866, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030476605892181395, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:17:12.479395", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02514123916626, - "points_saved": 40, - "points_rate": 3.9899687242038895, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029007327556610108, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:17:22.509659", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030263423919678, - "points_saved": 40, - "points_rate": 3.9879311548897083, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02844504714012146, - "csv_write_time_avg": 2.0503997802734374e-06 - } - }, - { - "timestamp": "2025-08-25T13:17:32.543993", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.034334421157837, - "points_saved": 40, - "points_rate": 3.9863132242890207, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0324362576007843, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:17:42.570319", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026325464248657, - "points_saved": 40, - "points_rate": 3.989497462717512, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03565124273300171, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:17:52.602354", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.03203535079956, - "points_saved": 40, - "points_rate": 3.9872267791412805, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.036575710773468016, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:18:02.627379", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.6% CPU", - "details": { - "duration": 10.025025367736816, - "points_saved": 40, - "points_rate": 3.9900148411325302, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.6, - "cpu_max": 0.6, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03514876961708069, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:18:12.656998", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.029618263244629, - "points_saved": 40, - "points_rate": 3.988187680740285, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03143860101699829, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:18:22.681846", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024848699569702, - "points_saved": 40, - "points_rate": 3.9900851572669547, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03724043965339661, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:18:32.709850", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.028003215789795, - "points_saved": 40, - "points_rate": 3.9888299932948956, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0373134195804596, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:18:42.736074", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.026224136352539, - "points_saved": 40, - "points_rate": 3.9895377817228495, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03661327958106995, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:18:52.762983", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026909589767456, - "points_saved": 40, - "points_rate": 3.9892650513993195, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0358713686466217, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:19:02.793279", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.030295133590698, - "points_saved": 40, - "points_rate": 3.9879185474855103, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03491642475128174, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:19:12.820656", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.6% CPU", - "details": { - "duration": 10.027377367019653, - "points_saved": 40, - "points_rate": 3.9890789521456735, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.6, - "cpu_max": 0.6, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03830808401107788, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:19:22.847155", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025521039962769, - "points_saved": 40, - "points_rate": 3.9898175706335706, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03819379210472107, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:19:32.876066", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029889583587646, - "points_saved": 40, - "points_rate": 3.9880797955596416, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03172769546508789, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:19:42.900752", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.024685859680176, - "points_saved": 40, - "points_rate": 3.9901499717694042, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03281664252281189, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:19:52.927862", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.027109384536743, - "points_saved": 40, - "points_rate": 3.9891855634571813, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02924702763557434, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:20:02.954290", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.026427984237671, - "points_saved": 40, - "points_rate": 3.9894566702003074, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031773161888122556, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:20:12.983665", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029375314712524, - "points_saved": 40, - "points_rate": 3.988284289383634, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03017194867134094, - "csv_write_time_avg": 1.5079975128173829e-06 - } - }, - { - "timestamp": "2025-08-25T13:20:23.011811", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02764368057251, - "points_saved": 40, - "points_rate": 3.9889730104287344, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.032124072313308716, - "csv_write_time_avg": 2.4616718292236326e-06 - } - }, - { - "timestamp": "2025-08-25T13:20:33.036905", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025596141815186, - "points_saved": 40, - "points_rate": 3.989787682865689, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03193663358688355, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:20:43.062085", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.8% CPU", - "details": { - "duration": 10.025180578231812, - "points_saved": 40, - "points_rate": 3.989953067464346, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.8, - "cpu_max": 0.8, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.032580089569091794, - "csv_write_time_avg": 3.2842159271240235e-06 - } - }, - { - "timestamp": "2025-08-25T13:20:53.088229", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026143550872803, - "points_saved": 40, - "points_rate": 3.989569847772416, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030913645029067995, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:21:03.114617", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.026388168334961, - "points_saved": 40, - "points_rate": 3.989472512776515, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03254532814025879, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:21:13.146213", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.031595945358276, - "points_saved": 40, - "points_rate": 3.987401428235197, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.033677142858505246, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:21:23.171504", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025291442871094, - "points_saved": 40, - "points_rate": 3.9899089445867117, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03415253758430481, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:21:33.196926", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025420904159546, - "points_saved": 40, - "points_rate": 3.9898574216873035, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029367059469223022, - "csv_write_time_avg": 2.8252601623535155e-06 - } - }, - { - "timestamp": "2025-08-25T13:21:43.221551", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024626016616821, - "points_saved": 40, - "points_rate": 3.9901737913909203, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03228580355644226, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:21:53.254194", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.032642602920532, - "points_saved": 40, - "points_rate": 3.986985441737542, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03364863991737366, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:22:03.280436", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026241779327393, - "points_saved": 40, - "points_rate": 3.989530761413913, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.032796406745910646, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:22:13.308389", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.027952909469604, - "points_saved": 40, - "points_rate": 3.9888500036958856, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031354624032974246, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:22:23.335222", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.026833057403564, - "points_saved": 40, - "points_rate": 3.9892955004835744, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030044692754745483, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:22:33.361193", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025970697402954, - "points_saved": 40, - "points_rate": 3.9896386302386935, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031102579832077027, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:22:43.388558", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026389598846436, - "points_saved": 40, - "points_rate": 3.9894719435799817, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028623127937316896, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:22:53.422068", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.034485340118408, - "points_saved": 40, - "points_rate": 3.9862532700185294, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.026832437515258788, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:23:03.450090", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028022527694702, - "points_saved": 40, - "points_rate": 3.9888223116303094, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02789350152015686, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:23:13.476651", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02656078338623, - "points_saved": 40, - "points_rate": 3.989403830900725, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027393245697021486, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:23:23.505910", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029258966445923, - "points_saved": 40, - "points_rate": 3.988330557005732, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02865273356437683, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:23:33.531843", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025933504104614, - "points_saved": 40, - "points_rate": 3.989653430638056, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027326977252960204, - "csv_write_time_avg": 2.181529998779297e-06 - } - }, - { - "timestamp": "2025-08-25T13:23:43.557110", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025267124176025, - "points_saved": 40, - "points_rate": 3.9899186230698658, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028902554512023927, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:23:53.584748", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.027637243270874, - "points_saved": 40, - "points_rate": 3.9889755711737895, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02779918909072876, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:24:03.614948", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.030200004577637, - "points_saved": 40, - "points_rate": 3.987956369937248, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02831815481185913, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:24:13.641933", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.026985168457031, - "points_saved": 40, - "points_rate": 3.9892349821990676, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02776889204978943, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:24:23.668753", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.026820659637451, - "points_saved": 40, - "points_rate": 3.989300433089258, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029917192459106446, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:24:33.693502", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.0247483253479, - "points_saved": 40, - "points_rate": 3.9901251085634444, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027530992031097413, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:24:43.719122", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025620460510254, - "points_saved": 40, - "points_rate": 3.9897780050177762, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028660929203033446, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:24:53.745496", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026373624801636, - "points_saved": 40, - "points_rate": 3.9894782996171627, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02694946527481079, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:25:03.772355", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025883197784424, - "points_saved": 40, - "points_rate": 3.989673449301646, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029542982578277588, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:25:13.801756", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.03037691116333, - "points_saved": 40, - "points_rate": 3.9878860340215043, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028001147508621215, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:25:23.826973", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025217294692993, - "points_saved": 40, - "points_rate": 3.9899384546182985, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029370689392089845, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:25:33.855115", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.028141498565674, - "points_saved": 40, - "points_rate": 3.9887749894356004, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028916722536087035, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:25:43.880338", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.02522325515747, - "points_saved": 40, - "points_rate": 3.9899360824131294, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02973889112472534, - "csv_write_time_avg": 2.944469451904297e-06 - } - }, - { - "timestamp": "2025-08-25T13:25:53.904739", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02440071105957, - "points_saved": 40, - "points_rate": 3.990263473393417, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02889465093612671, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:26:03.930428", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.025689363479614, - "points_saved": 40, - "points_rate": 3.9897505847036543, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029343509674072267, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:26:13.955961", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025533199310303, - "points_saved": 40, - "points_rate": 3.9898127316312477, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028719794750213624, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:26:23.981206", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.025245189666748, - "points_saved": 40, - "points_rate": 3.9899273527223977, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028572100400924682, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:26:34.006316", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025109052658081, - "points_saved": 40, - "points_rate": 3.989981534354911, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028202748298645018, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:26:44.031564", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025248527526855, - "points_saved": 40, - "points_rate": 3.9899260242945482, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028044295310974122, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:26:54.059792", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02822756767273, - "points_saved": 40, - "points_rate": 3.988740755040811, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02778930068016052, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:27:04.085103", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.6% CPU", - "details": { - "duration": 10.02531099319458, - "points_saved": 40, - "points_rate": 3.9899011638794, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.6, - "cpu_max": 0.6, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02840571999549866, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:27:14.110037", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.0249342918396, - "points_saved": 40, - "points_rate": 3.990051090166288, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030406349897384645, - "csv_write_time_avg": 2.843141555786133e-06 - } - }, - { - "timestamp": "2025-08-25T13:27:24.135385", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02534794807434, - "points_saved": 40, - "points_rate": 3.989886456527742, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03155997395515442, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:27:34.170299", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.034914255142212, - "points_saved": 40, - "points_rate": 3.986082888501286, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030411767959594726, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:27:44.195392", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025093078613281, - "points_saved": 40, - "points_rate": 3.9899878920159604, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.033922821283340454, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:27:54.221507", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025099277496338, - "points_saved": 40, - "points_rate": 3.989985424861506, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03365584015846253, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:28:04.252518", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.031052589416504, - "points_saved": 40, - "points_rate": 3.9876174153650568, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03314006328582764, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:28:14.280646", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.0281343460083, - "points_saved": 40, - "points_rate": 3.988777834425603, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030759942531585694, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:28:24.309321", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029642820358276, - "points_saved": 40, - "points_rate": 3.9881779158483663, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.033009564876556395, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:28:34.335485", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026163578033447, - "points_saved": 40, - "points_rate": 3.9895618786468754, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03256765604019165, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:28:44.360579", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025093793869019, - "points_saved": 40, - "points_rate": 3.989987607344137, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028107541799545287, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:28:54.384979", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.024400234222412, - "points_saved": 40, - "points_rate": 3.9902636632008717, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02911369800567627, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:29:04.413975", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028995990753174, - "points_saved": 40, - "points_rate": 3.988435137164315, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029707318544387816, - "csv_write_time_avg": 2.562999725341797e-06 - } - }, - { - "timestamp": "2025-08-25T13:29:14.441432", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027456760406494, - "points_saved": 40, - "points_rate": 3.9890473682160734, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02861438989639282, - "csv_write_time_avg": 2.54511833190918e-06 - } - }, - { - "timestamp": "2025-08-25T13:29:24.467142", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025710344314575, - "points_saved": 40, - "points_rate": 3.9897422353403, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030916929244995117, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:29:34.492850", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025708436965942, - "points_saved": 40, - "points_rate": 3.989742994371888, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030344384908676147, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:29:44.519247", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025422096252441, - "points_saved": 40, - "points_rate": 3.9898569472653147, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02800748348236084, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:29:54.547531", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029258012771606, - "points_saved": 40, - "points_rate": 3.9883309362529715, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02928798198699951, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:30:04.573891", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026360750198364, - "points_saved": 40, - "points_rate": 3.9894834224081386, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028969383239746092, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:30:14.598742", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024851083755493, - "points_saved": 40, - "points_rate": 3.99008420831477, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0298159122467041, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:30:24.628018", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029276132583618, - "points_saved": 40, - "points_rate": 3.9883237305677506, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02882821559906006, - "csv_write_time_avg": 3.3080577850341797e-06 - } - }, - { - "timestamp": "2025-08-25T13:30:34.654174", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026155710220337, - "points_saved": 40, - "points_rate": 3.9895650093709696, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.032212483882904056, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:30:44.678778", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.024604082107544, - "points_saved": 40, - "points_rate": 3.990182522160069, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03142939209938049, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:30:54.705928", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026175737380981, - "points_saved": 40, - "points_rate": 3.989557040264758, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029040366411209106, - "csv_write_time_avg": 2.7298927307128905e-06 - } - }, - { - "timestamp": "2025-08-25T13:31:04.737561", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.032607316970825, - "points_saved": 40, - "points_rate": 3.986999464469952, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02840970754623413, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:31:14.763267", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025706052780151, - "points_saved": 40, - "points_rate": 3.9897439431617796, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02995166778564453, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:31:24.792276", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029008865356445, - "points_saved": 40, - "points_rate": 3.9884300170651352, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028955179452896117, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:31:34.819174", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026897668838501, - "points_saved": 40, - "points_rate": 3.989269794216772, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02794131636619568, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:31:44.843519", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.023371696472168, - "points_saved": 40, - "points_rate": 3.990673119912177, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028428369760513307, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:31:54.873261", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030715942382812, - "points_saved": 40, - "points_rate": 3.9877512462483247, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02878730297088623, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:32:04.899190", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025928974151611, - "points_saved": 40, - "points_rate": 3.9896552332583006, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02847311496734619, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:32:14.928803", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029612064361572, - "points_saved": 40, - "points_rate": 3.988190145672017, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03226140737533569, - "csv_write_time_avg": 4.0709972381591795e-06 - } - }, - { - "timestamp": "2025-08-25T13:32:24.955927", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.027124404907227, - "points_saved": 40, - "points_rate": 3.9891795877613916, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03240758776664734, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:32:34.986146", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030218839645386, - "points_saved": 40, - "points_rate": 3.9879488812244284, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03129786252975464, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:32:45.014164", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.028018236160278, - "points_saved": 40, - "points_rate": 3.988824018664327, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0314714789390564, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:32:55.044584", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.029444217681885, - "points_saved": 40, - "points_rate": 3.9882568895971424, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028548240661621094, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:33:05.075531", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.031923055648804, - "points_saved": 40, - "points_rate": 3.9872714112850662, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028417211771011353, - "csv_write_time_avg": 3.2961368560791014e-06 - } - }, - { - "timestamp": "2025-08-25T13:33:15.104293", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028761386871338, - "points_saved": 40, - "points_rate": 3.98852843905171, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030388528108596803, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:33:25.130888", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025614023208618, - "points_saved": 40, - "points_rate": 3.9897805667964783, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03278307318687439, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:33:35.161693", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.0317862033844, - "points_saved": 40, - "points_rate": 3.987325805099923, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03072272539138794, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:33:45.187082", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025389432907104, - "points_saved": 40, - "points_rate": 3.9898699464686063, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02803138494491577, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:33:55.212953", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02587103843689, - "points_saved": 40, - "points_rate": 3.9896782879661203, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029479455947875977, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:34:05.237860", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.024906873703003, - "points_saved": 40, - "points_rate": 3.9900620029625062, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03067734241485596, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:34:15.262956", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025095701217651, - "points_saved": 40, - "points_rate": 3.9899868482194725, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028440052270889284, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:34:25.288462", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025506019592285, - "points_saved": 40, - "points_rate": 3.9898235482408806, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03175904750823975, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:34:35.313517", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025054931640625, - "points_saved": 40, - "points_rate": 3.9900030745720714, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029087311029434203, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:34:45.339469", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025951623916626, - "points_saved": 40, - "points_rate": 3.989646220173367, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02965685725212097, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:34:55.365203", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025734424591064, - "points_saved": 40, - "points_rate": 3.989732652591338, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028727054595947266, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:35:05.395933", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.030729532241821, - "points_saved": 40, - "points_rate": 3.9877458435528355, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030953770875930785, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:35:15.423923", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027990341186523, - "points_saved": 40, - "points_rate": 3.988835114421057, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031433629989624026, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:35:25.451718", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02779507637024, - "points_saved": 40, - "points_rate": 3.988912786446649, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031184017658233643, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:35:35.476787", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025069236755371, - "points_saved": 40, - "points_rate": 3.9899973810999896, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030316638946533202, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:35:45.502528", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02476716041565, - "points_saved": 40, - "points_rate": 3.9901176117033637, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03018686771392822, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:35:55.531910", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.030355453491211, - "points_saved": 40, - "points_rate": 3.9878945651998223, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03273687958717346, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:36:05.557723", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025813579559326, - "points_saved": 40, - "points_rate": 3.9897011531864286, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03448114991188049, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:36:15.584077", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026353359222412, - "points_saved": 40, - "points_rate": 3.9894863632755686, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.035323876142501834, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:36:25.609319", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025242328643799, - "points_saved": 40, - "points_rate": 3.989928491375544, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03587216138839722, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:36:35.634823", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025503396987915, - "points_saved": 40, - "points_rate": 3.98982459195193, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03420594334602356, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:36:45.660612", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025789737701416, - "points_saved": 40, - "points_rate": 3.989710640906647, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03637891411781311, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:36:55.690434", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02982234954834, - "points_saved": 40, - "points_rate": 3.988106529304706, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03211954832077026, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:37:05.716795", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026360988616943, - "points_saved": 40, - "points_rate": 3.989483327541519, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03559835553169251, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:37:15.745556", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.028760194778442, - "points_saved": 40, - "points_rate": 3.9885289131578134, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031675797700881955, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:37:25.773393", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026862621307373, - "points_saved": 40, - "points_rate": 3.9892837381654003, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.032751810550689694, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:37:35.804606", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.032187938690186, - "points_saved": 40, - "points_rate": 3.9871661340928237, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03315240740776062, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:37:45.830834", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026227712631226, - "points_saved": 40, - "points_rate": 3.9895363586852577, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03293076157569885, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:37:55.857320", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026485443115234, - "points_saved": 40, - "points_rate": 3.9894338077821994, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03127619028091431, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:38:05.883717", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026397705078125, - "points_saved": 40, - "points_rate": 3.989468718136024, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.032553231716156004, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:38:15.911187", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.027470350265503, - "points_saved": 40, - "points_rate": 3.989041962007985, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03292030096054077, - "csv_write_time_avg": 3.141164779663086e-06 - } - }, - { - "timestamp": "2025-08-25T13:38:25.936735", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025547742843628, - "points_saved": 41, - "points_rate": 4.089552117415865, - "variables_saved": 123, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030753362469556855, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:38:35.962980", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026244640350342, - "points_saved": 40, - "points_rate": 3.989529622987765, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029651778936386108, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:38:45.987709", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.024729490280151, - "points_saved": 40, - "points_rate": 3.990132605451697, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029051029682159425, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:38:56.015637", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 39 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.027927160263062, - "points_saved": 39, - "points_rate": 3.8891387399125183, - "variables_saved": 117, - "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.031458799655620866, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:39:06.042490", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026853799819946, - "points_saved": 41, - "points_rate": 4.089019429079164, - "variables_saved": 123, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029587135082337915, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:39:16.068316", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.024855852127075, - "points_saved": 40, - "points_rate": 3.9900823104117547, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03185572624206543, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:39:26.098650", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.031304121017456, - "points_saved": 40, - "points_rate": 3.987517427190003, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03156053423881531, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:39:36.125473", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026822805404663, - "points_saved": 41, - "points_rate": 4.089032068852375, - "variables_saved": 123, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.033675472910811265, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:39:46.151801", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 39 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02632761001587, - "points_saved": 39, - "points_rate": 3.8897591936892906, - "variables_saved": 117, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030942281087239582, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:39:56.181724", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029923677444458, - "points_saved": 40, - "points_rate": 3.988066239223036, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03224493265151977, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:40:06.209925", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028200626373291, - "points_saved": 41, - "points_rate": 4.088470257782197, - "variables_saved": 123, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028801039951603588, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:40:16.237125", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027199745178223, - "points_saved": 40, - "points_rate": 3.989149614700235, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03413901329040527, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:40:26.265053", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.027927875518799, - "points_saved": 40, - "points_rate": 3.988859961553182, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03217806220054627, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:40:36.292346", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.027293920516968, - "points_saved": 40, - "points_rate": 3.989112149007173, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0352844774723053, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:40:46.318972", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.026625633239746, - "points_saved": 40, - "points_rate": 3.9893780283761755, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030974572896957396, - "csv_write_time_avg": 1.9848346710205076e-06 - } - }, - { - "timestamp": "2025-08-25T13:40:56.347756", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028783798217773, - "points_saved": 40, - "points_rate": 3.988519525877948, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.032091325521469115, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:41:06.376090", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028334140777588, - "points_saved": 40, - "points_rate": 3.9886983658981308, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03078012466430664, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:41:16.403183", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.027093410491943, - "points_saved": 40, - "points_rate": 3.989191918581872, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030955326557159425, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:41:26.428679", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025495290756226, - "points_saved": 40, - "points_rate": 3.989827817971354, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029626679420471192, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:41:36.455569", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026890277862549, - "points_saved": 40, - "points_rate": 3.9892727347692563, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03085670471191406, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:41:46.479903", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.024333953857422, - "points_saved": 40, - "points_rate": 3.9902900466127993, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.032139438390731814, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:41:56.506167", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025288820266724, - "points_saved": 40, - "points_rate": 3.9899099883424403, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031139951944351197, - "csv_write_time_avg": 2.2113323211669923e-06 - } - }, - { - "timestamp": "2025-08-25T13:42:06.536106", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030914306640625, - "points_saved": 40, - "points_rate": 3.9876723873036544, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028382408618927, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:42:16.562428", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02632212638855, - "points_saved": 40, - "points_rate": 3.9894987908600017, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028521698713302613, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:42:26.588757", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026328325271606, - "points_saved": 40, - "points_rate": 3.989496324310368, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027643412351608276, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:42:36.615831", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027074813842773, - "points_saved": 40, - "points_rate": 3.9891993171107507, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029146367311477663, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:42:46.641607", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025132894515991, - "points_saved": 40, - "points_rate": 3.989972045346256, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027047502994537353, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:42:56.666948", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025983333587646, - "points_saved": 40, - "points_rate": 3.9896336019228755, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030743473768234254, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:43:06.695203", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028255462646484, - "points_saved": 40, - "points_rate": 3.9887296598090343, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03021261692047119, - "csv_write_time_avg": 4.649162292480469e-06 - } - }, - { - "timestamp": "2025-08-25T13:43:16.721182", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025979280471802, - "points_saved": 40, - "points_rate": 3.9896352147775116, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027841973304748534, - "csv_write_time_avg": 2.855062484741211e-06 - } - }, - { - "timestamp": "2025-08-25T13:43:26.751511", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02977991104126, - "points_saved": 40, - "points_rate": 3.9881234039807887, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027720963954925536, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:43:36.778531", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027568817138672, - "points_saved": 40, - "points_rate": 3.9890027911485175, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029302710294723512, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:43:46.803892", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02536129951477, - "points_saved": 40, - "points_rate": 3.9898811429305803, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02981600761413574, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:43:56.831884", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02799129486084, - "points_saved": 40, - "points_rate": 3.988834735077927, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02747567296028137, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:44:06.859916", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.028031826019287, - "points_saved": 40, - "points_rate": 3.9888186130616163, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028890490531921387, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:44:16.891884", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.031968355178833, - "points_saved": 40, - "points_rate": 3.98725340669069, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027292090654373168, - "csv_write_time_avg": 1.7344951629638673e-06 - } - }, - { - "timestamp": "2025-08-25T13:44:26.919367", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027482748031616, - "points_saved": 40, - "points_rate": 3.9890370300414584, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027433556318283082, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:44:36.944675", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02530837059021, - "points_saved": 40, - "points_rate": 3.9899022076310575, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029413121938705444, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:44:46.969793", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025117635726929, - "points_saved": 40, - "points_rate": 3.989978118306596, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029095882177352907, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:44:56.997537", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02774429321289, - "points_saved": 40, - "points_rate": 3.9889329873592136, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02829244136810303, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:45:07.033744", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.036207437515259, - "points_saved": 40, - "points_rate": 3.985569274951446, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027438360452651977, - "csv_write_time_avg": 2.497434616088867e-06 - } - }, - { - "timestamp": "2025-08-25T13:45:17.063009", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029264211654663, - "points_saved": 40, - "points_rate": 3.988328471147203, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028951197862625122, - "csv_write_time_avg": 3.230571746826172e-06 - } - }, - { - "timestamp": "2025-08-25T13:45:27.094403", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.031394720077515, - "points_saved": 40, - "points_rate": 3.987481413720196, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028833174705505372, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:45:37.120741", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02633810043335, - "points_saved": 40, - "points_rate": 3.9894924347575267, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028119999170303344, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:45:47.146802", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026060819625854, - "points_saved": 40, - "points_rate": 3.9896027681879445, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031835132837295534, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:45:57.176935", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030132293701172, - "points_saved": 40, - "points_rate": 3.9879832916181597, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027939999103546144, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:46:07.202864", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02592945098877, - "points_saved": 40, - "points_rate": 3.989655043508724, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029024028778076173, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:46:17.231834", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028970003128052, - "points_saved": 40, - "points_rate": 3.9884454722193743, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030948930978775026, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:46:27.257683", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025849342346191, - "points_saved": 40, - "points_rate": 3.9896869216907094, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03126169443130493, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:46:37.283050", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02536678314209, - "points_saved": 40, - "points_rate": 3.9898789605644174, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03166600465774536, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:46:47.308495", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025444984436035, - "points_saved": 40, - "points_rate": 3.9898478383850144, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03053315281867981, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:46:57.340245", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.031749486923218, - "points_saved": 40, - "points_rate": 3.9873403988149407, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03177709579467773, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:47:07.366312", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02606725692749, - "points_saved": 40, - "points_rate": 3.989600206637561, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03533947467803955, - "csv_write_time_avg": 6.848573684692383e-06 - } - }, - { - "timestamp": "2025-08-25T13:47:17.391677", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025365352630615, - "points_saved": 40, - "points_rate": 3.9898795298770993, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03199294805526733, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:47:27.418421", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02674388885498, - "points_saved": 40, - "points_rate": 3.9893309775730055, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.032191002368927, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:47:37.444542", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026121139526367, - "points_saved": 40, - "points_rate": 3.9895787656411255, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030180299282073976, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:47:47.470996", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026453733444214, - "points_saved": 40, - "points_rate": 3.989446424768919, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03434041142463684, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:47:57.497703", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025732278823853, - "points_saved": 40, - "points_rate": 3.9897335064977932, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03299552798271179, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:48:07.529952", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.033223867416382, - "points_saved": 40, - "points_rate": 3.986754459840459, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03416869640350342, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:48:17.557278", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027326345443726, - "points_saved": 40, - "points_rate": 3.989099249589641, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03888349533081055, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:48:27.588955", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.031676769256592, - "points_saved": 40, - "points_rate": 3.9873693022671266, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03847147226333618, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:48:37.614270", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.025314807891846, - "points_saved": 40, - "points_rate": 3.9898996456961457, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03666544556617737, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:48:47.647383", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.03213906288147, - "points_saved": 40, - "points_rate": 3.9871855592590886, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03885603547096252, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:48:57.676440", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030030965805054, - "points_saved": 40, - "points_rate": 3.9880235800238557, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03918589353561401, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:49:07.706440", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02999997138977, - "points_saved": 40, - "points_rate": 3.988035903698766, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.04031079411506653, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:49:17.736499", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.030058860778809, - "points_saved": 40, - "points_rate": 3.9880124887815565, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03837915062904358, - "csv_write_time_avg": 2.270936965942383e-06 - } - }, - { - "timestamp": "2025-08-25T13:49:27.763093", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026593923568726, - "points_saved": 40, - "points_rate": 3.989390645010081, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03585255146026611, - "csv_write_time_avg": 1.6033649444580077e-06 - } - }, - { - "timestamp": "2025-08-25T13:49:37.790076", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026983261108398, - "points_saved": 40, - "points_rate": 3.9892357410376627, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03771854043006897, - "csv_write_time_avg": 1.442432403564453e-06 - } - }, - { - "timestamp": "2025-08-25T13:49:47.817569", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02749252319336, - "points_saved": 40, - "points_rate": 3.989033141384142, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03681135773658752, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:49:57.844839", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027270317077637, - "points_saved": 40, - "points_rate": 3.9891215390768147, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.036344891786575316, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:50:07.869349", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02450966835022, - "points_saved": 40, - "points_rate": 3.990220102863444, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03629876971244812, - "csv_write_time_avg": 2.7239322662353517e-06 - } - }, - { - "timestamp": "2025-08-25T13:50:17.895383", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026034593582153, - "points_saved": 40, - "points_rate": 3.9896132041679495, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.039943349361419675, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:50:27.922204", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026821374893188, - "points_saved": 40, - "points_rate": 3.9893001485155213, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.038503050804138184, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:50:37.952183", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029978275299072, - "points_saved": 40, - "points_rate": 3.9880445303165213, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.04005872011184693, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:50:47.977226", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025043487548828, - "points_saved": 40, - "points_rate": 3.9900076293614357, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03794175386428833, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:50:58.008140", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030913591384888, - "points_saved": 40, - "points_rate": 3.987672671645208, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.04098433256149292, - "csv_write_time_avg": 2.9921531677246095e-06 - } - }, - { - "timestamp": "2025-08-25T13:51:08.037533", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.029393196105957, - "points_saved": 40, - "points_rate": 3.988277178676226, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03587953448295593, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:51:18.063910", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025388479232788, - "points_saved": 40, - "points_rate": 3.989870326008661, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03553231954574585, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:51:28.099351", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.03642988204956, - "points_saved": 40, - "points_rate": 3.985480939944704, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.035103344917297365, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:51:38.126281", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.0269296169281, - "points_saved": 40, - "points_rate": 3.9892570834913865, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.039611101150512695, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:51:48.158728", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.03244686126709, - "points_saved": 40, - "points_rate": 3.9870632312472605, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03308925628662109, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:51:58.186385", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02765703201294, - "points_saved": 40, - "points_rate": 3.9889676992642866, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03679832220077515, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:52:08.211996", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025611162185669, - "points_saved": 40, - "points_rate": 3.989781705365846, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03860566020011902, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:52:18.238483", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.02648663520813, - "points_saved": 40, - "points_rate": 3.9894333334609464, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.04232966899871826, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:52:28.269306", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.030823230743408, - "points_saved": 40, - "points_rate": 3.9877085937876213, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.036136937141418454, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:52:38.300150", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.030844449996948, - "points_saved": 40, - "points_rate": 3.9877001581867986, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.034038501977920535, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:52:48.327555", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027405023574829, - "points_saved": 40, - "points_rate": 3.9890679498791966, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.032697999477386476, - "csv_write_time_avg": 3.129243850708008e-06 - } - }, - { - "timestamp": "2025-08-25T13:52:58.356357", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028801202774048, - "points_saved": 40, - "points_rate": 3.9885126039726138, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03241488933563232, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:53:08.384538", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028181552886963, - "points_saved": 40, - "points_rate": 3.9887590575665834, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.032740813493728635, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:53:18.413310", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.02877163887024, - "points_saved": 40, - "points_rate": 3.9885243617438753, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03222851157188415, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:53:28.440890", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027580499649048, - "points_saved": 40, - "points_rate": 3.9889981438094613, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03245570659637451, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:53:38.477607", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.5% CPU", - "details": { - "duration": 10.036716222763062, - "points_saved": 40, - "points_rate": 3.9853672368738335, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03317990303039551, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:53:48.503305", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.0256986618042, - "points_saved": 40, - "points_rate": 3.9897468844133104, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0352497398853302, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:53:58.529176", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025870561599731, - "points_saved": 40, - "points_rate": 3.9896784777179075, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03398489952087402, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:54:08.556297", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026146411895752, - "points_saved": 40, - "points_rate": 3.989568709323961, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03117232322692871, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:54:18.585922", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030599594116211, - "points_saved": 40, - "points_rate": 3.9877975015036347, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03036385178565979, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:54:28.614578", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027681589126587, - "points_saved": 40, - "points_rate": 3.988957930552321, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03321123719215393, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:54:38.644986", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.031382322311401, - "points_saved": 40, - "points_rate": 3.987486341840804, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03006711006164551, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:54:48.675327", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030341148376465, - "points_saved": 40, - "points_rate": 3.9879002526723126, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028667473793029787, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:54:58.702924", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.02662181854248, - "points_saved": 40, - "points_rate": 3.989379546162498, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.026486152410507204, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:55:08.734909", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.032960653305054, - "points_saved": 40, - "points_rate": 3.986859052100759, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028316980600357054, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:55:18.763872", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027971982955933, - "points_saved": 40, - "points_rate": 3.988842416790364, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028112828731536865, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:55:28.793264", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030383110046387, - "points_saved": 40, - "points_rate": 3.9878835694656747, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.027331024408340454, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:55:38.818890", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.025625705718994, - "points_saved": 40, - "points_rate": 3.98977591764497, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029248076677322387, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:55:48.845471", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.026580572128296, - "points_saved": 40, - "points_rate": 3.989395957300863, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028832608461380006, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:55:58.872762", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027291774749756, - "points_saved": 40, - "points_rate": 3.9891130026480406, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028562325239181518, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:56:08.898882", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026119470596313, - "points_saved": 40, - "points_rate": 3.9895794297393268, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02720332145690918, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:56:18.929525", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030643701553345, - "points_saved": 40, - "points_rate": 3.9877799660858857, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02955579161643982, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:56:28.955304", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.025777816772461, - "points_saved": 40, - "points_rate": 3.9897153847836777, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028777891397476198, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:56:38.982049", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026745796203613, - "points_saved": 40, - "points_rate": 3.989330218698178, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02832973003387451, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:56:49.008429", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026380062103271, - "points_saved": 40, - "points_rate": 3.989475738226609, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028429651260375978, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:56:59.035266", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.02683711051941, - "points_saved": 40, - "points_rate": 3.989293887903593, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02824997901916504, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:57:09.063916", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02864956855774, - "points_saved": 40, - "points_rate": 3.9885729106947507, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0283802330493927, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:57:19.090869", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026952981948853, - "points_saved": 40, - "points_rate": 3.9892477876390267, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0297432005405426, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:57:29.120037", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02819299697876, - "points_saved": 40, - "points_rate": 3.988754505627383, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02836427092552185, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:57:39.150065", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.03100299835205, - "points_saved": 40, - "points_rate": 3.987637129265281, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028933519124984743, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:57:49.176329", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.026264190673828, - "points_saved": 40, - "points_rate": 3.989521843759809, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030677658319473267, - "csv_write_time_avg": 2.8908252716064453e-06 - } - }, - { - "timestamp": "2025-08-25T13:57:59.205086", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028756618499756, - "points_saved": 40, - "points_rate": 3.988530335476799, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03051578998565674, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:58:09.233110", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028023958206177, - "points_saved": 40, - "points_rate": 3.9888217426192947, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03056727647781372, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:58:19.261370", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028260469436646, - "points_saved": 40, - "points_rate": 3.9887276683637105, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03146693706512451, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:58:29.290593", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.0292227268219, - "points_saved": 40, - "points_rate": 3.9883449684515444, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.0295221209526062, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:58:39.320732", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030138731002808, - "points_saved": 40, - "points_rate": 3.9879807321469443, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030249136686325073, - "csv_write_time_avg": 4.583597183227539e-06 - } - }, - { - "timestamp": "2025-08-25T13:58:49.349751", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.029019117355347, - "points_saved": 40, - "points_rate": 3.9884259399585233, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03066372275352478, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:58:59.380135", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.030383586883545, - "points_saved": 40, - "points_rate": 3.9878833798845834, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03171067237854004, - "csv_write_time_avg": 1.7464160919189454e-06 - } - }, - { - "timestamp": "2025-08-25T13:59:09.408971", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.028836727142334, - "points_saved": 40, - "points_rate": 3.988498475774647, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03117956519126892, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:59:19.436021", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027050256729126, - "points_saved": 40, - "points_rate": 3.989209087005035, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031271690130233766, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:59:29.463693", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027671337127686, - "points_saved": 40, - "points_rate": 3.988962008746644, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03323227763175964, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:59:39.493942", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.03024935722351, - "points_saved": 40, - "points_rate": 3.9879367476734857, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029847347736358644, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:59:49.524527", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030585289001465, - "points_saved": 41, - "points_rate": 4.0874982684167485, - "variables_saved": 123, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02811876157434975, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T13:59:59.551664", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.027136325836182, - "points_saved": 40, - "points_rate": 3.9891748451584284, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029407131671905517, - "csv_write_time_avg": 1.5377998352050782e-06 - } - }, - { - "timestamp": "2025-08-25T14:00:09.578332", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.026668787002563, - "points_saved": 40, - "points_rate": 3.989360858498833, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02991209626197815, - "csv_write_time_avg": 1.3887882232666016e-06 - } - }, - { - "timestamp": "2025-08-25T14:00:19.607159", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028826475143433, - "points_saved": 40, - "points_rate": 3.9885025530295577, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.030859309434890746, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T14:00:29.635164", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028004884719849, - "points_saved": 40, - "points_rate": 3.9888293294461707, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02899535894393921, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T14:00:39.667824", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 41 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.031680822372437, - "points_saved": 41, - "points_rate": 4.087051883525111, - "variables_saved": 123, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029823024098466083, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T14:00:49.699046", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.031209945678711, - "points_saved": 40, - "points_rate": 3.987554862933696, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029202497005462645, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T14:00:59.727734", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029679775238037, - "points_saved": 40, - "points_rate": 3.988163221198223, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.031183397769927977, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T14:01:09.754944", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.027209758758545, - "points_saved": 40, - "points_rate": 3.9891456309728524, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.3, - "cpu_max": 0.3, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029039835929870604, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T14:01:19.781629", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.0% CPU", - "details": { - "duration": 10.0266854763031, - "points_saved": 40, - "points_rate": 3.9893542182544097, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.0, - "cpu_max": 0.0, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03051919937133789, - "csv_write_time_avg": 3.850460052490234e-06 - } - }, - { - "timestamp": "2025-08-25T14:01:29.811930", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.030300617218018, - "points_saved": 40, - "points_rate": 3.987916367265801, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028727072477340698, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T14:01:39.840574", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.02864384651184, - "points_saved": 40, - "points_rate": 3.9885751864558223, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02841700315475464, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T14:01:49.870546", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.029972553253174, - "points_saved": 40, - "points_rate": 3.988046805474676, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.02747915983200073, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T14:01:59.899046", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.028499364852905, - "points_saved": 40, - "points_rate": 3.988632650283536, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.03007497787475586, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T14:02:09.926557", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027511358261108, - "points_saved": 40, - "points_rate": 3.9890256486267877, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.029422301054000854, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T14:02:19.953803", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 40 points saved, 0 lost, 0.2% CPU", - "details": { - "duration": 10.027245283126831, - "points_saved": 40, - "points_rate": 3.9891314982898933, - "variables_saved": 120, - "udp_points_sent": 0, - "points_lost": 0, - "cpu_average": 0.2, - "cpu_max": 0.2, - "delay_average": 0.0, - "delay_max": 0.0, - "read_errors": 0, - "csv_errors": 0, - "udp_errors": 0, - "read_time_avg": 0.028287619352340698, - "csv_write_time_avg": 0.0 - } - }, { "timestamp": "2025-08-25T14:02:29.981110", "level": "info", @@ -22327,7 +13265,41 @@ } }, { - "timestamp": "2025-08-25T16:00:59.233117", + "timestamp": "2025-08-25T16:00:58.256610", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:00:58.309166", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T16:00:58.333686", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T16:01:00.353641", "level": "error", "event_type": "dataset_loop_error", "message": "� CRITICAL: Multiple consecutive read failures for dataset 'DAR' (5). Stopping dataset.", @@ -22338,12 +13310,12 @@ } }, { - "timestamp": "2025-08-25T16:01:07.185425", + "timestamp": "2025-08-25T16:01:08.308642", "level": "info", "event_type": "performance_report", "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", "details": { - "duration": 11.058401346206665, + "duration": 11.056324005126953, "points_saved": 0, "points_rate": 0.0, "variables_saved": 0, @@ -22361,12 +13333,12 @@ } }, { - "timestamp": "2025-08-25T16:01:17.220768", + "timestamp": "2025-08-25T16:01:18.335501", "level": "info", "event_type": "performance_report", "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", "details": { - "duration": 10.035342454910278, + "duration": 10.026859283447266, "points_saved": 0, "points_rate": 0.0, "variables_saved": 0, @@ -22384,35 +13356,12 @@ } }, { - "timestamp": "2025-08-25T16:01:27.247485", - "level": "info", - "event_type": "performance_report", - "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", - "details": { - "duration": 10.026717185974121, - "points_saved": 0, - "points_rate": 0.0, - "variables_saved": 0, - "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.0, - "csv_write_time_avg": 0.0 - } - }, - { - "timestamp": "2025-08-25T16:01:37.272823", + "timestamp": "2025-08-25T16:01:28.363567", "level": "info", "event_type": "performance_report", "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", "details": { - "duration": 10.025338172912598, + "duration": 10.02806568145752, "points_saved": 0, "points_rate": 0.0, "variables_saved": 0, @@ -22430,19 +13379,182 @@ } }, { - "timestamp": "2025-08-25T16:01:47.298607", + "timestamp": "2025-08-25T16:01:35.809322", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-25T16:01:38.388586", + "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-25T16:01:38.412207", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-25T16:01:38.436280", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-25T16:01:38.460853", + "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-25T16:17:00.788504", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-25T16:17:00.812612", + "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-25T16:17:00.836905", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-25T16:17:00.860823", + "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-25T16:17:31.967098", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:17:33.007660", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:17:49.882316", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T16:17:49.926335", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T16:17:49.980920", + "level": "info", + "event_type": "plc_connection", + "message": "Successfully connected to PLC 10.1.33.11 and auto-started CSV recording for 1 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": 1, + "dataset_names": [ + "DAR" + ] + } + }, + { + "timestamp": "2025-08-25T16:17:51.912989", + "level": "error", + "event_type": "dataset_loop_error", + "message": "� CRITICAL: Multiple consecutive read failures for dataset 'DAR' (5). Stopping dataset.", + "details": { + "dataset_id": "DAR", + "consecutive_errors": 5, + "priority": "CRITICAL" + } + }, + { + "timestamp": "2025-08-25T16:17:59.883615", "level": "info", "event_type": "performance_report", - "message": "Performance report: 0 points saved, 0 lost, 0.5% CPU", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", "details": { - "duration": 10.025784492492676, + "duration": 27.87961435317993, "points_saved": 0, "points_rate": 0.0, "variables_saved": 0, "udp_points_sent": 0, "points_lost": 0, - "cpu_average": 0.5, - "cpu_max": 0.5, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 4, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:18:09.913648", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 1.6% CPU", + "details": { + "duration": 10.03059983253479, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.6, + "cpu_max": 1.6, "delay_average": 0.0, "delay_max": 0.0, "read_errors": 0, @@ -22453,12 +13565,348 @@ } }, { - "timestamp": "2025-08-25T16:01:57.324447", + "timestamp": "2025-08-25T16:18:19.945789", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.032682418823242, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:18:29.973777", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.02747917175293, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:18:33.079942", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-25T16:18:36.886139", + "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-25T16:18:36.911737", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-25T16:18:36.943462", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-25T16:18:36.968035", + "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-25T16:23:58.033754", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:23:58.082422", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T16:23:58.107246", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T16:23:59.165668", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:23:59.203227", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T16:23:59.228385", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T16:24:01.240995", + "level": "error", + "event_type": "dataset_loop_error", + "message": "� CRITICAL: Multiple consecutive read failures for dataset 'DAR' (5). Stopping dataset.", + "details": { + "dataset_id": "DAR", + "consecutive_errors": 5, + "priority": "CRITICAL" + } + }, + { + "timestamp": "2025-08-25T16:24:09.204194", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.044511556625366, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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": 4, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:24:19.231547", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 1.2% CPU", + "details": { + "duration": 10.02786374092102, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.2, + "cpu_max": 1.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:24:29.256439", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.024892568588257, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:24:58.482862", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:24:58.532950", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T16:24:58.558448", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T16:24:59.597980", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:24:59.645758", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T16:24:59.670802", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T16:25:01.679652", + "level": "error", + "event_type": "dataset_loop_error", + "message": "� CRITICAL: Multiple consecutive read failures for dataset 'DAR' (5). Stopping dataset.", + "details": { + "dataset_id": "DAR", + "consecutive_errors": 5, + "priority": "CRITICAL" + } + }, + { + "timestamp": "2025-08-25T16:25:09.645309", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.051445960998535, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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": 4, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:25:19.669572", "level": "info", "event_type": "performance_report", "message": "Performance report: 0 points saved, 0 lost, 0.6% CPU", "details": { - "duration": 10.025839805603027, + "duration": 10.024270057678223, "points_saved": 0, "points_rate": 0.0, "variables_saved": 0, @@ -22476,12 +13924,410 @@ } }, { - "timestamp": "2025-08-25T16:02:07.351853", + "timestamp": "2025-08-25T16:25:29.698945", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.029881238937378, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:25:39.727892", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.02894639968872, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:25:49.752203", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.024311304092407, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:25:59.794126", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.04192304611206, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:26:09.819267", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.025140523910522, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:26:16.870218", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-25T16:26:19.843801", + "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-25T16:26:19.871177", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-25T16:26:19.895554", + "level": "info", + "event_type": "dataset_deactivated", + "message": "Dataset deactivated: DAR", + "details": { + "dataset_id": "DAR" + } + }, + { + "timestamp": "2025-08-25T16:26:19.921027", + "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-25T16:26:44.504118", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-25T16:26:44.527948", + "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-25T16:26:44.553909", + "level": "info", + "event_type": "udp_streaming_stopped", + "message": "UDP streaming to PlotJuggler stopped (CSV recording continues)", + "details": {} + }, + { + "timestamp": "2025-08-25T16:26:44.578730", + "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-25T16:41:51.506754", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:41:52.548375", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:48:03.714462", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:48:04.762221", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:51:06.593522", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:51:07.630336", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:51:23.127845", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T16:51:23.162186", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T16:51:23.205412", + "level": "info", + "event_type": "plc_connection", + "message": "Successfully connected to PLC 10.1.33.11 and auto-started CSV recording for 1 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": 1, + "dataset_names": [ + "DAR" + ] + } + }, + { + "timestamp": "2025-08-25T16:51:25.179482", + "level": "error", + "event_type": "dataset_loop_error", + "message": "� CRITICAL: Multiple consecutive read failures for dataset 'DAR' (5). Stopping dataset.", + "details": { + "dataset_id": "DAR", + "consecutive_errors": 5, + "priority": "CRITICAL" + } + }, + { + "timestamp": "2025-08-25T16:51:33.128079", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 26.50144863128662, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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": 4, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:51:43.172549", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 1.4% CPU", + "details": { + "duration": 10.044973611831665, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:51:53.197288", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.024738311767578, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:52:03.222185", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.024389505386353, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:52:13.245861", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.024184226989746, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:52:23.271780", "level": "info", "event_type": "performance_report", "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", "details": { - "duration": 10.027405977249146, + "duration": 10.025918006896973, "points_saved": 0, "points_rate": 0.0, "variables_saved": 0, @@ -22497,8 +14343,6913 @@ "read_time_avg": 0.0, "csv_write_time_avg": 0.0 } + }, + { + "timestamp": "2025-08-25T16:52:33.296213", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024433851242065, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:52:43.321512", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.025298118591309, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:52:53.349194", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.027682781219482, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:53:03.389271", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.040076494216919, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:53:13.426025", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 1.2% CPU", + "details": { + "duration": 10.036754131317139, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.2, + "cpu_max": 1.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:53:23.459621", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.03359603881836, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:53:33.494961", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 8.3% CPU", + "details": { + "duration": 10.035339832305908, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 8.3, + "cpu_max": 8.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:53:43.549146", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.054185390472412, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:53:53.574940", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02579379081726, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:54:03.599830", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024889469146729, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:54:13.626114", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.026284456253052, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:54:23.651258", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 4.0% CPU", + "details": { + "duration": 10.02514386177063, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 4.0, + "cpu_max": 4.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:54:33.705564", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 7.3% CPU", + "details": { + "duration": 10.053798198699951, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 7.3, + "cpu_max": 7.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:54:43.759370", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.054313898086548, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:54:53.797234", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.037863731384277, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:55:03.823093", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.025859355926514, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:55:13.848678", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02558445930481, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:55:23.872619", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.023941993713379, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:55:33.899471", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.026851177215576, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:55:43.924505", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.025034189224243, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:55:53.948464", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.023959159851074, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:56:03.973601", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.025137186050415, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:56:14.000262", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.026156663894653, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:56:24.026378", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.026057004928589, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:56:34.050817", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.025001764297485, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:56:44.077586", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.026768922805786, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:56:54.102553", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.024967432022095, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:57:04.129891", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.02733826637268, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:57:14.154672", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024780511856079, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:57:43.159780", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:57:43.208284", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T16:57:43.235880", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T16:57:44.285397", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T16:57:44.326579", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T16:57:44.351917", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T16:57:46.360775", + "level": "error", + "event_type": "dataset_loop_error", + "message": "� CRITICAL: Multiple consecutive read failures for dataset 'DAR' (5). Stopping dataset.", + "details": { + "dataset_id": "DAR", + "consecutive_errors": 5, + "priority": "CRITICAL" + } + }, + { + "timestamp": "2025-08-25T16:57:54.327476", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.046444654464722, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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": 4, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:58:04.353486", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.026512622833252, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:58:14.379085", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.025598764419556, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:58:24.405744", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.0266592502594, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:58:34.430092", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02434754371643, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:58:44.461707", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.031615495681763, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:58:54.514152", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.05244493484497, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:59:04.562195", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.047492265701294, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:59:14.591420", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.02927279472351, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:59:24.640194", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.048724889755249, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T16:59:34.683956", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.044313430786133, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:00:11.289818", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:00:11.340393", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T17:00:11.364952", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T17:00:12.407900", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:00:12.459853", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T17:00:12.489114", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T17:00:14.514835", + "level": "error", + "event_type": "dataset_loop_error", + "message": "� CRITICAL: Multiple consecutive read failures for dataset 'DAR' (5). Stopping dataset.", + "details": { + "dataset_id": "DAR", + "consecutive_errors": 5, + "priority": "CRITICAL" + } + }, + { + "timestamp": "2025-08-25T17:00:22.459472", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.054989337921143, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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": 4, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:00:32.484799", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.025849103927612, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:00:42.514310", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.029510736465454, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:00:52.540708", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.026397943496704, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:01:02.565270", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.024561882019043, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:01:12.588398", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.023128271102905, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:01:22.613544", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.024617195129395, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:01:32.645486", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.032470703125, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:01:42.670293", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.02480697631836, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:01:52.694531", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.024238348007202, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:02:34.628146", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:02:34.734929", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T17:03:01.202266", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 27.57894015312195, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:03:01.311390", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T17:03:19.697790", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.1% CPU", + "details": { + "duration": 18.495424032211304, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.1, + "cpu_max": 0.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:08:39.456793", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:08:39.563807", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T17:09:03.467307", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 25.015183925628662, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "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.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:09:15.572583", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 0 points saved, 0 lost, 0.1% CPU", + "details": { + "duration": 12.106275796890259, + "points_saved": 0, + "points_rate": 0.0, + "variables_saved": 0, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.1, + "cpu_max": 0.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:09:15.665661", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T17:09:25.662327", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 8 points saved, 13 lost, 0.3% CPU", + "details": { + "duration": 10.089239835739136, + "points_saved": 8, + "points_rate": 0.792923959609086, + "variables_saved": 32, + "udp_points_sent": 0, + "points_lost": 13, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 21.138360023498535, + "delay_max": 35.713003635406494, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 5.42769730091095, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:09:38.157220", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 10 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 12.490126609802246, + "points_saved": 10, + "points_rate": 0.8006323964844363, + "variables_saved": 40, + "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.02772388458251953, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:09:48.394365", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 14 lost, 0.6% CPU", + "details": { + "duration": 10.242416381835938, + "points_saved": 21, + "points_rate": 2.0502974314969005, + "variables_saved": 84, + "udp_points_sent": 0, + "points_lost": 14, + "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.029061589922223772, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:09:58.445094", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 4.7% CPU", + "details": { + "duration": 10.046866178512573, + "points_saved": 20, + "points_rate": 1.9906704881542452, + "variables_saved": 80, + "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.030731403827667238, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:10:08.533949", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.089090824127197, + "points_saved": 20, + "points_rate": 1.982339176903008, + "variables_saved": 80, + "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.03663599491119385, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:10:18.631034", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.100711584091187, + "points_saved": 20, + "points_rate": 1.9800585170158091, + "variables_saved": 80, + "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.03196736574172974, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:10:28.686569", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.055535078048706, + "points_saved": 20, + "points_rate": 1.988954326623565, + "variables_saved": 80, + "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.029886150360107423, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:10:38.736219", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.049026012420654, + "points_saved": 21, + "points_rate": 2.0897547656901154, + "variables_saved": 84, + "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.030838114874703542, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:10:48.790467", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.054872035980225, + "points_saved": 20, + "points_rate": 1.9890854829810123, + "variables_saved": 80, + "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.027196335792541503, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:10:58.838791", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.048323631286621, + "points_saved": 20, + "points_rate": 1.9903817526067413, + "variables_saved": 80, + "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.02788175344467163, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:11:08.888184", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.04939341545105, + "points_saved": 20, + "points_rate": 1.990169871273005, + "variables_saved": 80, + "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.02797722816467285, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:11:18.936127", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.047438621520996, + "points_saved": 20, + "points_rate": 1.9905570716462233, + "variables_saved": 80, + "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.02613908052444458, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:11:28.983807", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.048184633255005, + "points_saved": 20, + "points_rate": 1.99040928585338, + "variables_saved": 80, + "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.02947089672088623, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:11:39.033298", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.049490928649902, + "points_saved": 20, + "points_rate": 1.9901505600629361, + "variables_saved": 80, + "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.028246486186981203, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:11:49.084350", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.051051378250122, + "points_saved": 20, + "points_rate": 1.989841584461384, + "variables_saved": 80, + "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.027926814556121827, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:11:59.135119", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.050769329071045, + "points_saved": 20, + "points_rate": 1.9898974242848857, + "variables_saved": 80, + "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.028401732444763184, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:12:09.221660", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.086540937423706, + "points_saved": 20, + "points_rate": 1.9828403140460935, + "variables_saved": 80, + "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.03580014705657959, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:12:19.318417", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.096756935119629, + "points_saved": 21, + "points_rate": 2.0798757596070807, + "variables_saved": 84, + "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.03949709165663946, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:12:29.393052", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.074634552001953, + "points_saved": 20, + "points_rate": 1.9851836706102413, + "variables_saved": 80, + "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.03723390102386474, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:12:39.492484", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.2% CPU", + "details": { + "duration": 10.099432468414307, + "points_saved": 20, + "points_rate": 1.9803092958489936, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.2, + "cpu_max": 1.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035366272926330565, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:12:49.596443", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 4.3% CPU", + "details": { + "duration": 10.100447177886963, + "points_saved": 20, + "points_rate": 1.9801103503403545, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 4.3, + "cpu_max": 4.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03621121644973755, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:12:59.823065", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 6.0% CPU", + "details": { + "duration": 10.23013424873352, + "points_saved": 20, + "points_rate": 1.955008557436671, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 6.0, + "cpu_max": 6.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03761492967605591, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:13:09.919444", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 6.0% CPU", + "details": { + "duration": 10.095837354660034, + "points_saved": 21, + "points_rate": 2.0800652053201736, + "variables_saved": 84, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 6.0, + "cpu_max": 6.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03378362882704962, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:13:20.029506", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 4.5% CPU", + "details": { + "duration": 10.11006498336792, + "points_saved": 20, + "points_rate": 1.9782266516488296, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 4.5, + "cpu_max": 4.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03537640571594238, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:13:30.111596", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.2% CPU", + "details": { + "duration": 10.08262825012207, + "points_saved": 20, + "points_rate": 1.9836097794994931, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.2, + "cpu_max": 1.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03900591135025024, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:13:40.195862", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.083762645721436, + "points_saved": 20, + "points_rate": 1.983386628847918, + "variables_saved": 80, + "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.0382614254951477, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:13:50.296297", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.2% CPU", + "details": { + "duration": 10.100938558578491, + "points_saved": 20, + "points_rate": 1.980014023846771, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.2, + "cpu_max": 1.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.030981802940368654, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:14:00.339596", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.043298721313477, + "points_saved": 20, + "points_rate": 1.9913775896714911, + "variables_saved": 80, + "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.028116655349731446, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:14:10.383816", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.044220447540283, + "points_saved": 20, + "points_rate": 1.9911948472713754, + "variables_saved": 80, + "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.02919684648513794, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:14:20.432603", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.048786640167236, + "points_saved": 20, + "points_rate": 1.9902900435815354, + "variables_saved": 80, + "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.028285491466522216, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:14:30.483425", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.050822257995605, + "points_saved": 21, + "points_rate": 2.089381292490187, + "variables_saved": 84, + "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.03052014396304176, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:14:40.529327", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.045901536941528, + "points_saved": 20, + "points_rate": 1.9908616390927711, + "variables_saved": 80, + "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.02844921350479126, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:14:50.572572", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.043245315551758, + "points_saved": 20, + "points_rate": 1.991388178981391, + "variables_saved": 80, + "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.027944135665893554, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:15:00.616292", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.043720245361328, + "points_saved": 20, + "points_rate": 1.9912940137133908, + "variables_saved": 80, + "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.03084747791290283, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:15:10.659476", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.043183326721191, + "points_saved": 20, + "points_rate": 1.991400470285891, + "variables_saved": 80, + "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.029258477687835693, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:15:20.704604", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.045128107070923, + "points_saved": 20, + "points_rate": 1.9910149265216126, + "variables_saved": 80, + "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.03279041051864624, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:15:30.776740", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.07161808013916, + "points_saved": 20, + "points_rate": 1.9857782375047783, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03885016441345215, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:15:40.878290", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.102068185806274, + "points_saved": 20, + "points_rate": 1.979792615941816, + "variables_saved": 80, + "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.03737715482711792, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:15:50.975218", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.4% CPU", + "details": { + "duration": 10.096928358078003, + "points_saved": 20, + "points_rate": 1.9808004266960149, + "variables_saved": 80, + "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.036489105224609374, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:16:01.073663", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 1.4% CPU", + "details": { + "duration": 10.097942352294922, + "points_saved": 21, + "points_rate": 2.0796315989294003, + "variables_saved": 84, + "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.03545036770048596, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:16:11.169728", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.5% CPU", + "details": { + "duration": 10.096567630767822, + "points_saved": 20, + "points_rate": 1.9808711961729357, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.5, + "cpu_max": 1.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036473751068115234, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:16:21.259783", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.4% CPU", + "details": { + "duration": 10.090054750442505, + "points_saved": 20, + "points_rate": 1.982149799447113, + "variables_saved": 80, + "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.03642573356628418, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:16:31.361217", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 4.8% CPU", + "details": { + "duration": 10.101434230804443, + "points_saved": 20, + "points_rate": 1.979916865568432, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 4.8, + "cpu_max": 4.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035681378841400144, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:16:41.443021", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.4% CPU", + "details": { + "duration": 10.081803798675537, + "points_saved": 20, + "points_rate": 1.9837719915386007, + "variables_saved": 80, + "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.03695224523544312, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:16:51.517853", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.7% CPU", + "details": { + "duration": 10.074329376220703, + "points_saved": 20, + "points_rate": 1.9852438066207863, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.7, + "cpu_max": 1.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03749772310256958, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:17:01.594145", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.076794862747192, + "points_saved": 20, + "points_rate": 1.9847580775845513, + "variables_saved": 80, + "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.035560321807861325, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:17:11.638917", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.044771671295166, + "points_saved": 21, + "points_rate": 2.0906398559572508, + "variables_saved": 84, + "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.028818981988089427, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:17:21.689674", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.050756454467773, + "points_saved": 20, + "points_rate": 1.9898999732611746, + "variables_saved": 80, + "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.0294897198677063, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:17:31.734221", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.04454755783081, + "points_saved": 20, + "points_rate": 1.991130002108242, + "variables_saved": 80, + "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.029059958457946778, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:17:41.783815", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.049593925476074, + "points_saved": 20, + "points_rate": 1.9901301632993644, + "variables_saved": 80, + "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.029081428050994874, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:17:51.828929", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.045113563537598, + "points_saved": 20, + "points_rate": 1.9910178091562143, + "variables_saved": 80, + "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.030641329288482667, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:18:01.876284", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.04735517501831, + "points_saved": 20, + "points_rate": 1.9905736038602369, + "variables_saved": 80, + "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.029960834980010988, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:18:11.966192", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.089908599853516, + "points_saved": 20, + "points_rate": 1.9821785105457108, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03616311550140381, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:18:22.033738", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 7.1% CPU", + "details": { + "duration": 10.067026138305664, + "points_saved": 20, + "points_rate": 1.9866840241825487, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 7.1, + "cpu_max": 7.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03431116342544556, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:18:32.075665", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.042446613311768, + "points_saved": 20, + "points_rate": 1.9915465593303723, + "variables_saved": 80, + "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.03266055583953857, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:18:42.118703", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.6% CPU", + "details": { + "duration": 10.043038129806519, + "points_saved": 20, + "points_rate": 1.991429260896902, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.6, + "cpu_max": 1.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.029533529281616212, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:18:52.164240", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.045537233352661, + "points_saved": 20, + "points_rate": 1.9909338381223711, + "variables_saved": 80, + "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.031144678592681885, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:19:02.207844", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.043604135513306, + "points_saved": 20, + "points_rate": 1.991317034218996, + "variables_saved": 80, + "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.02871556282043457, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:19:12.256369", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.048524379730225, + "points_saved": 21, + "points_rate": 2.089859088401176, + "variables_saved": 84, + "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.02808204151335217, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:19:22.298005", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.04163646697998, + "points_saved": 20, + "points_rate": 1.99170723474866, + "variables_saved": 80, + "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.028442585468292238, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:19:32.340400", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.042394638061523, + "points_saved": 20, + "points_rate": 1.9915568667455381, + "variables_saved": 80, + "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.02781554460525513, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:19:42.390679", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.050279378890991, + "points_saved": 20, + "points_rate": 1.9899944315982707, + "variables_saved": 80, + "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.028417634963989257, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:19:52.442601", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.051922082901001, + "points_saved": 20, + "points_rate": 1.9896692229659592, + "variables_saved": 80, + "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.03244236707687378, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:20:02.517997", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 6.5% CPU", + "details": { + "duration": 10.075395584106445, + "points_saved": 20, + "points_rate": 1.985033722303593, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 6.5, + "cpu_max": 6.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03427244424819946, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:20:12.603404", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.08540678024292, + "points_saved": 20, + "points_rate": 1.9830632948964975, + "variables_saved": 80, + "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.029999172687530516, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:20:22.646557", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.043152570724487, + "points_saved": 20, + "points_rate": 1.9914065687202092, + "variables_saved": 80, + "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.03326544761657715, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:20:32.690288", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.043731927871704, + "points_saved": 20, + "points_rate": 1.9912916975112913, + "variables_saved": 80, + "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.02883838415145874, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:20:42.734821", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.044532299041748, + "points_saved": 20, + "points_rate": 1.9911330268615899, + "variables_saved": 80, + "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.034455394744873045, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:20:52.783602", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.048781633377075, + "points_saved": 20, + "points_rate": 1.9902910352405216, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.030227303504943848, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:21:02.826625", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.043022871017456, + "points_saved": 20, + "points_rate": 1.991432286559535, + "variables_saved": 80, + "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.026912248134613036, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:21:12.869174", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.042548418045044, + "points_saved": 21, + "points_rate": 2.091102688861919, + "variables_saved": 84, + "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.02914753414335705, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:21:22.916553", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.7% CPU", + "details": { + "duration": 10.047379732131958, + "points_saved": 20, + "points_rate": 1.9905687386373114, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.7, + "cpu_max": 1.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02868204116821289, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:21:32.959370", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.042816162109375, + "points_saved": 20, + "points_rate": 1.9914732757389473, + "variables_saved": 80, + "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.03047678470611572, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:21:43.006794", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.047424793243408, + "points_saved": 20, + "points_rate": 1.990559811251277, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.028786826133728027, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:21:53.050533", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.043738842010498, + "points_saved": 20, + "points_rate": 1.9912903267003421, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027559375762939452, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:22:03.094236", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.043703079223633, + "points_saved": 20, + "points_rate": 1.9912974171221693, + "variables_saved": 80, + "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.027428603172302245, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:22:13.137154", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.04291820526123, + "points_saved": 20, + "points_rate": 1.9914530409619893, + "variables_saved": 80, + "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.029730796813964844, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:22:23.190399", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.053244352340698, + "points_saved": 20, + "points_rate": 1.989407528460541, + "variables_saved": 80, + "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.03056877851486206, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:22:33.233817", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 3.7% CPU", + "details": { + "duration": 10.043418169021606, + "points_saved": 20, + "points_rate": 1.99135390595295, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 3.7, + "cpu_max": 3.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03272182941436767, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:22:55.265985", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:22:55.326549", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T17:22:55.367193", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T17:22:56.426776", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:22:56.477694", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T17:22:56.509822", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T17:23:06.477416", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.055935621261597, + "points_saved": 20, + "points_rate": 1.80898303726897, + "variables_saved": 80, + "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.029451513290405275, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:23:16.512001", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.03458571434021, + "points_saved": 20, + "points_rate": 1.9931066981089645, + "variables_saved": 80, + "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.026733148097991943, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:23:26.572614", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 1.7% CPU", + "details": { + "duration": 10.060612440109253, + "points_saved": 21, + "points_rate": 2.0873480739878247, + "variables_saved": 84, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.7, + "cpu_max": 1.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.031214611870901927, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:23:36.605645", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.7% CPU", + "details": { + "duration": 10.033031463623047, + "points_saved": 20, + "points_rate": 1.9934154569846991, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.7, + "cpu_max": 1.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027828288078308106, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:23:46.640763", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.035117626190186, + "points_saved": 20, + "points_rate": 1.9930010534010019, + "variables_saved": 80, + "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.028390753269195556, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:23:56.674570", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.033807516098022, + "points_saved": 20, + "points_rate": 1.9932612787232, + "variables_saved": 80, + "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.02843524217605591, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:24:06.709635", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.035064935684204, + "points_saved": 20, + "points_rate": 1.9930115179305885, + "variables_saved": 80, + "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.02979620695114136, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:24:16.741988", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.032352447509766, + "points_saved": 20, + "points_rate": 1.9935503766082707, + "variables_saved": 80, + "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.026867055892944337, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:24:26.775205", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.033217191696167, + "points_saved": 20, + "points_rate": 1.9933785562374433, + "variables_saved": 80, + "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.028748273849487305, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:24:36.808738", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.033028364181519, + "points_saved": 20, + "points_rate": 1.9934160727982329, + "variables_saved": 80, + "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.02703886032104492, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:24:46.847431", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.039197206497192, + "points_saved": 20, + "points_rate": 1.9921911671439576, + "variables_saved": 80, + "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.02932407855987549, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:24:56.883085", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.035654783248901, + "points_saved": 20, + "points_rate": 1.99289437829041, + "variables_saved": 80, + "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.030709171295166017, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:25:06.915227", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.032141208648682, + "points_saved": 20, + "points_rate": 1.9935923532214692, + "variables_saved": 80, + "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.033458280563354495, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:25:16.948200", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.032973289489746, + "points_saved": 20, + "points_rate": 1.9934270153944718, + "variables_saved": 80, + "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.02803119421005249, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:25:26.980702", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.032501697540283, + "points_saved": 20, + "points_rate": 1.993520719254251, + "variables_saved": 80, + "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.027015507221221924, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:25:31.795353", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'DAR_Brix' created and started", + "details": { + "session_id": "DAR_1756135531795_2", + "variables": [ + "HMI_Instrument.QTM306.PVFiltered", + "HMI_Instrument.QTM307.PVFiltered" + ], + "time_window": 60, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-25T17:25:37.014274", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.033572912216187, + "points_saved": 20, + "points_rate": 1.9933078849359214, + "variables_saved": 80, + "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.03101691007614136, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:25:47.082206", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 2.3% CPU", + "details": { + "duration": 10.067931890487671, + "points_saved": 20, + "points_rate": 1.9865052939915389, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 2.3, + "cpu_max": 2.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.034396696090698245, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:25:57.144374", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.062167644500732, + "points_saved": 20, + "points_rate": 1.9876432898561953, + "variables_saved": 80, + "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.03469760417938232, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:26:07.194360", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.049482822418213, + "points_saved": 21, + "points_rate": 2.0896597736505966, + "variables_saved": 84, + "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.037055378868466333, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:26:17.239436", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.045579671859741, + "points_saved": 20, + "points_rate": 1.9909254272329506, + "variables_saved": 80, + "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.03620785474777222, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:26:27.301651", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.062214612960815, + "points_saved": 20, + "points_rate": 1.9876340119240392, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03425233364105225, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:26:37.391608", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.089956760406494, + "points_saved": 20, + "points_rate": 1.9821690493740292, + "variables_saved": 80, + "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.034175407886505124, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:26:47.447664", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.056056499481201, + "points_saved": 20, + "points_rate": 1.9888511963941147, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03516974449157715, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:26:57.495406", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.047187328338623, + "points_saved": 20, + "points_rate": 1.9906068580595628, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03876215219497681, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:27:07.544442", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.049081802368164, + "points_saved": 20, + "points_rate": 1.9902315846694376, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.039011025428771974, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:27:17.610715", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.066781520843506, + "points_saved": 20, + "points_rate": 1.9867322995526955, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03739151954650879, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:27:27.659276", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.048560857772827, + "points_saved": 20, + "points_rate": 1.990334763662149, + "variables_saved": 80, + "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.0346158504486084, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:27:37.714694", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.055418729782104, + "points_saved": 20, + "points_rate": 1.9889773402239401, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03628648519515991, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:27:47.777425", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.062730312347412, + "points_saved": 21, + "points_rate": 2.0869087561883752, + "variables_saved": 84, + "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.03803663026718866, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:27:57.822394", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.04496955871582, + "points_saved": 20, + "points_rate": 1.9910463524149158, + "variables_saved": 80, + "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.03640248775482178, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:28:07.862539", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.040144205093384, + "points_saved": 20, + "points_rate": 1.9920032612533556, + "variables_saved": 80, + "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.03605753183364868, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:28:17.929673", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.067134380340576, + "points_saved": 20, + "points_rate": 1.986662663315257, + "variables_saved": 80, + "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.03305186033248901, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:28:27.968277", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.037962675094604, + "points_saved": 20, + "points_rate": 1.9924361792679715, + "variables_saved": 80, + "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.034387600421905515, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:28:38.022950", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.054747343063354, + "points_saved": 20, + "points_rate": 1.9891101504204134, + "variables_saved": 80, + "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.040450882911682126, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:28:48.072880", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.050496816635132, + "points_saved": 20, + "points_rate": 1.9899513790101298, + "variables_saved": 80, + "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.03597996234893799, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:28:58.126941", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.053466320037842, + "points_saved": 20, + "points_rate": 1.9893636048829693, + "variables_saved": 80, + "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.03447105884552002, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:29:08.173358", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.047012090682983, + "points_saved": 20, + "points_rate": 1.9906415777628894, + "variables_saved": 80, + "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.03476773500442505, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:29:18.223012", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.049654006958008, + "points_saved": 20, + "points_rate": 1.9901182653803546, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03414672613143921, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:29:28.280197", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.056646585464478, + "points_saved": 20, + "points_rate": 1.9887344981285606, + "variables_saved": 80, + "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.035137951374053955, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:29:38.337113", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.057454586029053, + "points_saved": 20, + "points_rate": 1.9885747262316524, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036700856685638425, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:29:48.397228", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.060114860534668, + "points_saved": 21, + "points_rate": 2.087451315529404, + "variables_saved": 84, + "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.0367929254259382, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:29:58.446003", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.048271179199219, + "points_saved": 20, + "points_rate": 1.9903921424216449, + "variables_saved": 80, + "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.03424969911575317, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:30:08.494987", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.4% CPU", + "details": { + "duration": 10.048941135406494, + "points_saved": 20, + "points_rate": 1.9902594443042254, + "variables_saved": 80, + "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.035100889205932614, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:30:18.549898", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.055457353591919, + "points_saved": 20, + "points_rate": 1.9889697004041076, + "variables_saved": 80, + "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.03600543737411499, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:30:28.605132", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.055234432220459, + "points_saved": 20, + "points_rate": 1.989013795234158, + "variables_saved": 80, + "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.03879892826080322, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:30:38.658576", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.052847623825073, + "points_saved": 20, + "points_rate": 1.9894860390204612, + "variables_saved": 80, + "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.03470414876937866, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:30:48.700240", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.042259693145752, + "points_saved": 20, + "points_rate": 1.991583628697713, + "variables_saved": 80, + "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.038837218284606935, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:30:58.762216", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.061422109603882, + "points_saved": 20, + "points_rate": 1.987790570968044, + "variables_saved": 80, + "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.03439762592315674, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:31:08.807399", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.045737504959106, + "points_saved": 20, + "points_rate": 1.9908941469082726, + "variables_saved": 80, + "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.03812364339828491, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:31:18.860789", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.053389549255371, + "points_saved": 20, + "points_rate": 1.9893787962768585, + "variables_saved": 80, + "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.033163022994995114, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:31:28.930560", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.06977128982544, + "points_saved": 20, + "points_rate": 1.9861424281014333, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.036552703380584715, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:31:38.975201", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.044641017913818, + "points_saved": 21, + "points_rate": 2.090667049479237, + "variables_saved": 84, + "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.037394114903041294, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:31:49.015906", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.04070520401001, + "points_saved": 20, + "points_rate": 1.9918919631274996, + "variables_saved": 80, + "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.0326079249382019, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:31:59.048114", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.03220820426941, + "points_saved": 20, + "points_rate": 1.9935790399055509, + "variables_saved": 80, + "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.02855013608932495, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:32:09.081929", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.033814191818237, + "points_saved": 20, + "points_rate": 1.9932599525620456, + "variables_saved": 80, + "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.02831428050994873, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:32:19.124077", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.041578531265259, + "points_saved": 20, + "points_rate": 1.9917187260676594, + "variables_saved": 80, + "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.02984144687652588, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:32:29.156478", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.032970428466797, + "points_saved": 20, + "points_rate": 1.993427583844312, + "variables_saved": 80, + "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.03421405553817749, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:32:39.188130", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.031652688980103, + "points_saved": 20, + "points_rate": 1.9936894368333, + "variables_saved": 80, + "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.030256223678588868, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:32:49.223742", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.035611391067505, + "points_saved": 20, + "points_rate": 1.9929029952078052, + "variables_saved": 80, + "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.027917611598968505, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:32:59.260248", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.036506175994873, + "points_saved": 20, + "points_rate": 1.9927253218690408, + "variables_saved": 80, + "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.029486525058746337, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:33:09.293225", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.032976865768433, + "points_saved": 20, + "points_rate": 1.9934263048326273, + "variables_saved": 80, + "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.0273770809173584, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:33:19.327023", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.033798217773438, + "points_saved": 20, + "points_rate": 1.9932631258791773, + "variables_saved": 80, + "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.0287591814994812, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:33:29.363509", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.035942792892456, + "points_saved": 20, + "points_rate": 1.9928371865734604, + "variables_saved": 80, + "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.029972684383392335, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:33:39.396830", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.03386402130127, + "points_saved": 20, + "points_rate": 1.9932500537720308, + "variables_saved": 80, + "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.027953910827636718, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:33:49.429915", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.033085107803345, + "points_saved": 20, + "points_rate": 1.9934047987338186, + "variables_saved": 80, + "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.028903627395629884, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:34:09.564113", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:34:09.623959", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T17:34:09.670159", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T17:34:10.734933", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:34:10.788729", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T17:34:10.822842", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T17:34:20.788109", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.059304237365723, + "points_saved": 20, + "points_rate": 1.8084320288817655, + "variables_saved": 80, + "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.029610490798950194, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:34:30.847831", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 3.0% CPU", + "details": { + "duration": 10.05972170829773, + "points_saved": 21, + "points_rate": 2.0875328969267826, + "variables_saved": 84, + "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.03525974636986142, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:34:40.908486", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.06015157699585, + "points_saved": 20, + "points_rate": 1.9880416161654273, + "variables_saved": 80, + "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.03879992961883545, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:34:50.953707", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.045207262039185, + "points_saved": 20, + "points_rate": 1.9909992375747143, + "variables_saved": 80, + "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.035352814197540286, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:35:01.007545", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.05435585975647, + "points_saved": 20, + "points_rate": 1.9891875997797066, + "variables_saved": 80, + "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.0376049280166626, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:35:11.069988", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.061939716339111, + "points_saved": 20, + "points_rate": 1.9876883149600806, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03681162595748901, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:35:21.115814", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.4% CPU", + "details": { + "duration": 10.046329021453857, + "points_saved": 20, + "points_rate": 1.9907769253117389, + "variables_saved": 80, + "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.0348502516746521, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:35:31.182312", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.4% CPU", + "details": { + "duration": 10.066497564315796, + "points_saved": 20, + "points_rate": 1.986788341448267, + "variables_saved": 80, + "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.03132296800613403, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:35:41.218163", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.03585171699524, + "points_saved": 20, + "points_rate": 1.9928552716787304, + "variables_saved": 80, + "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.02808816432952881, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:35:51.252754", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.03407621383667, + "points_saved": 20, + "points_rate": 1.9932079021306057, + "variables_saved": 80, + "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.030920612812042236, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:36:01.284990", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.032750606536865, + "points_saved": 20, + "points_rate": 1.9934712607097944, + "variables_saved": 80, + "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.030264341831207277, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:36:11.327844", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.042854309082031, + "points_saved": 20, + "points_rate": 1.9914657112882188, + "variables_saved": 80, + "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.030423247814178468, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:36:21.359152", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.031307935714722, + "points_saved": 20, + "points_rate": 1.9937579554101306, + "variables_saved": 80, + "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.0271195650100708, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:36:31.394562", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.03490400314331, + "points_saved": 20, + "points_rate": 1.9930434804095032, + "variables_saved": 80, + "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.027383363246917723, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:36:41.428434", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.034377813339233, + "points_saved": 20, + "points_rate": 1.9931479930338016, + "variables_saved": 80, + "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.027056872844696045, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:36:51.462333", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 1.2% CPU", + "details": { + "duration": 10.03389859199524, + "points_saved": 21, + "points_rate": 2.0929053455606184, + "variables_saved": 84, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.2, + "cpu_max": 1.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02848415147690546, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:37:01.495344", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.032507419586182, + "points_saved": 20, + "points_rate": 1.9935195822486573, + "variables_saved": 80, + "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.030461299419403075, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:37:11.537589", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.042748928070068, + "points_saved": 20, + "points_rate": 1.991486608223256, + "variables_saved": 80, + "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.032182729244232176, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:37:21.605501", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.4% CPU", + "details": { + "duration": 10.067912101745605, + "points_saved": 20, + "points_rate": 1.9865091985191585, + "variables_saved": 80, + "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.037774860858917236, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:37:31.674323", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.06818699836731, + "points_saved": 20, + "points_rate": 1.9864549598893293, + "variables_saved": 80, + "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.034643244743347165, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:37:41.718881", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.045193195343018, + "points_saved": 20, + "points_rate": 1.9910020256526337, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035854780673980714, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:37:51.765785", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.046903848648071, + "points_saved": 20, + "points_rate": 1.9906630242799859, + "variables_saved": 80, + "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.03676172494888306, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:38:01.806063", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.04027771949768, + "points_saved": 20, + "points_rate": 1.9919767718338182, + "variables_saved": 80, + "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.03639333248138428, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:38:11.867557", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.060973405838013, + "points_saved": 20, + "points_rate": 1.9878792233358589, + "variables_saved": 80, + "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.03974494934082031, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:38:21.919235", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.051487684249878, + "points_saved": 20, + "points_rate": 1.9897552111951435, + "variables_saved": 80, + "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.033957505226135255, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:38:31.965923", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.047398567199707, + "points_saved": 20, + "points_rate": 1.9905650070746785, + "variables_saved": 80, + "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.03447114229202271, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:38:42.014440", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.048517942428589, + "points_saved": 20, + "points_rate": 1.9903432640103615, + "variables_saved": 80, + "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.03576241731643677, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:38:52.072106", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.05766487121582, + "points_saved": 21, + "points_rate": 2.087959806664488, + "variables_saved": 84, + "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.03421649478730701, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:39:02.138459", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.066353559494019, + "points_saved": 20, + "points_rate": 1.9868167635674912, + "variables_saved": 80, + "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.03697726726531982, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:39:12.209148", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.070688486099243, + "points_saved": 20, + "points_rate": 1.985961538538936, + "variables_saved": 80, + "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.038282501697540286, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:39:22.275504", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.066356182098389, + "points_saved": 20, + "points_rate": 1.9868162459388445, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03343244791030884, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:39:32.340236", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.064732074737549, + "points_saved": 20, + "points_rate": 1.9871368508854743, + "variables_saved": 80, + "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.03792253732681274, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:39:42.405364", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.065128326416016, + "points_saved": 20, + "points_rate": 1.9870586197604485, + "variables_saved": 80, + "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.033228158950805664, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:39:52.451382", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.04601764678955, + "points_saved": 20, + "points_rate": 1.990838629115039, + "variables_saved": 80, + "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.03567999601364136, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:40:02.516544", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.065162181854248, + "points_saved": 20, + "points_rate": 1.987051936038999, + "variables_saved": 80, + "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.03433847427368164, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:40:12.573558", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.056464672088623, + "points_saved": 20, + "points_rate": 1.9887704727397215, + "variables_saved": 80, + "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.03497413396835327, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:40:22.635378", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.062369585037231, + "points_saved": 21, + "points_rate": 2.0869835700754873, + "variables_saved": 84, + "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.033566554387410484, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:40:32.693910", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.058531761169434, + "points_saved": 20, + "points_rate": 1.988361768385443, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033813762664794925, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:40:42.752943", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.059033155441284, + "points_saved": 20, + "points_rate": 1.9882626581443663, + "variables_saved": 80, + "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.035937023162841794, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:40:52.793233", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.040289640426636, + "points_saved": 20, + "points_rate": 1.991974406741333, + "variables_saved": 80, + "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.0346508264541626, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:41:02.845781", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.052547931671143, + "points_saved": 20, + "points_rate": 1.9895453506855536, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03506578207015991, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:41:12.899600", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.053819179534912, + "points_saved": 20, + "points_rate": 1.989293784068752, + "variables_saved": 80, + "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.038512897491455075, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:41:22.950384", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.05078411102295, + "points_saved": 20, + "points_rate": 1.9898944976905328, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03683680295944214, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:41:33.009436", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.059051752090454, + "points_saved": 20, + "points_rate": 1.988258982348275, + "variables_saved": 80, + "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.038869929313659665, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:41:43.049590", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.040154695510864, + "points_saved": 20, + "points_rate": 1.9920011799163178, + "variables_saved": 80, + "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.04879312515258789, + "csv_write_time_avg": 4.923343658447265e-06 + } + }, + { + "timestamp": "2025-08-25T17:41:49.706547", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'CTS306 Conductivimeter' created and started", + "details": { + "session_id": "CTS306_1756136509706_2", + "variables": [ + "CTS306_PEW", + "HMI_Instrument.CTS306.PVFiltered" + ], + "time_window": 60, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-25T17:41:53.113984", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.064393758773804, + "points_saved": 20, + "points_rate": 1.9872036487607279, + "variables_saved": 80, + "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.061228609085083006, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:42:03.181265", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 7.6% CPU", + "details": { + "duration": 10.067281007766724, + "points_saved": 20, + "points_rate": 1.9866337280712005, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 7.6, + "cpu_max": 7.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03665280342102051, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:42:13.223116", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.4% CPU", + "details": { + "duration": 10.041345357894897, + "points_saved": 20, + "points_rate": 1.9917649764207364, + "variables_saved": 80, + "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.03307737112045288, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:42:23.292065", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.069453954696655, + "points_saved": 21, + "points_rate": 2.0855152716801544, + "variables_saved": 84, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03582734153384254, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:42:33.340486", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.2% CPU", + "details": { + "duration": 10.047857999801636, + "points_saved": 20, + "points_rate": 1.9904739896199606, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.2, + "cpu_max": 1.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.031384944915771484, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:42:43.413390", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.6% CPU", + "details": { + "duration": 10.07346773147583, + "points_saved": 20, + "points_rate": 1.9854136165550478, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.6, + "cpu_max": 1.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.033938395977020266, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:42:53.481847", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.068456649780273, + "points_saved": 20, + "points_rate": 1.9864017590458083, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0359613299369812, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:43:03.534583", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.052736520767212, + "points_saved": 20, + "points_rate": 1.9895080268624832, + "variables_saved": 80, + "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.03828836679458618, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:43:13.587013", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.052430152893066, + "points_saved": 20, + "points_rate": 1.9895686610907757, + "variables_saved": 80, + "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.03457332849502563, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:43:23.631674", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.044660568237305, + "points_saved": 20, + "points_rate": 1.9911076003148322, + "variables_saved": 80, + "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.032776367664337155, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:43:33.680969", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.04865288734436, + "points_saved": 20, + "points_rate": 1.9903165353824421, + "variables_saved": 80, + "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.03736256361007691, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:43:43.723371", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.043044328689575, + "points_saved": 20, + "points_rate": 1.9914280317240836, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.032874035835266116, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:43:53.784444", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.06107234954834, + "points_saved": 20, + "points_rate": 1.9878596739141665, + "variables_saved": 80, + "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.037186837196350096, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:44:01.698555", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'CTS306 Conductivimeter' created and started", + "details": { + "session_id": "CTS306_1756136641698_3", + "variables": [ + "CTS306_PEW", + "HMI_Instrument.CTS306.PVFiltered" + ], + "time_window": 60, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-25T17:44:03.387664", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'CTS306 Conductivimeter' created and started", + "details": { + "session_id": "CTS306_1756136643387_4", + "variables": [ + "CTS306_PEW", + "HMI_Instrument.CTS306.PVFiltered" + ], + "time_window": 60, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-25T17:44:03.888517", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.08557677268982, + "points_saved": 21, + "points_rate": 2.0821813638724906, + "variables_saved": 84, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03817113240559896, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:44:13.996930", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.126206874847412, + "points_saved": 20, + "points_rate": 1.975073218154194, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.032414793968200684, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:44:24.060993", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.4% CPU", + "details": { + "duration": 10.064222812652588, + "points_saved": 20, + "points_rate": 1.9872374024605561, + "variables_saved": 80, + "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.032826018333435056, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:44:34.121929", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.06147837638855, + "points_saved": 20, + "points_rate": 1.9877794546509542, + "variables_saved": 80, + "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.03812916278839111, + "csv_write_time_avg": 5.352497100830078e-06 + } + }, + { + "timestamp": "2025-08-25T17:44:44.166685", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.044215679168701, + "points_saved": 20, + "points_rate": 1.9911957925673773, + "variables_saved": 80, + "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.029564857482910156, + "csv_write_time_avg": 3.62396240234375e-06 + } + }, + { + "timestamp": "2025-08-25T17:44:54.228129", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.061882257461548, + "points_saved": 20, + "points_rate": 1.9876996657527655, + "variables_saved": 80, + "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.036080145835876466, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:45:04.296078", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.068051099777222, + "points_saved": 20, + "points_rate": 1.9864817730655484, + "variables_saved": 80, + "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.03895697593688965, + "csv_write_time_avg": 9.131431579589843e-06 + } + }, + { + "timestamp": "2025-08-25T17:45:14.364516", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.068438053131104, + "points_saved": 20, + "points_rate": 1.9864054279780128, + "variables_saved": 80, + "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.03247798681259155, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:45:24.432167", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.06765103340149, + "points_saved": 21, + "points_rate": 2.0858887470700176, + "variables_saved": 84, + "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.03391496340433756, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:45:34.464489", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.03232216835022, + "points_saved": 20, + "points_rate": 1.9935563934634817, + "variables_saved": 80, + "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.029894328117370604, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:45:44.501030", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.03654170036316, + "points_saved": 20, + "points_rate": 1.9927182686120186, + "variables_saved": 80, + "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.028907859325408937, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:45:54.536536", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.035002946853638, + "points_saved": 20, + "points_rate": 1.9930238292825588, + "variables_saved": 80, + "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.028958702087402345, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:47:24.048921", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:47:24.109571", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 3, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-25T17:47:24.153905", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-25T17:47:34.110617", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 11.065715551376343, + "points_saved": 20, + "points_rate": 1.807384249770673, + "variables_saved": 80, + "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.03463048934936523, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:47:44.156243", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 21 points saved, 0 lost, 1.6% CPU", + "details": { + "duration": 10.046130895614624, + "points_saved": 21, + "points_rate": 2.090356995962197, + "variables_saved": 84, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.6, + "cpu_max": 1.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03649721826825823, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:47:54.190528", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.033780574798584, + "points_saved": 20, + "points_rate": 1.9932666307486473, + "variables_saved": 80, + "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.0368921160697937, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:48:04.240777", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 4.5% CPU", + "details": { + "duration": 10.050752878189087, + "points_saved": 20, + "points_rate": 1.9899006813113027, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 4.5, + "cpu_max": 4.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03746839761734009, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:48:14.272173", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.031396627426147, + "points_saved": 20, + "points_rate": 1.993740327774438, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.035648131370544435, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:48:24.320103", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.047929525375366, + "points_saved": 20, + "points_rate": 1.9904598205522195, + "variables_saved": 80, + "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.034035670757293704, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:48:34.355614", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.035009384155273, + "points_saved": 20, + "points_rate": 1.9930225507889308, + "variables_saved": 80, + "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.034169900417327884, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:48:44.401340", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.046227216720581, + "points_saved": 20, + "points_rate": 1.9907970991052955, + "variables_saved": 80, + "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.03281612396240234, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:48:54.426875", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.025535345077515, + "points_saved": 20, + "points_rate": 1.9949059388454398, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03444175720214844, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:49:04.484075", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.056698083877563, + "points_saved": 20, + "points_rate": 1.9887243142024003, + "variables_saved": 80, + "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.02769085168838501, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:49:14.508038", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.02446460723877, + "points_saved": 20, + "points_rate": 1.9951190196788957, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02729865312576294, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-25T17:49:42.017711", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:49:43.055207", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:53:59.376653", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} + }, + { + "timestamp": "2025-08-25T17:54:00.414879", + "level": "info", + "event_type": "application_started", + "message": "Application initialization completed successfully", + "details": {} } ], - "last_updated": "2025-08-25T16:02:07.351853", + "last_updated": "2025-08-25T17:54:00.414879", "total_entries": 1000 } \ No newline at end of file diff --git a/config/data/dataset_variables.json b/config/data/dataset_variables.json index 1cac3e5..c93d270 100644 --- a/config/data/dataset_variables.json +++ b/config/data/dataset_variables.json @@ -5,7 +5,7 @@ "variables": [ { "configType": "manual", - "area": "db", + "area": "DB", "db": 1011, "name": "HMI_Instrument.QTM307.PVFiltered", "offset": 1322, @@ -14,7 +14,7 @@ }, { "configType": "manual", - "area": "db", + "area": "DB", "db": 1011, "name": "HMI_Instrument.QTM306.PVFiltered", "offset": 1296, @@ -23,7 +23,7 @@ }, { "configType": "manual", - "area": "db", + "area": "DB", "db": 1011, "name": "HMI_Instrument.CTS306.PVFiltered", "offset": 1348, @@ -32,7 +32,7 @@ }, { "configType": "manual", - "area": "pew", + "area": "PEW", "type": "word", "streaming": false, "name": "CTS306_PEW", @@ -44,14 +44,14 @@ "dataset_id": "Fast", "variables": [ { - "area": "db", + "area": "DB", "configType": "symbol", "streaming": true, "symbol": "AUX Blink_2.0S", "type": "real" }, { - "area": "m", + "area": "M", "bit": 1, "configType": "manual", "name": "M50.1", @@ -60,7 +60,7 @@ "type": "bool" }, { - "area": "m", + "area": "M", "bit": 2, "configType": "manual", "name": "M50.2", diff --git a/config/data/plot_definitions.json b/config/data/plot_definitions.json index a976ed3..8c3b97c 100644 --- a/config/data/plot_definitions.json +++ b/config/data/plot_definitions.json @@ -11,6 +11,18 @@ "time_window": 60, "trigger_enabled": false, "trigger_on_true": true + }, + { + "id": "CTS306", + "line_tension": 0.4, + "name": "CTS306 Conductivimeter", + "point_hover_radius": 4, + "point_radius": 1, + "stacked": true, + "stepped": true, + "time_window": 60, + "trigger_enabled": false, + "trigger_on_true": true } ] } \ No newline at end of file diff --git a/config/data/plot_variables.json b/config/data/plot_variables.json index 71c9565..a4ea62c 100644 --- a/config/data/plot_variables.json +++ b/config/data/plot_variables.json @@ -32,22 +32,60 @@ "plot_id": "Clock", "variables": [ { - "variable_name": "AUX Blink_2.0S", "color": "#db3376", + "enabled": true, "line_width": 2, - "y_axis": "left", - "enabled": true + "variable_name": "AUX Blink_2.0S", + "y_axis": "left" }, { + "color": "#3498db", + "enabled": true, + "line_width": 2, "variable_name": "M50.1", + "y_axis": "left" + }, + { + "color": "#3edb33", + "enabled": true, + "line_width": 2, + "variable_name": "M50.2", + "y_axis": "left" + } + ] + }, + { + "plot_id": "DAR", + "variables": [ + { + "color": "#3498db", + "enabled": true, + "line_width": 2, + "variable_name": "HMI_Instrument.QTM306.PVFiltered", + "y_axis": "left" + }, + { + "color": "#e30d4d", + "enabled": true, + "line_width": 2, + "variable_name": "HMI_Instrument.QTM307.PVFiltered", + "y_axis": "left" + } + ] + }, + { + "plot_id": "CTS306", + "variables": [ + { + "variable_name": "CTS306_PEW", "color": "#3498db", "line_width": 2, "y_axis": "left", "enabled": true }, { - "variable_name": "M50.2", - "color": "#3edb33", + "variable_name": "HMI_Instrument.CTS306.PVFiltered", + "color": "#1bf38e", "line_width": 2, "y_axis": "left", "enabled": true diff --git a/config/schema/dataset-variables.schema.json b/config/schema/dataset-variables.schema.json index f703623..2c11801 100644 --- a/config/schema/dataset-variables.schema.json +++ b/config/schema/dataset-variables.schema.json @@ -38,16 +38,16 @@ "type": "string", "title": "Memory Area", "enum": [ - "db", - "mw", - "m", - "pew", - "pe", - "paw", - "pa", - "e", - "a", - "mb" + "DB", + "MW", + "M", + "PEW", + "PE", + "PAW", + "PA", + "E", + "A", + "MB" ] }, "db": { @@ -87,7 +87,8 @@ "uint", "udint", "sint", - "usint" + "usint", + "dword" ] }, "streaming": { @@ -102,6 +103,32 @@ "area", "offset", "type" + ], + "allOf": [ + { + "if": { + "properties": { + "area": { + "const": "DB" + } + } + }, + "then": { + "required": ["db"] + } + }, + { + "if": { + "properties": { + "type": { + "const": "bool" + } + } + }, + "then": { + "required": ["bit"] + } + } ] }, { diff --git a/config/schema/ui/dataset-variables.uischema.json b/config/schema/ui/dataset-variables.uischema.json index 1361b6c..b8e69ae 100644 --- a/config/schema/ui/dataset-variables.uischema.json +++ b/config/schema/ui/dataset-variables.uischema.json @@ -83,43 +83,43 @@ "ui:options": { "enumOptions": [ { - "value": "db", + "value": "DB", "label": "🗃️ DB (Data Block)" }, { - "value": "mw", + "value": "MW", "label": "📊 MW (Memory Word)" }, { - "value": "m", + "value": "M", "label": "💾 M (Memory)" }, { - "value": "pew", + "value": "PEW", "label": "📥 PEW (Process Input Word)" }, { - "value": "pe", + "value": "PE", "label": "📥 PE (Process Input)" }, { - "value": "paw", + "value": "PAW", "label": "📤 PAW (Process Output Word)" }, { - "value": "pa", + "value": "PA", "label": "📤 PA (Process Output)" }, { - "value": "e", + "value": "E", "label": "🔌 E (Input)" }, { - "value": "a", + "value": "A", "label": "🔌 A (Output)" }, { - "value": "mb", + "value": "MB", "label": "💾 MB (Memory Byte)" } ] @@ -127,8 +127,9 @@ }, "db": { "ui:widget": "updown", - "ui:help": "Data Block number (required for DB area)", - "ui:placeholder": "1011" + "ui:help": "⚠️ Data Block number (only required for DB area - will be ignored for other areas like PE, PA, MW, etc.)", + "ui:placeholder": "1011", + "ui:description": "🗃️ This field is only used when Area = 'DB (Data Block)'" }, "offset": { "ui:widget": "updown", @@ -136,7 +137,8 @@ }, "bit": { "ui:widget": "updown", - "ui:help": "Bit position (0-7) for bit-addressable areas" + "ui:help": "⚠️ Bit position (0-7) - only required for BOOL data type, will be ignored for other types", + "ui:description": "✅ This field is only used when Type = 'BOOL (1-bit boolean)'" }, "type": { "ui:widget": "select", @@ -182,6 +184,10 @@ { "value": "usint", "label": "🔢 USINT (8-bit unsigned)" + }, + { + "value": "dword", + "label": "🔢 DWORD (32-bit unsigned)" } ] } diff --git a/core/plc_client.py b/core/plc_client.py index a543abc..62d3509 100644 --- a/core/plc_client.py +++ b/core/plc_client.py @@ -1,5 +1,6 @@ import snap7 import snap7.util +import snap7.type import struct import time import threading @@ -8,6 +9,7 @@ from typing import Dict, Any, Optional # 🚀 OPTIMIZATION: Check if optimized batch reader is available try: import utils.optimized_batch_reader + OPTIMIZED_BATCH_READER_AVAILABLE = True except ImportError as e: OPTIMIZED_BATCH_READER_AVAILABLE = False @@ -63,10 +65,11 @@ class PLCClient: try: # Import here to avoid circular imports from utils.optimized_batch_reader import OptimizedBatchReader + self.batch_reader = OptimizedBatchReader( - plc_client=self, - logger=logger, - inter_read_delay=self.inter_read_delay_seconds + plc_client=self, + logger=logger, + inter_read_delay=self.inter_read_delay_seconds, ) if logger: logger.info("🚀 OptimizedBatchReader initialized successfully") @@ -324,7 +327,7 @@ class PLCClient: result = self._read_memory_variable(offset, var_type) elif area_type in [ "pew", - "pe", + "pe", "i", # Process Input area "ped", # Process Input Double word (REAL) "peb", # Process Input Byte @@ -413,19 +416,21 @@ class PLCClient: return None def read_variables_batch( - self, variables_config: Dict[str, Dict[str, Any]], use_optimized_reading: bool = None + self, + variables_config: Dict[str, Dict[str, Any]], + use_optimized_reading: bool = None, ) -> Dict[str, Any]: """🚀 OPTIMIZED: Read multiple variables using advanced batch operations - + This method can use either the optimized read_multi_vars method or fall back to the legacy grouping method based on the use_optimized_reading parameter or the global USE_OPTIMIZED_BATCH_READING setting. - + When optimization is enabled and available: - Uses snap7.read_multi_vars with automatic chunking - Handles scattered variables across different memory areas - Significantly reduces network overhead and improves performance - + When optimization is disabled or unavailable: - Falls back to the original grouping and batch reading method - Maintains compatibility with older snap7 versions @@ -444,21 +449,27 @@ class PLCClient: # � Determine which reading method to use # Priority: dataset-specific setting > global setting should_use_optimized = ( - use_optimized_reading - if use_optimized_reading is not None + use_optimized_reading + if use_optimized_reading is not None else USE_OPTIMIZED_BATCH_READING ) # 🚀 Check if we should use the optimized batch reader if ( - should_use_optimized - and self.batch_reader is not None + should_use_optimized + and self.batch_reader is not None and OPTIMIZED_BATCH_READER_AVAILABLE ): # Use the optimized read_multi_vars method if self.logger: - source = "dataset config" if use_optimized_reading is not None else "global config" - self.logger.debug(f"🚀 Using optimized batch reading for {len(variables_config)} variables (from {source})") + source = ( + "dataset config" + if use_optimized_reading is not None + else "global config" + ) + self.logger.debug( + f"🚀 Using optimized batch reading for {len(variables_config)} variables (from {source})" + ) return self.batch_reader.read_variables_batch(variables_config) else: # Fall back to the legacy grouping method @@ -474,7 +485,7 @@ class PLCClient: self, variables_config: Dict[str, Dict[str, Any]] ) -> Dict[str, Any]: """Legacy batch reading method (original implementation) - + This method groups variables by DB/Area and performs batch reads when possible, reducing the number of snap7 calls compared to individual reads. """ @@ -734,48 +745,48 @@ class PLCClient: def _read_input_variable(self, offset: int, var_type: str) -> Any: """Read from Process Inputs using correct area code (0x81)""" try: - # Use snap7.types.Areas.PE (0x81) for Process Inputs + # Use snap7.type.Areas.PE (0x81) for Process Inputs # read_area(area, dbnumber, start, size) - only 4 parameters! if var_type == "real": # For REAL (32-bit float), read 4 bytes - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 4) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 4) return struct.unpack(">f", raw_data)[0] elif var_type == "int": # For INT (16-bit signed), read 2 bytes - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 2) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 2) return struct.unpack(">h", raw_data)[0] elif var_type == "word": # For WORD (16-bit unsigned), read 2 bytes - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 2) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 2) return struct.unpack(">H", raw_data)[0] elif var_type == "dint": # For DINT (32-bit signed), read 4 bytes - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 4) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 4) return struct.unpack(">l", raw_data)[0] elif var_type == "dword": # For DWORD (32-bit unsigned), read 4 bytes - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 4) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 4) return struct.unpack(">L", raw_data)[0] elif var_type == "byte": # For BYTE (8-bit), read 1 byte - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 1) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 1) return struct.unpack(">B", raw_data)[0] elif var_type == "bool": # For BOOL, we need to read the byte and extract the specific bit # Default to bit 0 if not specified - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 1) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 1) return bool(raw_data[0] & 0x01) elif var_type == "uint": - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 2) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 2) return struct.unpack(">H", raw_data)[0] elif var_type == "udint": - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 4) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 4) return struct.unpack(">L", raw_data)[0] elif var_type == "sint": - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 1) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 1) return struct.unpack(">b", raw_data)[0] elif var_type == "usint": - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 1) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 1) return struct.unpack(">B", raw_data)[0] except Exception as e: if self.logger: @@ -791,48 +802,48 @@ class PLCClient: def _read_output_variable(self, offset: int, var_type: str) -> Any: """Read from Process Outputs using correct area code (0x82)""" try: - # Use snap7.types.Areas.PA (0x82) for Process Outputs + # Use snap7.type.Areas.PA (0x82) for Process Outputs # read_area(area, dbnumber, start, size) - only 4 parameters! if var_type == "real": # For REAL (32-bit float), read 4 bytes - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 4) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 4) return struct.unpack(">f", raw_data)[0] elif var_type == "int": # For INT (16-bit signed), read 2 bytes - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 2) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 2) return struct.unpack(">h", raw_data)[0] elif var_type == "word": # For WORD (16-bit unsigned), read 2 bytes - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 2) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 2) return struct.unpack(">H", raw_data)[0] elif var_type == "dint": # For DINT (32-bit signed), read 4 bytes - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 4) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 4) return struct.unpack(">l", raw_data)[0] elif var_type == "dword": # For DWORD (32-bit unsigned), read 4 bytes - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 4) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 4) return struct.unpack(">L", raw_data)[0] elif var_type == "byte": # For BYTE (8-bit), read 1 byte - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 1) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 1) return struct.unpack(">B", raw_data)[0] elif var_type == "bool": # For BOOL, we need to read the byte and extract the specific bit # Default to bit 0 if not specified - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 1) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 1) return bool(raw_data[0] & 0x01) elif var_type == "uint": - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 2) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 2) return struct.unpack(">H", raw_data)[0] elif var_type == "udint": - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 4) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 4) return struct.unpack(">L", raw_data)[0] elif var_type == "sint": - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 1) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 1) return struct.unpack(">b", raw_data)[0] elif var_type == "usint": - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 1) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 1) return struct.unpack(">B", raw_data)[0] except Exception as e: if self.logger: @@ -848,9 +859,9 @@ class PLCClient: def _read_input_bit(self, offset: int, bit: int) -> bool: """Read from Process Input Bits using correct area code (0x81)""" try: - # Use snap7.types.Areas.PE (0x81) for Process Inputs + # Use snap7.type.Areas.PE (0x81) for Process Inputs # read_area(area, dbnumber, start, size) - only 4 parameters! - raw_data = self.plc.read_area(snap7.types.Areas.PE, 0, offset, 1) + raw_data = self.plc.read_area(snap7.type.Areas.PE, 0, offset, 1) return snap7.util.get_bool(raw_data, 0, bit) except Exception as e: if self.logger: @@ -860,9 +871,9 @@ class PLCClient: def _read_output_bit(self, offset: int, bit: int) -> bool: """Read from Process Output Bits using correct area code (0x82)""" try: - # Use snap7.types.Areas.PA (0x82) for Process Outputs + # Use snap7.type.Areas.PA (0x82) for Process Outputs # read_area(area, dbnumber, start, size) - only 4 parameters! - raw_data = self.plc.read_area(snap7.types.Areas.PA, 0, offset, 1) + raw_data = self.plc.read_area(snap7.type.Areas.PA, 0, offset, 1) return snap7.util.get_bool(raw_data, 0, bit) except Exception as e: if self.logger: @@ -1106,7 +1117,7 @@ class PLCClient: "batch_reader_initialized": self.batch_reader is not None, "inter_read_delay": self.inter_read_delay_seconds, } - + # Add detailed stats from the batch reader if available if self.batch_reader is not None: try: @@ -1115,5 +1126,5 @@ class PLCClient: except Exception as e: if self.logger: self.logger.warning(f"Error getting batch reader stats: {e}") - + return base_stats diff --git a/frontend/src/components/rjsf/ConditionalObjectFieldTemplate.jsx b/frontend/src/components/rjsf/ConditionalObjectFieldTemplate.jsx new file mode 100644 index 0000000..e232feb --- /dev/null +++ b/frontend/src/components/rjsf/ConditionalObjectFieldTemplate.jsx @@ -0,0 +1,95 @@ +import React from 'react' +import { SimpleGrid, Box, Heading, Text, Stack } from '@chakra-ui/react' + +// ConditionalObjectFieldTemplate with PLC-specific field visibility logic +// Hides/shows fields based on PLC memory area and data type rules +export default function ConditionalObjectFieldTemplate(props) { + const { TitleField, DescriptionField, title, description, properties = [], uiSchema, formData } = props + const layout = uiSchema && uiSchema['ui:layout'] + + // Logic to determine if a field should be visible + const shouldShowField = (fieldName) => { + if (!formData) return true + + const area = formData.area + const type = formData.type + + // DB Number field logic + if (fieldName === 'db') { + // Only show DB field when area is 'db' + return area === 'db' + } + + // Bit Position field logic + if (fieldName === 'bit') { + // Only show bit field for boolean types + return type === 'bool' + } + + // Show all other fields by default + return true + } + + // Filter properties based on visibility rules + const visibleProperties = properties.filter(prop => shouldShowField(prop.name)) + + if (!layout) { + return ( + + {title && ( + TitleField ? ( + + ) : ( + {title} + ) + )} + {description && ( + DescriptionField ? ( + + ) : ( + {description} + ) + )} + + {visibleProperties.map((prop) => ( + {prop.content} + ))} + + + ) + } + + // Map property name to its renderer + const propMap = new Map(visibleProperties.map((p) => [p.name, p])) + + return ( + + {title && ( + TitleField ? ( + + ) : ( + {title} + ) + )} + {description && ( + DescriptionField ? ( + + ) : ( + {description} + ) + )} + {layout.map((row, rowIdx) => ( + + {row.map((cell, cellIdx) => { + const prop = propMap.get(cell.name) + if (!prop) return null + const col = Math.min(Math.max(cell.width || 12, 1), 12) + return ( + {prop.content} + ) + })} + + ))} + + ) +} diff --git a/frontend/src/components/rjsf/PlcWidgets.jsx b/frontend/src/components/rjsf/PlcWidgets.jsx index 0f3649b..0369390 100644 --- a/frontend/src/components/rjsf/PlcWidgets.jsx +++ b/frontend/src/components/rjsf/PlcWidgets.jsx @@ -86,7 +86,8 @@ export function PlcDataTypeWidget(props) { 'uint': '16-bit', 'udint': '32-bit', 'sint': '8-bit', - 'usint': '8-bit' + 'usint': '8-bit', + 'dword': '32-bit' } const typeColors = { @@ -99,7 +100,8 @@ export function PlcDataTypeWidget(props) { 'uint': 'green', 'udint': 'green', 'sint': 'green', - 'usint': 'green' + 'usint': 'green', + 'dword': 'orange' } return ( diff --git a/frontend/src/pages/Dashboard.jsx b/frontend/src/pages/Dashboard.jsx index 4585e41..5dd6e26 100644 --- a/frontend/src/pages/Dashboard.jsx +++ b/frontend/src/pages/Dashboard.jsx @@ -1405,8 +1405,8 @@ function DatasetManager() { area: { type: "string", title: "Memory Area", - enum: ["db", "mw", "m", "pew", "pe", "paw", "pa", "e", "a", "mb"], - default: "db" + enum: ["DB", "MW", "M", "PEW", "PE", "PAW", "PA", "E", "A", "MB"], + default: "DB" }, db: { type: "integer", title: "DB Number", minimum: 1, maximum: 9999 }, offset: { type: "integer", title: "Offset", minimum: 0, maximum: 8191 }, @@ -1527,7 +1527,7 @@ function DatasetManager() { // Build the configuration object, only including relevant fields const config = { name: processedVar.name || symbolName, - area: processedVar.area || "db", + area: processedVar.area || "DB", offset: processedVar.offset !== undefined && processedVar.offset !== null ? processedVar.offset : 0, type: processedVar.type || "real", streaming: currentVariable.streaming || false @@ -1536,7 +1536,7 @@ function DatasetManager() { // Only include db field if it's actually present and area requires it if (processedVar.db !== undefined && processedVar.db !== null) { config.db = processedVar.db - } else if (config.area === "db") { + } else if (config.area === "DB") { // Default to 1 only for DB area if no DB number was provided config.db = 1 } @@ -1554,7 +1554,7 @@ function DatasetManager() { // If backend processing failed, return basic defaults const fallbackConfig = { name: currentVariable.name || symbolName, - area: "db", // Default to DB area + area: "DB", // Default to DB area offset: 0, type: "real", bit: 0, @@ -1562,7 +1562,7 @@ function DatasetManager() { } // Only add db field for DB area - if (fallbackConfig.area === "db") { + if (fallbackConfig.area === "DB") { fallbackConfig.db = 1 } @@ -1573,7 +1573,7 @@ function DatasetManager() { // Return basic defaults on error const errorConfig = { name: currentVariable.name || symbolName, - area: "db", // Default to DB area + area: "DB", // Default to DB area offset: 0, type: "real", bit: 0, @@ -1581,7 +1581,7 @@ function DatasetManager() { } // Only add db field for DB area - if (errorConfig.area === "db") { + if (errorConfig.area === "DB") { errorConfig.db = 1 } diff --git a/requirements.txt b/requirements.txt index 1660e74..0396db1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ Flask==2.3.3 Flask-Cors==4.0.0 # PLC Communication -python-snap7==1.3 +python-snap7==2.0.2 # System Monitoring & Process Management psutil==5.9.5 diff --git a/system_state.json b/system_state.json index 657cc85..33afb79 100644 --- a/system_state.json +++ b/system_state.json @@ -1,11 +1,10 @@ { "last_state": { - "should_connect": true, + "should_connect": false, "should_stream": false, - "active_datasets": [ - "DAR" - ] + "active_datasets": [] }, "auto_recovery_enabled": true, - "last_update": "2025-08-25T16:01:38.412207" + "last_update": "2025-08-25T17:50:18.320817", + "plotjuggler_path": "C:\\Program Files\\PlotJuggler\\plotjuggler.exe" } \ No newline at end of file diff --git a/utils/optimized_batch_reader.py b/utils/optimized_batch_reader.py index 4f0d9f5..c3aa381 100644 --- a/utils/optimized_batch_reader.py +++ b/utils/optimized_batch_reader.py @@ -32,7 +32,7 @@ except ImportError: import snap7 import snap7.util -import snap7.types +import snap7.type import time import threading import ctypes @@ -40,7 +40,7 @@ from typing import Dict, Any, Optional, List # Try to import S7DataItem with fallback for different snap7 versions try: - from snap7.types import S7DataItem + from snap7.type import S7DataItem SNAP7_TYPES_AVAILABLE = True except ImportError: @@ -213,15 +213,19 @@ class OptimizedBatchReader: # Convert to ctypes array for read_multi_vars (CRITICAL for snap7 v2) items_array = (S7DataItem * len(items_to_read))(*items_to_read) - + # Perform the multi-variable read for the current chunk result = self.plc_client.plc.read_multi_vars(items_array) - + # Handle result format (result code, array of items) if isinstance(result, tuple) and len(result) == 2: ret_code, read_results = result if ret_code != 0: - error_msg = snap7.util.get_error_text(ret_code) if hasattr(snap7.util, 'get_error_text') else f"Error code: {ret_code}" + error_msg = ( + snap7.util.get_error_text(ret_code) + if hasattr(snap7.util, "get_error_text") + else f"Error code: {ret_code}" + ) self._log_error(f"read_multi_vars failed: {error_msg}") for var_name, _ in chunk: chunk_results[var_name] = None @@ -244,7 +248,11 @@ class OptimizedBatchReader: chunk_results[var_name] = None else: # Handle read error - error_msg = snap7.util.get_error_text(item_result.Result) if hasattr(snap7.util, 'get_error_text') else f"Error: {item_result.Result}" + error_msg = ( + snap7.util.get_error_text(item_result.Result) + if hasattr(snap7.util, "get_error_text") + else f"Error: {item_result.Result}" + ) self._log_error(f"Failed to read '{var_name}': {error_msg}") chunk_results[var_name] = None @@ -292,6 +300,14 @@ class OptimizedBatchReader: "mw": 131, "md": 131, "mb": 131, + # PEW/PAW area mappings + "pew": 129, # Process Input Words + "paw": 130, # Process Output Words + # Additional PE/PA area mappings for consistency with plc_client.py + "ped": 129, # Process Input Double word (REAL) + "peb": 129, # Process Input Byte + "pad": 130, # Process Output Double word (REAL) + "pab": 130, # Process Output Byte } return area_map.get(area_str.lower(), 132) # Default to DB