def build_alarm(self, name): """Build alarm json.""" alarm = {} id = str(uuid.uuid4()) alarm['id'] = id alarm['alarm_definition'] = self.alarm_definition alarm['metrics'] = self.related_metrics[name] alarm['state'] = self.expr_data_queue[name]['state'] alarm['reason'] = reasons[alarm['state']] alarm['reason_data'] = {} sub_alarms = [] dt = self.expr_data_queue[name]['data'] for expr in self.sub_expr_list: sub_alarms.append({ 'sub_alarm_expression': self.sub_alarm_expr[expr.fmtd_sub_expr_str], 'sub_alarm_state': dt[expr.fmtd_sub_expr_str]['state'], 'current_values': dt[expr.fmtd_sub_expr_str]['values'] }) alarm['sub_alarms'] = sub_alarms ct = self.expr_data_queue[name]['create_timestamp'] st = self.expr_data_queue[name]['state_update_timestamp'] t = self.expr_data_queue[name]['update_timestamp'] alarm['state_updated_timestamp'] = tu.iso8601_from_timestamp(st) alarm['updated_timestamp'] = tu.iso8601_from_timestamp(t) alarm['created_timestamp'] = tu.iso8601_from_timestamp(ct) return json.dumps(alarm)
def _render_metric(dim): source = dim['dimension']['hits']['hits'][0]['_source'] yield '{"name":"' + source['name'] + '","dimensions":' yield json.dumps(source['dimensions']) yield ',"columns":["id","timestamp","value"],"measurements":[' is_first = True for measure in dim['measures']['hits']['hits']: ss = measure['_source'] m = ('["' + measure['_id'] + '","' + tu.iso8601_from_timestamp(ss['timestamp']) + '",' + str(ss['value']) + ']') if is_first: yield m is_first = False else: yield ',' + m yield ']}'
def _render_stats(dim): source = dim['dimension']['hits']['hits'][0]['_source'] yield '{"name":"' + source['name'] + '","dimensions":' yield json.dumps(source['dimensions']) yield ',"columns":' + col_json + ',"statistics":[' is_first = True for item in dim['periods']['buckets']: m = ('["' + tu.iso8601_from_timestamp(item['key']) + '"') for s in stats: m += ',' + str(item['statistics'][s]) m += ']' if is_first: yield m is_first = False else: yield ',' + m yield ']}'