Quellcode durchsuchen

广告投放平台数据上报

guanzhiyou vor 1 Jahr
Ursprung
Commit
ad584dccd5
1 geänderte Dateien mit 43 neuen und 0 gelöschten Zeilen
  1. 43 0
      all/prometheus/main.go

+ 43 - 0
all/prometheus/main.go

@@ -19,6 +19,7 @@ var (
 	Endpoint                 = "cn-hangzhou.log.aliyuncs.com"
 	adActionLogStore         *sls.LogStore
 	adOwnActionLogStore      *sls.LogStore
+	adPlatformActionLogStore *sls.LogStore
 	adOwnConvLogStore        *sls.LogStore
 	longvideoReqeustLogStore *sls.LogStore
 	videoPlayStore           *sls.LogStore
@@ -33,6 +34,8 @@ var (
 
 	adOwnReportQuerySQL = `* and ownAdSystemType:own| SELECT appType, json_extract_scalar(extParams, '$.eventInfos.ab_test002') AS adGroup, ownAdPositionId, COUNT( DISTINCT CASE WHEN businessType = 'adLoaded' THEN machineCode END ) AS adLoaded, COUNT( DISTINCT CASE WHEN businessType = 'adRequest' THEN machineCode END ) AS adRequest, COUNT( DISTINCT CASE WHEN businessType = 'adView' THEN machineCode END ) AS adView, COUNT( DISTINCT CASE WHEN businessType = 'adClick' THEN machineCode END ) AS adClick, COUNT( DISTINCT CASE WHEN businessType = 'adH5View' THEN machineCode END ) AS adH5View,COUNT( DISTINCT CASE WHEN businessType = 'adH5Load' THEN machineCode END ) AS adH5Load, COUNT( DISTINCT CASE WHEN businessType = 'adCloseBtnTap' THEN machineCode END ) AS adCloseBtnTap, COUNT( DISTINCT CASE WHEN businessType = 'adCloseGestureTap' THEN machineCode END ) AS adCloseGestureTap, COUNT( DISTINCT CASE WHEN businessType = 'adCloseMaskTap' THEN machineCode END ) AS adCloseMaskTap, COUNT( DISTINCT CASE WHEN businessType = 'adLoadError' THEN machineCode END ) AS adLoadError GROUP BY adGroup, ownAdPositionId, appType HAVING adGroup IS NOT NULL AND ownAdPositionId IS NOT NULL ORDER BY appType ASC LIMIT 1000`
 
+	adOwnPlatformReportQuerySQL = `* and ownAdSystemType:ownPlatform| SELECT appType, json_extract_scalar(extParams, '$.eventInfos.ab_test002') AS adGroup, positionId, COUNT( DISTINCT CASE WHEN businessType = 'adLoaded' THEN machineCode END ) AS adLoaded, COUNT( DISTINCT CASE WHEN businessType = 'adRequest' THEN machineCode END ) AS adRequest, COUNT( DISTINCT CASE WHEN businessType = 'adView' THEN machineCode END ) AS adView, COUNT( DISTINCT CASE WHEN businessType = 'adClick' THEN machineCode END ) AS adClick, COUNT( DISTINCT CASE WHEN businessType = 'adH5View' THEN machineCode END ) AS adH5View,COUNT( DISTINCT CASE WHEN businessType = 'adH5Load' THEN machineCode END ) AS adH5Load, COUNT( DISTINCT CASE WHEN businessType = 'adCloseBtnTap' THEN machineCode END ) AS adCloseBtnTap, COUNT( DISTINCT CASE WHEN businessType = 'adCloseGestureTap' THEN machineCode END ) AS adCloseGestureTap, COUNT( DISTINCT CASE WHEN businessType = 'adCloseMaskTap' THEN machineCode END ) AS adCloseMaskTap, COUNT( DISTINCT CASE WHEN businessType = 'adLoadError' THEN machineCode END ) AS adLoadError GROUP BY adGroup, positionId, appType HAVING adGroup IS NOT NULL AND positionId IS NOT NULL ORDER BY appType ASC LIMIT 1000`
+
 	adOwnConvReportQuerySQL = `* | SELECT appId, eventType ,count(*) as conv group by appId, eventType order by conv desc LIMIT 1000`
 
 	adReportQuerySQL4 = `* | SELECT appType, json_extract_scalar(extParams, '$.eventInfos.ab_test004') AS adGroup, CASE WHEN adType = 1 THEN 'BANNER广告' WHEN adType = 2 THEN '视频广告' WHEN adType = 3 THEN '贴片广告' WHEN adType = 4 THEN '插屏广告' WHEN adType = 5 THEN '开屏广告' WHEN adType = 6 THEN '激励广告' ELSE ' ' END AS adType, COUNT( DISTINCT CASE WHEN businessType = 'adLoaded' THEN machineCode END ) AS adLoaded, COUNT( DISTINCT CASE WHEN businessType = 'adRequest' THEN machineCode END ) AS adRequest, COUNT( DISTINCT CASE WHEN businessType = 'adView' THEN machineCode END ) AS adView, COUNT( DISTINCT CASE WHEN businessType = 'adClick' THEN machineCode END ) AS adClick, COUNT( DISTINCT CASE WHEN businessType = 'adShowError' THEN machineCode END ) AS adShowError, COUNT( DISTINCT CASE WHEN businessType = 'adLoadError' THEN machineCode END ) AS adLoadError, COUNT( DISTINCT CASE WHEN businessType = 'adConfigRequest' THEN machineCode END ) AS adConfigRequest, COUNT( DISTINCT CASE WHEN businessType = 'adConfigLoaded' THEN machineCode END ) AS adConfigLoaded GROUP BY adGroup, adType, appType HAVING adGroup IS NOT NULL AND adType != ' ' ORDER BY appType ASC LIMIT 1000`
@@ -116,6 +119,7 @@ func (c *CustomCollector) Describe(ch chan<- *prometheus.Desc) {
 	ch <- c.DistributeApiDesc
 	ch <- c.ShareDataDesc
 	ch <- c.ShareOperationDesc
+	ch <- c.AdPlatformDesc
 }
 
 func (c *CustomCollector) Collect(ch chan<- prometheus.Metric) {
@@ -256,6 +260,37 @@ func (c *CustomCollector) Collect(ch chan<- prometheus.Metric) {
 		}
 	}
 
+	// 投放平台
+	resp, err = adPlatformActionLogStore.GetLogs("", time.Now().Unix()-60, time.Now().Unix(), adOwnPlatformReportQuerySQL, 0, 0, true)
+	if err != nil || resp == nil {
+		log.Printf("get own ad report logs ab_test002 error %+v resp is %+v.", err, resp)
+		return
+	}
+	for _, v := range resp.Logs {
+		for k, v2 := range v {
+			if k == "adRequest" ||
+				k == "adLoadError" ||
+				k == "adConfigRequest" ||
+				k == "adConfigLoaded" ||
+				k == "adLoaded" ||
+				k == "adView" ||
+				k == "adH5View" ||
+				k == "adH5Load" ||
+				k == "adCloseBtnTap" ||
+				k == "adCloseGestureTap" ||
+				k == "adCloseMaskTap" ||
+				k == "adClick" {
+				v3, _ := strconv.ParseFloat(v2, 64)
+				ch <- prometheus.MustNewConstMetric(
+					c.AdPlatformDesc,
+					prometheus.GaugeValue,
+					v3,
+					v["appType"], v["adGroup"], v["positionId"], k,
+				)
+			}
+		}
+	}
+
 	resp, err = adOwnConvLogStore.GetLogs("", time.Now().Unix()-60, time.Now().Unix(), adOwnConvReportQuerySQL, 0, 0, true)
 	if err != nil || resp == nil {
 		log.Printf("get own ad report logs error %+v resp is %+v.", err, resp)
@@ -452,6 +487,8 @@ type CustomCollector struct {
 	ShareDataDesc *prometheus.Desc
 	// 分享卡片操作
 	ShareOperationDesc *prometheus.Desc
+	// 广告投放平台
+	AdPlatformDesc *prometheus.Desc
 }
 
 func main() {
@@ -536,6 +573,12 @@ func main() {
 			[]string{"app_type", "_type"},
 			prometheus.Labels{},
 		),
+		AdPlatformDesc: prometheus.NewDesc(
+			"ad_platform_desc",
+			"Ad Platform Metrics",
+			[]string{"app_type", "ad_group", "positionId", "_type"},
+			prometheus.Labels{},
+		),
 	})
 
 	http.HandleFunc("/metrics", func(w http.ResponseWriter, r *http.Request) {