@@ -63,14 +63,19 @@ func (t *translator) Translate(conf *confmap.Conf) (component.Config, error) {
6363 return nil , & common.MissingKeyError {ID : t .ID (), JsonKey : ecsSDKey }
6464 }
6565
66- clusterName := getString ( ecsSD , "sd_target_cluster" )
67- if clusterName == "" {
68- clusterName = ecsutil . GetECSUtilSingleton (). Cluster
69- }
66+ // ECS SD Top Level Fields
67+ resultFile := getStringWithDefault ( ecsSD , "sd_result_file" , "/tmp/cwagent_ecs_auto_sd.yaml" )
68+
69+ clusterName := getStringWithDefault ( ecsSD , "sd_target_cluster" , ecsutil . GetECSUtilSingleton (). Cluster )
7070 if clusterName == "" {
7171 return nil , fmt .Errorf ("ECS Target Cluster Name is not defined: %s" , clusterName )
7272 }
7373
74+ clusterRegion := getStringWithDefault (ecsSD , "sd_cluster_region" , ecsutil .GetECSUtilSingleton ().Region )
75+ if clusterRegion == "" {
76+ return nil , fmt .Errorf ("ECS Target Cluster Region is not defined: %s" , clusterRegion )
77+ }
78+
7479 refreshDuration , err := time .ParseDuration (getStringWithDefault (ecsSD , "sd_frequency" , "10s" ))
7580 if err != nil {
7681 return nil , fmt .Errorf ("invalid refresh interval: %w" , err )
@@ -79,8 +84,8 @@ func (t *translator) Translate(conf *confmap.Conf) (component.Config, error) {
7984 cfg := & ecsobserver.Config {
8085 RefreshInterval : refreshDuration ,
8186 ClusterName : clusterName ,
82- ClusterRegion : getString ( ecsSD , "sd_cluster_region" ) ,
83- ResultFile : getString ( ecsSD , "sd_result_file" ) ,
87+ ClusterRegion : clusterRegion ,
88+ ResultFile : resultFile ,
8489 }
8590 // Docker label based service discovery
8691 if dockerLabel , ok := ecsSD ["docker_label" ].(map [string ]interface {}); ok {
0 commit comments