# -*- coding: utf-8 -*- """ @author: yq @time: 2024/11/1 @desc: 监控报告 """ import threading from typing import Dict from entitys import ModelMonitorConfigEntity, MetricFucEntity class MonitorModel(): def __init__(self, model_monitor_config: ModelMonitorConfigEntity): self._model_monitor_config = model_monitor_config self.lock = threading.Lock() self._metric_value_dict: Dict[str, MetricFucEntity] = {} def _update_metric_value_dict(self, key, value): with self.lock: self._metric_value_dict[key] = value # TODO 多线程计算指标 def calculate_metric(self): metric_dict = self._model_monitor_config.metric_dict for metric_code, metric_clazz in metric_dict.items(): metric_value = metric_clazz.calculate() self._update_metric_value_dict(metric_code, metric_value) if __name__ == "__main__": pass