nirdizati_light.utils.time_metrics
1from datetime import datetime as dt 2 3TIME_FORMAT = "%Y-%m-%dT%H:%M:%S" 4 5 6def duration(trace): 7 """Calculate the duration of a trace""" 8 return remaining_time_id(trace, 0) 9 10 11def elapsed_time_id(trace, event_index: int): 12 """Calculate elapsed time by event index in trace""" 13 try: 14 event = trace[event_index] 15 except IndexError: 16 # catch for 0 padding. 17 # calculate using the last event in trace 18 event = trace[-1] 19 return elapsed_time(trace, event) 20 21 22def elapsed_time(trace, event): 23 """Calculate elapsed time by event in trace""" 24 # FIXME using no timezone info for calculation 25 event_time = event['time:timestamp'].strftime("%Y-%m-%dT%H:%M:%S") 26 first_time = trace[0]['time:timestamp'].strftime("%Y-%m-%dT%H:%M:%S") 27 try: 28 delta = dt.strptime(event_time, TIME_FORMAT) - dt.strptime(first_time, TIME_FORMAT) 29 except ValueError: 30 # Log has no timestamps 31 return 0 32 return delta.total_seconds() 33 34 35def remaining_time_id(trace, event_index: int): 36 """Calculate remaining time by event index in trace""" 37 try: 38 event = trace[event_index] 39 return remaining_time(trace, event) 40 except IndexError: 41 # catch for 0 padding. 42 # cant calculate remaining time if there are no more events 43 return 0 44 45 46def remaining_time(trace, event): 47 """Calculate remaining time by event in trace""" 48 # FIXME using no timezone info for calculation 49 event_time = event['time:timestamp'].strftime("%Y-%m-%dT%H:%M:%S") 50 last_time = trace[-1]['time:timestamp'].strftime("%Y-%m-%dT%H:%M:%S") 51 try: 52 delta = dt.strptime(last_time, TIME_FORMAT) - dt.strptime(event_time, TIME_FORMAT) 53 except ValueError: 54 # Log has no timestamps 55 return 0 56 return delta.total_seconds() 57 58 59def count_on_event_day(trace, date_dict: dict, event_id): 60 """Finds the date of event and returns the value from date_dict 61 :param date_dict one of the dicts from log_metrics.py 62 :param event_id Event id 63 :param trace Log trace 64 """ 65 try: 66 event = trace[event_id] 67 date = str(event['time:timestamp'].date()) 68 return date_dict.get(date, 0) 69 except IndexError: 70 return 0
TIME_FORMAT =
'%Y-%m-%dT%H:%M:%S'
def
duration(trace):
7def duration(trace): 8 """Calculate the duration of a trace""" 9 return remaining_time_id(trace, 0)
Calculate the duration of a trace
def
elapsed_time_id(trace, event_index: int):
12def elapsed_time_id(trace, event_index: int): 13 """Calculate elapsed time by event index in trace""" 14 try: 15 event = trace[event_index] 16 except IndexError: 17 # catch for 0 padding. 18 # calculate using the last event in trace 19 event = trace[-1] 20 return elapsed_time(trace, event)
Calculate elapsed time by event index in trace
def
elapsed_time(trace, event):
23def elapsed_time(trace, event): 24 """Calculate elapsed time by event in trace""" 25 # FIXME using no timezone info for calculation 26 event_time = event['time:timestamp'].strftime("%Y-%m-%dT%H:%M:%S") 27 first_time = trace[0]['time:timestamp'].strftime("%Y-%m-%dT%H:%M:%S") 28 try: 29 delta = dt.strptime(event_time, TIME_FORMAT) - dt.strptime(first_time, TIME_FORMAT) 30 except ValueError: 31 # Log has no timestamps 32 return 0 33 return delta.total_seconds()
Calculate elapsed time by event in trace
def
remaining_time_id(trace, event_index: int):
36def remaining_time_id(trace, event_index: int): 37 """Calculate remaining time by event index in trace""" 38 try: 39 event = trace[event_index] 40 return remaining_time(trace, event) 41 except IndexError: 42 # catch for 0 padding. 43 # cant calculate remaining time if there are no more events 44 return 0
Calculate remaining time by event index in trace
def
remaining_time(trace, event):
47def remaining_time(trace, event): 48 """Calculate remaining time by event in trace""" 49 # FIXME using no timezone info for calculation 50 event_time = event['time:timestamp'].strftime("%Y-%m-%dT%H:%M:%S") 51 last_time = trace[-1]['time:timestamp'].strftime("%Y-%m-%dT%H:%M:%S") 52 try: 53 delta = dt.strptime(last_time, TIME_FORMAT) - dt.strptime(event_time, TIME_FORMAT) 54 except ValueError: 55 # Log has no timestamps 56 return 0 57 return delta.total_seconds()
Calculate remaining time by event in trace
def
count_on_event_day(trace, date_dict: dict, event_id):
60def count_on_event_day(trace, date_dict: dict, event_id): 61 """Finds the date of event and returns the value from date_dict 62 :param date_dict one of the dicts from log_metrics.py 63 :param event_id Event id 64 :param trace Log trace 65 """ 66 try: 67 event = trace[event_id] 68 date = str(event['time:timestamp'].date()) 69 return date_dict.get(date, 0) 70 except IndexError: 71 return 0
Finds the date of event and returns the value from date_dict :param date_dict one of the dicts from log_metrics.py :param event_id Event id :param trace Log trace