Advertisement
Guest User

Untitled

a guest
Oct 17th, 2014
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.07 KB | None | 0 0
  1. import babeltrace
  2. import json
  3. import sys
  4.  
  5.  
  6. def get_msg_intervals(trace_path):
  7.     col = babeltrace.TraceCollection()
  8.  
  9.     if col.add_trace(trace_path, 'ctf') is None:
  10.         raise RuntimeError('Cannot add trace')
  11.  
  12.     msg_intervals = {}
  13.  
  14.     for ev in col.events:
  15.         if ev.name not in ['message:actor_send', 'message:actor_receive']:
  16.             continue
  17.  
  18.         msg_source_actor = ev['message_source_actor']
  19.         msg_number = ev['message_number']
  20.  
  21.         if msg_source_actor not in msg_intervals:
  22.             msg_intervals[msg_source_actor] = {}
  23.  
  24.         if msg_number not in msg_intervals[msg_source_actor]:
  25.             msg_intervals[msg_source_actor][msg_number] = {}
  26.  
  27.         interval = msg_intervals[msg_source_actor][msg_number]
  28.  
  29.         if ev.name == 'message:actor_send':
  30.             interval['send_ts'] = ev.timestamp
  31.         else:
  32.             interval['recv_ts'] = ev.timestamp
  33.  
  34.     return msg_intervals
  35.  
  36.  
  37. if __name__ == '__main__':
  38.     msg_intervals = get_msg_intervals(sys.argv[1])
  39.     print(json.dumps(msg_intervals, indent=2))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement