Browse Source

Merge branch 'feature_20240722_add_log' of algorithm/ad-engine into master

zhaohaipeng 9 tháng trước cách đây
mục cha
commit
bfa5e9f00f

+ 3 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/feature/Feature.java

@@ -7,6 +7,9 @@ import java.util.Map;
 
 @Data
 public class Feature {
+
+    private long elapsed;
+
     // k1:创意、k2:表、k3:特征、v:特征值
     private Map<String, Map<String, Map<String, String>>> cidFeature = new HashMap<>();
 

+ 3 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/feature/FeatureService.java

@@ -79,9 +79,12 @@ public class FeatureService {
             protos.add(genWithMid("alg_mid_feature_share_tags", param.getMid()));
         }
 
+        long start = System.currentTimeMillis();
         Map<String, String> featureMap = remoteService.getFeature(protos);
         featureMap = this.featureStrCover(featureMap);
+
         Feature feature = new Feature();
+        feature.setElapsed(System.currentTimeMillis() - start);
 
         for (Map.Entry<String, String> entry : featureMap.entrySet()) {
             String key = entry.getKey();

+ 1 - 14
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/log/impl/LogHubServiceImpl.java

@@ -54,7 +54,6 @@ public class LogHubServiceImpl implements LogHubService {
                 logMap.put("abcode", param.getAdAbGroup());
                 logMap.put("expid", abCode);
                 logMap.put("apptype", context.getApptype());
-                logMap.put("extinfo", new JSONObject());
 
                 // 获取AB实验列表
                 Set<String> abExpCode = new HashSet<>();
@@ -102,6 +101,7 @@ public class LogHubServiceImpl implements LogHubService {
                 logMap.put("adid", top1.getId());
                 logMap.put("campaignid", top1.getCampaignId());
                 logMap.put("score", top1.getScore());
+                logMap.put("extinfo", JSON.toJSONString(top1.getExt()));
 
 
                 top1.getScoreMap().put("score", top1.getScore());
@@ -109,19 +109,6 @@ public class LogHubServiceImpl implements LogHubService {
                 logMap.put("allfeature", JSON.toJSONString(top1.getFeatureMap()));
                 logMap.put("metafeature", JSON.toJSONString(top1.getMetaFeatureMap()));
 
-
-                // logMap.put("scorestrategy", scoreStrategy);
-                // logMap.put("creativeList", JSON.toJSONString(adIdList));
-                // if (Objects.nonNull(requestParam.getStatisticsLog())) {
-                //     extInfo.put("earlyAdIds", requestParam.getStatisticsLog().getEarlyAdIds());
-                //     extInfo.put("earlyCidList", requestParam.getStatisticsLog().getEarlyCreativeIds());
-                //     extInfo.put("finalCidList", requestParam.getStatisticsLog().getFinalCreativeIds());
-                //     extInfo.put("commonFilterAfterAdIds", requestParam.getStatisticsLog().getCommonFilterAfterAdIds());
-                //     extInfo.put("commonFilterAfterCidList", requestParam.getStatisticsLog().getCommonFilterAfterCreativeIds());
-                //     extInfo.put("tacticsFilterAfterAdIds", requestParam.getStatisticsLog().getTacticsFilterAfterAdIds());
-                //     extInfo.put("tacticsFilterAfterCidList", requestParam.getStatisticsLog().getTacticsFilterAfterCreativeIds());
-                // }
-
                 aliyunLogManager.sendLog(project, logStore, "", logMap);
             }
         });

+ 9 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/model/threshold/RandomPredictModel.java

@@ -1,5 +1,6 @@
 package com.tzld.piaoquan.ad.engine.service.predict.model.threshold;
 
+import com.alibaba.fastjson.JSONObject;
 import com.tzld.piaoquan.ad.engine.commons.util.DateUtils;
 import com.tzld.piaoquan.ad.engine.commons.util.JSONUtils;
 import com.tzld.piaoquan.ad.engine.service.predict.container.RandWContainer;
@@ -46,6 +47,14 @@ public class RandomPredictModel extends ThresholdPredictModel {
         result.put("score", score);
         result.put("threshold", threshold);
         result.put("model", "random");
+
+        JSONObject logJson = new JSONObject();
+        logJson.putAll(result);
+        logJson.put("mid", modelParam.getMid());
+        logJson.put("expId", "599");
+        logJson.put("appType", appType);
+        logJson.put("thresholdParamKey", thresholdParamKey);
+
         log.info("广告跳出选择 -- 599实验结果: {}, 参数: {}, {}, {}",
                 JSONUtils.toJson(result), appType, modelParam.getMid(), thresholdParamKey);
         return result;

+ 7 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/RankService680.java

@@ -43,7 +43,12 @@ public class RankService680 {
 
 
         // 特征处理
+        long start = System.currentTimeMillis();
         Feature feature = this.getFeature(scoreParam, request);
+        long getFeatureElapsed = System.currentTimeMillis() - start;
+
+        long invokeFeatureServiceElapsed = feature.getElapsed();
+
         Map<String, Map<String, String>> userFeature = feature.getUserFeature();
         Map<String, Map<String, String>> videoFeature = feature.getVideoFeature();
         Map<String, Map<String, Map<String, String>>> allAdVerFeature = feature.getAdVerFeature();
@@ -74,6 +79,8 @@ public class RankService680 {
             adRankItem.setCpa(dto.getCpa());
             adRankItem.setId(dto.getAdId());
             adRankItem.setCampaignId(dto.getCampaignId());
+            adRankItem.getExt().put("getFeatureElapsed", String.valueOf(getFeatureElapsed));
+            adRankItem.getExt().put("invokeFeatureServiceElapsed", String.valueOf(invokeFeatureServiceElapsed));
 
             String cidStr = dto.getCreativeId().toString();
             Map<String, String> cidFeatureMap = new HashMap<>();

+ 4 - 10
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/impl/RankServiceImpl.java

@@ -90,17 +90,11 @@ public class RankServiceImpl implements RankService {
 
     private AdRankItem rankBy680(RankRecommendRequestParam request) {
         ScoreParam scoreParam = RequestConvert.requestConvert(request);
+        long start = System.currentTimeMillis();
         List<AdRankItem> adRankItems = fmRankService.adItemRank(request, scoreParam);
-        // List<JSONObject> collect = adRankItems.stream().map(i -> {
-        //     JSONObject json = new JSONObject();
-        //     json.put("cid", i.getAdId());
-        //     json.put("lrScore", i.getLrScore());
-        //     json.put("score", i.getScore());
-        //     json.put("metaFeatureMap", i.getMetaFeatureMap());
-        //     json.put("allFeatureMap", i.getFeatureMap());
-        //     return json;
-        // }).collect(Collectors.toList());
-        // log.info("LR模型打分结果: {}", JSON.toJSONString(collect));
+        for (AdRankItem adRankItem : adRankItems) {
+            adRankItem.getExt().put("rankElapsed", String.valueOf(System.currentTimeMillis() - start));
+        }
         logHubService.scoreLogUpload(scoreParam, request.getAdIdList(), adRankItems, request, "LRModelScore", "680");
         return adRankItems.get(0);
     }