in otelcollector/shared/configmap/mp/tomlparser-set-global-config.go [44:92]
func SetGlobalSettingsInCollectorConfig() {
azmonSetGlobalSettings := os.Getenv("AZMON_SET_GLOBAL_SETTINGS")
if azmonSetGlobalSettings == "true" {
mergedCollectorConfigPath := "/opt/microsoft/otelcollector/collector-config.yml"
mergedCollectorConfigFileContents, err := os.ReadFile(mergedCollectorConfigPath)
if err != nil {
fmt.Printf("Unable to read file contents from: %s - %v\n", mergedCollectorConfigPath, err)
return
}
var promScrapeConfig map[string]interface{}
var otelConfig OtelConfig
err = yaml.Unmarshal([]byte(mergedCollectorConfigFileContents), &otelConfig)
if err != nil {
fmt.Printf("Unable to unmarshal merged otel configuration from: %s - %v\n", mergedCollectorConfigFileContents, err)
return
}
promScrapeConfig = otelConfig.Receivers.Prometheus.Config
globalSettingsFromMergedOtelConfig := promScrapeConfig["global"]
if globalSettingsFromMergedOtelConfig != nil {
fmt.Println("Found global settings in merged otel config, triyng to replace replicaset collector config")
collectorConfigReplicasetPath := "/opt/microsoft/otelcollector/collector-config-replicaset.yml"
replicasetCollectorConfigFileContents, err := os.ReadFile(collectorConfigReplicasetPath)
if err != nil {
fmt.Printf("Unable to read file contents from: %s - %v\n", replicasetCollectorConfigFileContents, err)
return
}
var otelConfigReplicaset OtelConfig
err = yaml.Unmarshal([]byte(replicasetCollectorConfigFileContents), &otelConfigReplicaset)
if err != nil {
fmt.Printf("Unable to unmarshal merged otel configuration from: %s - %v\n", replicasetCollectorConfigFileContents, err)
return
}
otelConfigReplicaset.Receivers.Prometheus.Config = map[string]interface{}{"global": ""}
otelConfigReplicaset.Receivers.Prometheus.Config["global"] = globalSettingsFromMergedOtelConfig
otelReplacedConfigYaml, _ := yaml.Marshal(otelConfigReplicaset)
if err := os.WriteFile(collectorConfigReplicasetPath, otelReplacedConfigYaml, 0644); err != nil {
fmt.Printf("Unable to write to: %s - %v\n", collectorConfigReplicasetPath, err)
return
}
log.Println("Updated file with global settings", collectorConfigReplicasetPath)
return
}
fmt.Println("Global settings are empty in custom config map, making no replacement")
}
}