monitor_config_entity.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # -*- coding: utf-8 -*-
  2. """
  3. @author: yq
  4. @time: 2024/11/1
  5. @desc: 指标监控配置
  6. """
  7. from typing import List, Dict
  8. from entitys import MetricConfigEntity
  9. from metrics import f_get_metric_clazz_dict, MetricBase
  10. class ModelMonitorConfigEntity():
  11. def __init__(self, metric_config_list: List[MetricConfigEntity], template_path: str):
  12. self._template_path = template_path
  13. self._metric_clazz_dict = f_get_metric_clazz_dict()
  14. self._metric_dict: Dict[str, MetricBase] = self._init_metric(metric_config_list)
  15. @property
  16. def template_path(self):
  17. return self._template_path
  18. @property
  19. def metric_dict(self):
  20. return self._metric_dict
  21. def _init_metric(self, metric_config_list: List[MetricConfigEntity]) -> Dict[str, MetricBase]:
  22. metric_dict = {}
  23. for metric_config in metric_config_list:
  24. metric_func_name = metric_config.metric_func
  25. metric_code = metric_config.metric_code
  26. # 指标函数不存在
  27. if metric_func_name not in self._metric_clazz_dict.keys():
  28. pass
  29. # 指标code不唯一
  30. if metric_code in metric_dict.keys():
  31. pass
  32. metric_clazz = self._metric_clazz_dict[metric_func_name]
  33. metric_dict[metric_code] = metric_clazz(*metric_config.args, **metric_config.kwargs)
  34. return metric_dict
  35. if __name__ == "__main__":
  36. pass