in ebcli/display/data_poller.py [0:0]
def collapse_instance_health_data(instances_health):
instance_list = instances_health.get('InstanceHealthList', [])
result = list()
for i in instance_list:
instance = dict()
request_count = i.get('ApplicationMetrics', {}) \
.get('RequestCount', 0)
latency = i.get('ApplicationMetrics', {}).pop('Latency', {})
instance.update(_format_latency_dict(latency, request_count))
instance.update(i.get('ApplicationMetrics', {}).pop('StatusCodes', {}))
instance.update(i.pop('ApplicationMetrics', {}))
instance.update(i.get('System', {}).pop('CPUUtilization', {}))
instance.update(i.pop('System', {}))
instance.update(i)
causes = instance.get('Causes', [])
cause = causes[0] if causes else ''
instance['Cause'] = cause
instance['InstanceType'] = i.get('InstanceType')
if i.get('AvailabilityZone'):
try:
instance['AvailabilityZone'] = i.get('AvailabilityZone').rsplit('-', 1)[-1]
except:
instance['AvailabilityZone'] = i.get('AvailabilityZone')
if i.get('Deployment'):
instance['TimeSinceDeployment'] = format_time_since(i.get('Deployment').get('DeploymentTime'))
instance['DeploymentId'] = i.get('Deployment').get('DeploymentId')
instance['DeploymentStatus'] = i.get('Deployment').get('Status')
instance['DeploymentVersion'] = i.get('Deployment').get('VersionLabel')
instance['load1'] = instance['LoadAverage'][0] \
if 'LoadAverage' in instance else '-'
instance['load5'] = instance['LoadAverage'][1] \
if 'LoadAverage' in instance else '-'
instance['launched'] = utils.get_local_time_as_string(instance['LaunchedAt'])
instance['running'] = format_time_since(instance.get('LaunchedAt'))
duration = instance.get('Duration', 10)
instance['requests'] = request_count / (duration * 1.0)
for key in {'Status_2xx', 'Status_3xx', 'Status_4xx', 'Status_5xx'}:
_convert_data_to_percentage(
instance,
key,
request_count,
add_sort_column=True
)
# Add status sort index
instance['status_sort'] = __get_health_sort_order(instance['HealthStatus'])
result.append(instance)
return result