package config import ( "github.com/coroot/coroot-node-agent/flags" klog "github.com/sirupsen/logrus" "gopkg.in/ini.v1" ) // loadConfigFromCommonIni 从 common.ini 加载 ConfigServer 和 DataServer // 注意:RunInOmniagent 是启动时确定的标志,不支持热更新 // 只有在值真正改变时才会更新 ProxyClient func loadConfigFromCommonIni() { // RunInOmniagent 在启动时已经确定,这里直接使用其值 if !*flags.RunInOmniagent || *flags.CommonIni == "" { return } iniData, err := ini.Load(*flags.CommonIni) if err != nil { klog.Debugf("Failed to load common.ini: %v", err) return } if iniData != nil { configServer := iniData.Section("common").Key("config_server").String() dataServer := iniData.Section("common").Key("data_server").String() // 检查 config_server 是否改变 if configServer != "" { oldConfigServer := *flags.ConfigServer if configServer != oldConfigServer { *flags.ConfigServer = configServer klog.Infof("config_server changed in common.ini: %s -> %s", oldConfigServer, configServer) // 更新 ProxyClient 的 endpoints(只有在值改变时才更新) updateProxyClientEndpoints(configServer) } else { klog.Debugf("config_server in common.ini unchanged: %s", configServer) } } // 检查 data_server 是否改变 if dataServer != "" { oldDataServer := *flags.DataServer if dataServer != oldDataServer { *flags.DataServer = dataServer klog.Infof("data_server changed in common.ini: %s -> %s", oldDataServer, dataServer) } else { klog.Debugf("data_server in common.ini unchanged: %s", dataServer) } } } }