|
@@ -0,0 +1,45 @@
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+"""
|
|
|
+@author: yq
|
|
|
+@time: 2024/11/1
|
|
|
+@desc: 指标监控配置
|
|
|
+"""
|
|
|
+from typing import List, Dict
|
|
|
+
|
|
|
+from entitys import MetricConfigEntity
|
|
|
+from metrics import f_get_metric_clazz_dict, MetricBase
|
|
|
+
|
|
|
+
|
|
|
+class ModelMonitorConfigEntity():
|
|
|
+
|
|
|
+ def __init__(self, metric_config_list: List[MetricConfigEntity], template_path: str):
|
|
|
+ self._template_path = template_path
|
|
|
+ self._metric_clazz_dict = f_get_metric_clazz_dict()
|
|
|
+ self._metric_dict: Dict[str, MetricBase] = self._init_metric(metric_config_list)
|
|
|
+
|
|
|
+ @property
|
|
|
+ def template_path(self):
|
|
|
+ return self._template_path
|
|
|
+
|
|
|
+ @property
|
|
|
+ def metric_dict(self):
|
|
|
+ return self._metric_dict
|
|
|
+
|
|
|
+ def _init_metric(self, metric_config_list: List[MetricConfigEntity]) -> Dict[str, MetricBase]:
|
|
|
+ metric_dict = {}
|
|
|
+ for metric_config in metric_config_list:
|
|
|
+ metric_func_name = metric_config.metric_func
|
|
|
+ metric_code = metric_config.metric_code
|
|
|
+ # 指标函数不存在
|
|
|
+ if metric_func_name not in self._metric_clazz_dict.keys():
|
|
|
+ pass
|
|
|
+ # 指标code不唯一
|
|
|
+ if metric_code in metric_dict.keys():
|
|
|
+ pass
|
|
|
+ metric_clazz = self._metric_clazz_dict[metric_func_name]
|
|
|
+ metric_dict[metric_code] = metric_clazz(*metric_config.args, **metric_config.kwargs)
|
|
|
+ return metric_dict
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == "__main__":
|
|
|
+ pass
|