supeng 4 日 前
コミット
eaa1543746

+ 3 - 0
etl-core/src/main/java/com/tzld/crawler/etl/enums/MetricTypeEnum.java

@@ -31,6 +31,9 @@ import com.fasterxml.jackson.annotation.JsonValue;
  * @since 2023-07-18 14:32.
  */
 public enum MetricTypeEnum {
+    PARAM_INVALID("paramInvalid", "参数无效"),
+    SAVE_DB_FAILED("saveDBFailed", "入库失败"),
+    STRATEGY_FAILED("strategyFailed", "执行策略失败"),
     SUCCESS("success", "处理成功"),
     DURATION("duration", "处理时长"),
     DUPLICATED("duplicated", "重复视频数"),

+ 4 - 0
etl-core/src/main/java/com/tzld/crawler/etl/service/impl/EtlServiceImpl.java

@@ -24,6 +24,7 @@
 
 package com.tzld.crawler.etl.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.google.common.base.Stopwatch;
 import com.google.common.base.Strings;
@@ -160,12 +161,14 @@ public class EtlServiceImpl implements EtlService {
             // 参数校验
             CustomValidator.Result result = CustomValidator.validate(param);
             if (result.notSuccess()) {
+                metric(MetricTypeEnum.PARAM_INVALID, JSON.toJSONString(param));
                 throw new CommonException(ExceptionEnum.PARAM_ERROR, "param validate failed." + result.getMessage());
             }
 
             // 保存数据库(去重校验)
             id = save2db(crawlerVideo);
             if (id <= 0) {
+                metric(MetricTypeEnum.SAVE_DB_FAILED, JSON.toJSONString(crawlerVideo));
                 throw new CommonException(ExceptionEnum.DATA_ERROR, "save2db failed, duplicated out video id.");
             }
 
@@ -175,6 +178,7 @@ public class EtlServiceImpl implements EtlService {
 
             StrategyDataDto data = strategyHandlerService.execute(strategies, param);
             if (data == null) {
+                metric(MetricTypeEnum.STRATEGY_FAILED, JSON.toJSONString(param));
                 throw new CommonException(ExceptionEnum.DATA_ERROR, param + " filter by strategies " + strategies);
             }