# -*- coding: utf-8 -*- """ @author: yq @time: 2024/11/1 @desc: """ from data import DataLoaderMysql from entitys import MetricFucResultEntity,DbConfigEntity from metrics import MetricBase, f_register_metric_func from monitor import MonitorMetric class BMetric(MetricBase): def __init__(self, v: str, *args, **kwargs): super().__init__(*args, **kwargs) self._v = v def calculate(self, *args, **kwargs) -> MetricFucResultEntity: if ".png" in self._v: return MetricFucResultEntity(image_path=self._v) else: return MetricFucResultEntity(value=self._v) if __name__ == "__main__": f_register_metric_func(BMetric) data_loader = DataLoaderMysql(DbConfigEntity.from_config("./config/mysql_config.json")) monitor_metric = MonitorMetric("./config/monitor_config_template_excel.json") monitor_metric.calculate_metric(data_loader=data_loader) monitor_metric.generate_report()