|
|
@@ -77,6 +77,9 @@ func (c *Config) Init(viperInstance *viper.Viper) {
|
|
|
|
|
|
// 5. 收集 common.ini 中的值(特殊处理)
|
|
|
c.collectCommonIniValues()
|
|
|
+
|
|
|
+ // 6. 将配置文件中的值同步到 flags(使 *flags.XXX 在启动时也能反映配置文件优先级)
|
|
|
+ c.syncFlagsValues()
|
|
|
}
|
|
|
|
|
|
// collectCmdLineValues 收集命令行参数值
|
|
|
@@ -412,6 +415,16 @@ func (c *Config) syncFlagsValues() {
|
|
|
if val := getValueUnsafe("server.server_prefix"); val != nil {
|
|
|
if s, ok := val.(string); ok {
|
|
|
*flags.ServerPrefix = s
|
|
|
+ // 重新计算 TracesEndpoint,使 /data/receive 也使用更新后的前缀
|
|
|
+ dataServer := *flags.DataServer
|
|
|
+ if dataServer != "" {
|
|
|
+ if !strings.HasPrefix(dataServer, "http") {
|
|
|
+ dataServer = "http://" + dataServer
|
|
|
+ }
|
|
|
+ if u, err := url.Parse(dataServer); err == nil && u != nil {
|
|
|
+ *flags.TracesEndpoint = u.JoinPath(s + "/api/v2/data/receive")
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|