monitor_model.py 919 B

123456789101112131415161718192021222324252627282930313233
  1. # -*- coding: utf-8 -*-
  2. """
  3. @author: yq
  4. @time: 2024/11/1
  5. @desc: 监控报告
  6. """
  7. import threading
  8. from typing import Dict
  9. from entitys import ModelMonitorConfigEntity, MetricFucEntity
  10. class MonitorModel():
  11. def __init__(self, model_monitor_config: ModelMonitorConfigEntity):
  12. self._model_monitor_config = model_monitor_config
  13. self.lock = threading.Lock()
  14. self._metric_value_dict: Dict[str, MetricFucEntity] = {}
  15. def _update_metric_value_dict(self, key, value):
  16. with self.lock:
  17. self._metric_value_dict[key] = value
  18. # TODO 多线程计算指标
  19. def calculate_metric(self):
  20. metric_dict = self._model_monitor_config.metric_dict
  21. for metric_code, metric_clazz in metric_dict.items():
  22. metric_value = metric_clazz.calculate()
  23. self._update_metric_value_dict(metric_code, metric_value)
  24. if __name__ == "__main__":
  25. pass