|
@@ -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) {
|