in source/ecs/metrics_helper.py [0:0]
def get_user_sessions(self, list_user_session_data_points, workspace):
"""
This method returns user session hours from list of user sessions for a given workspace
:param list_user_session_data_points:
:param workspace:
:return:
"""
list_user_sessions = []
session_start = False
zeroes_count = 0
end_session_index = 0
start_session_index = 0
for i in range(len(list_user_session_data_points)):
if list_user_session_data_points[i] == 1:
if not session_start:
session_start = True
zeroes_count = 0
start_session_index = i
end_session_index = i + 1 # set this to account for user session [1,0,0....0]
else:
zeroes_count = 0 # Reset the zero count if a value of 1 is encountered
end_session_index = i + 1
elif list_user_session_data_points[i] == 0 and session_start:
zeroes_count = zeroes_count + 1
if zeroes_count == self.get_zero_count(workspace):
user_session_hours = math.ceil((end_session_index - start_session_index) / 12)
list_user_sessions.append(user_session_hours)
session_start = False
end_session_index = 0
start_session_index = 0
user_session_hours = math.ceil((end_session_index - start_session_index) / 12)
if user_session_hours:
list_user_sessions.append(user_session_hours)
return list_user_sessions