예제 #1
0
 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 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)
예제 #3
0
 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 ']}'
예제 #4
0
 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 ']}'
예제 #5
0
 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 ']}'
예제 #6
0
 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 ']}'