summaryrefslogtreecommitdiffstats
path: root/qtip/collector
diff options
context:
space:
mode:
authorYujun Zhang <zhang.yujunz@zte.com.cn>2017-01-19 16:58:46 +0800
committerYujun Zhang <zhang.yujunz@zte.com.cn>2017-01-29 20:34:56 +0800
commitf2d021c72b38845954755bab54aa13b4b2aad725 (patch)
tree384b0aa7772facb1e8f836a4741f8151ef119901 /qtip/collector
parenta42b9a6ac576b11403955ff38df6cc58cf02abb7 (diff)
Refactor loader classes
- rename BaseLoader to YamlFileLoader as base class of QTIP specs loader - create an abstract BaseLoader - create FileLoader for logfile collector Change-Id: I0c992cd847fc0dce4fdd73a13c1cdbc406c84532 Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
Diffstat (limited to 'qtip/collector')
-rw-r--r--qtip/collector/base.py2
-rw-r--r--qtip/collector/logfile.py24
2 files changed, 26 insertions, 0 deletions
diff --git a/qtip/collector/base.py b/qtip/collector/base.py
index cd8fc797..2a25455c 100644
--- a/qtip/collector/base.py
+++ b/qtip/collector/base.py
@@ -10,3 +10,5 @@
class BaseCollector(object):
"""performance metrics collector"""
+ def __init__(self, config):
+ self._config = config
diff --git a/qtip/collector/logfile.py b/qtip/collector/logfile.py
index 6528ea9f..19780aaa 100644
--- a/qtip/collector/logfile.py
+++ b/qtip/collector/logfile.py
@@ -9,6 +9,30 @@
from base import BaseCollector
+from qtip.base.constant import CollectorProp as CProp
+from qtip.loader.file import FileLoader
+
class LogfileCollector(BaseCollector):
"""collect performance metrics from log files"""
+
+ def __init__(self, config, paths=None):
+ super(LogfileCollector, self).__init__(config)
+ self.loader = FileLoader('.', paths)
+
+ def collect(self):
+ captured = {}
+ for item in self._config[CProp.LOGS]:
+ captured.update(self._parse_log(item))
+ return captured
+
+ def _parse_log(self, log_item):
+ captured = {}
+ # TODO(yujunz) select parser by name
+ if CProp.GREP in log_item:
+ for rule in log_item[CProp.GREP]:
+ captured.update(self._grep(log_item[CProp.FILENAME], rule))
+ return captured
+
+ def _grep(self, filename, rule):
+ return {}