supeng 1 year ago
parent
commit
92e2ffb388
1 changed files with 50 additions and 5 deletions
  1. 50 5
      all/prometheus/main.go

+ 50 - 5
all/prometheus/main.go

@@ -18,6 +18,7 @@ var (
 	AccessKeySecret          = "RfSjdiWwED1sGFlsjXv0DlfTnZTG1P"
 	Endpoint                 = "cn-hangzhou.log.aliyuncs.com"
 	adActionLogStore         *sls.LogStore
+	adOwnActionLogStore      *sls.LogStore
 	longvideoReqeustLogStore *sls.LogStore
 	videoPlayStore           *sls.LogStore
 	videoActionStore         *sls.LogStore
@@ -25,7 +26,12 @@ var (
 	userShareStore           *sls.LogStore
 	adRequestStore           *sls.LogStore
 
-	adReportQuerySQL  = `* | SELECT appType, json_extract_scalar(extParams, '$.eventInfos.ab_test002') 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`
+	adReportQuerySQL = `* | SELECT appType, json_extract_scalar(extParams, '$.eventInfos.ab_test002') 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`
+
+	adOwnWecahtReportQuerySQL = `* | SELECT appType, json_extract_scalar(extParams, '$.eventInfos.ab_test002') 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`
+
+	//adOwnReportQuerySQL = `* | SELECT appType, json_extract_scalar(extParams, '$.eventInfos.ab_test002') 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`
+
 	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`
 	apiQuerySQL       = `* and requestUri: "/longvideoapi/video/distribute/category/videoList/v2" or requestUri: "/longvideoapi/video/v2/detail" or requestUri: "/longvideoapi/video/v2/sharePageDetail" or requestUri: "/longvideoapi/video/recommend/sharePage/list" | SELECT requestUri, json_extract_scalar(params, '$.appType') as appType, COUNT(*) as total, count( case when resultCode = 0 THEN 1 else null end ) as success, count( case when resultCode != 0 THEN 1 else null end ) as error GROUP by appType, requestUri order by requestUri asc limit 1000`
 	videoPlayQuerySQL = `* | select appType, COUNT(*) as cnt, businessType, pageSource GROUP by appType, businessType, pageSource ORDER BY appType ASC, cnt DESC LIMIT 1000`
@@ -57,6 +63,11 @@ func init() {
 		panic(err)
 	}
 
+	adOwnActionLogStore, err = client.GetLogStore("video-upload-data-prod", "own-ad-action-log")
+	if err != nil {
+		panic(err)
+	}
+
 	videoActionStore, err = client.GetLogStore("wqsd-video", "video-action-log")
 	if err != nil {
 		panic(err)
@@ -85,6 +96,7 @@ func init() {
 
 func (c *CustomCollector) Describe(ch chan<- *prometheus.Desc) {
 	ch <- c.AdInfoDesc
+	ch <- c.AdOwnWechatInfoDesc
 	ch <- c.ApiInfoDesc
 	ch <- c.VideoPlayDesc
 	ch <- c.AdConfigDesc
@@ -169,6 +181,32 @@ func (c *CustomCollector) Collect(ch chan<- prometheus.Metric) {
 		}
 	}
 
+	resp, err = adOwnActionLogStore.GetLogs("", time.Now().Unix()-60, time.Now().Unix(), adOwnWecahtReportQuerySQL, 0, 0, true)
+	if err != nil || resp == nil {
+		log.Printf("get 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 == "adShowError" ||
+				k == "adLoadError" ||
+				k == "adConfigRequest" ||
+				k == "adConfigLoaded" ||
+				k == "adLoaded" ||
+				k == "adView" ||
+				k == "adClick" {
+				v3, _ := strconv.ParseFloat(v2, 64)
+				ch <- prometheus.MustNewConstMetric(
+					c.AdOwnWechatInfoDesc,
+					prometheus.GaugeValue,
+					v3,
+					v["appType"], v["adGroup"], v["adType"], k,
+				)
+			}
+		}
+	}
+
 	resp, err = adRequestStore.GetLogs("", time.Now().Unix()-60, time.Now().Unix(), adConfigQuerySQL, 0, 0, true)
 	if err != nil || resp == nil {
 		log.Printf("get ad config logs error %+v resp is %+v.", err, resp)
@@ -327,10 +365,11 @@ func (c *CustomCollector) Collect(ch chan<- prometheus.Metric) {
 }
 
 type CustomCollector struct {
-	AdInfoDesc   *prometheus.Desc
-	ApiInfoDesc  *prometheus.Desc
-	AdConfigDesc *prometheus.Desc
-	AdInfo4Desc  *prometheus.Desc
+	AdInfoDesc          *prometheus.Desc
+	AdOwnWechatInfoDesc *prometheus.Desc
+	ApiInfoDesc         *prometheus.Desc
+	AdConfigDesc        *prometheus.Desc
+	AdInfo4Desc         *prometheus.Desc
 	// 视频播放
 	VideoPlayDesc *prometheus.Desc
 	// 接口响应时间
@@ -355,6 +394,12 @@ func main() {
 			[]string{"app_type", "ad_group", "ad_type", "_type"},
 			prometheus.Labels{},
 		),
+		AdOwnWechatInfoDesc: prometheus.NewDesc(
+			"ad_own_wechat_metrics_info",
+			"Front report ad metrics info",
+			[]string{"app_type", "ad_group", "ad_type", "_type"},
+			prometheus.Labels{},
+		),
 		ApiInfoDesc: prometheus.NewDesc(
 			"api_metrics_info",
 			"Core API Metrics Info",