Browse Source

Experiment log parser tweaks

Sajin 1 year ago
parent
commit
a0850efe9a
1 changed files with 17 additions and 10 deletions
  1. 17 10
      logs_to_csv.py

+ 17 - 10
logs_to_csv.py

@@ -6,7 +6,7 @@ import sys
 import math
 import numpy as np
 
-FILE_PARSE_STATE = ["ROUND1", "ESP", "PADDING", "EPOCH"]
+FILE_PARSE_STATE = ["ROUND1", "ESP", "BYTES", "PADDING", "EPOCH"]
 
 if __name__ == "__main__":
 
@@ -19,8 +19,8 @@ if __name__ == "__main__":
     LOGS_FOLDER = sys.argv[1]
     OUTPUT_FILE = sys.argv[2]
     op_file = open(OUTPUT_FILE, 'w+')
-    op_file.write("N, M, T, B, E, epoch_total_time, epoch_stddev,\
- route_time, route_stddev, storage_time, storage_stddev\n")
+    op_file.write("N,M,T,B,E,epoch_total_time,epoch_stddev,\
+route_time,route_stddev,storage_time,storage_stddev,bytes_sent\n")
 
     # Iterate over each folder in LOGS_FOLDER
     for name in os.listdir(LOGS_FOLDER):
@@ -36,6 +36,7 @@ if __name__ == "__main__":
         print(name)
         epoch_time = []
         storage_time = []
+        bytes_sent = 0
         state = FILE_PARSE_STATE[0]
         for m in range(1,M+1):
             EOF = False
@@ -54,14 +55,13 @@ if __name__ == "__main__":
                         #print("R1: " + str(line_cnt))
 
                 elif(state == "ESP"):
-                    if("end storage_received" in line):
+                    if("end storage processing" in line):
                         value = line.split(' ')[1]
                         value = value.strip('(')
                         value = value.strip(')')
                         stg_time = float(value)
                         storage_time.append(stg_time)
-                        #print("ESP: " + str(line_cnt))
-                        state = "EPOCH"
+                        state = "BYTES"
 
                 elif(state == "PADDING"):
                     if('padding' in line):
@@ -73,6 +73,12 @@ if __name__ == "__main__":
                         else:
                             state = "ROUND1"
 
+                elif(state == "BYTES"):
+                    if('bytes_sent' in line):
+                        words = line.split(' ')
+                        bytes_sent = int(words[-1])
+                        state = "EPOCH"
+
                 elif(state == "EPOCH"):
                     if('Epoch' in line and 'time' in line):
                         #print("EPOCH: " + str(line_cnt))
@@ -97,10 +103,11 @@ if __name__ == "__main__":
             print("Storage time = %f +/- %f" %(storage_mean, storage_stddev))
 
             # Insert it into the output csv file
-            op_line = str(n) + ", " + str(M) + ", " + str(t) + ", " + str(b) + ", " + str(epochs) + ", "
-            op_line+= "{:.4f}".format(epoch_mean) + (", ") + "{:.4f}".format(epoch_stddev) + ", "
-            op_line+= "{:.4f}".format(route_mean) + (", ") + "{:.4f}".format(route_stddev) + ", "
-            op_line+= "{:.4f}".format(storage_mean) + (", ") + "{:.4f}".format(storage_stddev) + "\n"
+            op_line = str(n) + "," + str(M) + "," + str(t) + "," + str(b) + "," + str(epochs) + ","
+            op_line+= "{:.4f}".format(epoch_mean) + (",") + "{:.4f}".format(epoch_stddev) + ","
+            op_line+= "{:.4f}".format(route_mean) + (",") + "{:.4f}".format(route_stddev) + ","
+            op_line+= "{:.4f}".format(storage_mean) + (",") + "{:.4f}".format(storage_stddev) + ","
+            op_line+= str(bytes_sent) + "\n"
             op_file.write(op_line)
         else:
             print("No valid logs for %s" % name)