Пример #1
0
    def __init__(self, core):
        AbstractPlugin.__init__(self, core)
        self.decoder = MonitoringDataDecoder()
        self.mon_data = {}

        def create_storage():
            return {
                'avg': defaultdict(list),
                'quantiles': defaultdict(list),
                'threads': {
                    'active_threads': []
                },
                'rps': {
                    'RPS': []
                },
                'http_codes': defaultdict(list),
                'net_codes': defaultdict(list),
            }

        self.overall = create_storage()
        self.cases = defaultdict(create_storage)
        self.start_time = None
        self.end_time = None
        self.show_graph = None
        self.template = os.path.dirname(__file__) + "/report.tpl"
Пример #2
0
import time
from Tank.MonCollector.collector import MonitoringDataDecoder

mon_decoder = MonitoringDataDecoder()


def uts(dt):
    return int(time.mktime(dt.timetuple()))


def parse_number(val):
    try:
        return float(val)
    except ValueError:
        return None


def decode_monitoring(data):
    data_items = (mon_decoder.decode_line(line) for line in data.splitlines()
                  if line.strip())
    result = {}
    for host, metrics, _, ts in data_items:
        host_metrics = result \
          .setdefault(int(ts), {}) \
          .setdefault("monitoring", {}) \
          .setdefault(host, {})
        for metric_name, value in metrics.iteritems():
            if '_' in metric_name:
                group, metric_name = metric_name.split('_', 1)
            else:
                group = metric_name