| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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)
- }
- }
- }
- }
|