package analyze import ( "yunyan/lego/utils/mapstructure" "yunyan/modules" ) type Options struct { modules.Options AppName string // 本部署应用名称;落 stats_global_day.app_id(须与 console 注册表名称一致)。统计上报的核心维度 Region int32 // 本部署所属区域;取值见 pb.Region 枚举。每区域只写自己的行,多区域同步不冲突 SyncInterval int // Redis→DB 同步间隔(秒),默认 600;设为 86400 即每天同步一次 Subject string // 转发到运维服务的 NATS subject(如 stats.event);为空则不转发(双写过渡开关) Timezone string // 统计日界时区,默认 Asia/Shanghai;决定 0 点切日口径,须与 console 端一致 } // AppKey 返回落库用的应用标识(app_id 列),即配置的应用名称。 func (this *Options) AppKey() string { return this.AppName } func (this *Options) LoadConfig(settings map[string]interface{}) (err error) { if settings != nil { if err = this.Options.LoadConfig(settings); err != nil { return } if err = mapstructure.Decode(settings, this); err != nil { return } } if this.SyncInterval <= 0 { this.SyncInterval = 600 } return }