func ReplacePrometheusConfig()

in internal/manifests/collector/config_replace.go [111:167]


func ReplacePrometheusConfig(instance v1alpha1.AmazonCloudWatchAgent) (string, error) {
	promConfigYaml, err := instance.Spec.Prometheus.Yaml()
	if err != nil {
		return "", fmt.Errorf("%s could not convert json to yaml", err)
	}

	// Check if TargetAllocator is enabled, if not, return the original config
	if !instance.Spec.TargetAllocator.Enabled {
		prometheusConfig, err := adapters.ConfigFromString(promConfigYaml)
		if err != nil {
			return "", err
		}

		prometheusConfigYAML, err := yaml.Marshal(prometheusConfig)
		if err != nil {
			return "", err
		}

		return string(prometheusConfigYAML), nil
	}

	promCfgMap, getCfgPromErr := adapters.ConfigFromString(promConfigYaml)
	if getCfgPromErr != nil {
		return "", getCfgPromErr
	}

	validateCfgPromErr := ta.ValidatePromConfig(promCfgMap, instance.Spec.TargetAllocator.Enabled, featuregate.EnableTargetAllocatorRewrite.IsEnabled())
	if validateCfgPromErr != nil {
		return "", validateCfgPromErr
	}

	if featuregate.EnableTargetAllocatorRewrite.IsEnabled() {
		updPromCfgMap, getCfgPromErr := ta.AddTAConfigToPromConfig(promCfgMap, naming.TAService(instance.Name))
		if getCfgPromErr != nil {
			return "", getCfgPromErr
		}

		out, updCfgMarshalErr := yaml.Marshal(updPromCfgMap)
		if updCfgMarshalErr != nil {
			return "", updCfgMarshalErr
		}

		return string(out), nil
	}

	updPromCfgMap, err := ta.AddHTTPSDConfigToPromConfig(promCfgMap, naming.TAService(instance.Name))
	if err != nil {
		return "", err
	}

	out, err := yaml.Marshal(updPromCfgMap)
	if err != nil {
		return "", err
	}

	return string(out), nil
}