diff --git a/app/appg/appg.go b/app/appg/appg.go index a6049f2..7c08960 100644 --- a/app/appg/appg.go +++ b/app/appg/appg.go @@ -110,7 +110,8 @@ type GlobalCfgEx struct { AesKey string `yaml:"aesKey"` // 数据解密KEY } `yaml:"adCenter"` DataReport struct { - Url string `yaml:"url"` + Url string `yaml:"url"` + Disabled bool `yaml:"disabled"` } `yaml:"dataReport"` LsjMediaConf struct { AppId string `yaml:"appId"` diff --git a/app/conf/app.yaml b/app/conf/app.yaml index 8902e2a..0e5510f 100644 --- a/app/conf/app.yaml +++ b/app/conf/app.yaml @@ -43,6 +43,7 @@ adCenter: aesKey: "gD4+rmbX5TS5cLbb3wAN5uEAYp/1j4hkQrS9SzuSjc8" dataReport: url: "https://api.shuifeng.cc" + disabled: true lsjMediaConf: appId: "430696" apiKey: "ed48e96ce490bc94bd5eb5133dd542d0" diff --git a/app/server/server.go b/app/server/server.go index cb9a922..f72bf30 100644 --- a/app/server/server.go +++ b/app/server/server.go @@ -74,8 +74,9 @@ func Run(args []string) { initData() ipstatsync.StartSync() dataReport.Init(dataReport.Config{ - ApiUrl: appg.Conf.DataReport.Url, - RunMod: appg.Conf.RunMod, + ApiUrl: appg.Conf.DataReport.Url, + RunMod: appg.Conf.RunMod, + Disabled: appg.Conf.DataReport.Disabled, }) initHttpServer() diff --git a/app/service/reportser/report.go b/app/service/reportser/report.go index ed59e48..ea7fa69 100644 --- a/app/service/reportser/report.go +++ b/app/service/reportser/report.go @@ -428,6 +428,9 @@ func md5String(input string) string { } func insertEvent(event dataReport.CommonField) { + if !dataReport.Enabled() { + return + } b, _ := json.Marshal(event) if err := eventmod.InsertOneEvent(context.Background(), &eventmod.Event{ EventId: event.EventID, diff --git a/pub/dataReport/handle.go b/pub/dataReport/handle.go index 50da23e..2afd768 100644 --- a/pub/dataReport/handle.go +++ b/pub/dataReport/handle.go @@ -41,7 +41,15 @@ func GenerateGlobalEventID() string { return strings.ReplaceAll(uuid.New().String(), "-", "") } +// Enabled 当前是否允许上报:Disabled=true 或 ApiUrl 为空都视为关闭。 +func Enabled() bool { + return !config.Disabled && strings.TrimSpace(config.ApiUrl) != "" +} + func AsyncReport(eventData interface{}, retryCount int) { + if !Enabled() { + return + } // TODO 后续可改成kafka异步处理 godef.Go(func() { // 自动重试 @@ -227,6 +235,9 @@ func JsonRawMessage(v interface{}) json.RawMessage { // 批量上报事件 func BatchReport(ctx context.Context, data interface{}) error { + if !Enabled() { + return nil + } apiUrl := config.ApiUrl + "/api/eventTracking/batchReport.json" reqBody, err := json.Marshal(data) if err != nil { diff --git a/pub/dataReport/sdk_config.go b/pub/dataReport/sdk_config.go index e8c748f..1783a05 100644 --- a/pub/dataReport/sdk_config.go +++ b/pub/dataReport/sdk_config.go @@ -39,6 +39,10 @@ type sdkConfigResponse struct { // StartSDKConfigCron 定时拉取 SDK 域名配置串,服务端只缓存并原样透传。 func StartSDKConfigCron() { + if !Enabled() { + log.Info("dataReport disabled, skip SDK config cron") + return + } sdkConfigOnce.Do(func() { if err := RefreshSDKDomainConfig(); err != nil { log.Error("RefreshSDKDomainConfig first run fail", log.E(err)) diff --git a/pub/dataReport/type.go b/pub/dataReport/type.go index 09dc4f0..bdd6f94 100644 --- a/pub/dataReport/type.go +++ b/pub/dataReport/type.go @@ -12,8 +12,9 @@ type Response struct { } type Config struct { - ApiUrl string `json:"apiUrl"` - RunMod string `json:"runMod"` // 运行模式: dev/test/prod/release + ApiUrl string `json:"apiUrl"` + RunMod string `json:"runMod"` // 运行模式: dev/test/prod/release + Disabled bool `json:"disabled"` // true 时跳过全部埋点上报与 SDK 配置拉取 } const ( diff --git a/web/server/server.go b/web/server/server.go index 80975bb..6133af9 100644 --- a/web/server/server.go +++ b/web/server/server.go @@ -81,8 +81,9 @@ func Run(args []string) { initData() initSeoPush() dataReport.Init(dataReport.Config{ - ApiUrl: webg.Conf.DataReport.Url, - RunMod: webg.Conf.RunMod, + ApiUrl: webg.Conf.DataReport.Url, + RunMod: webg.Conf.RunMod, + Disabled: webg.Conf.DataReport.Disabled, }) initHttpServer() diff --git a/web/skd/job/reportdata/event.go b/web/skd/job/reportdata/event.go index 2ec6201..2586bd1 100644 --- a/web/skd/job/reportdata/event.go +++ b/web/skd/job/reportdata/event.go @@ -19,6 +19,9 @@ const ( ) func Report() { + if !dataReport.Enabled() { + return + } //防止重入 if isRuining { return diff --git a/web/webg/webg.go b/web/webg/webg.go index 9041715..d92a8d3 100644 --- a/web/webg/webg.go +++ b/web/webg/webg.go @@ -58,7 +58,8 @@ type GlobalCfgEx struct { } `yaml:"playletMediaResourceDBCfg"` NewInnerStatUrl string `yaml:"newInnerStatUrl"` DataReport struct { - Url string `yaml:"url"` + Url string `yaml:"url"` + Disabled bool `yaml:"disabled"` } `yaml:"dataReport"` NewPayCenter payCenter.Conf `yaml:"newPayCenter"` DataCenterBackflow struct {