Skip to content

Commit 745af00

Browse files
committed
Retrieve ECS Cluster Region when empty
1 parent 05373c7 commit 745af00

3 files changed

Lines changed: 17 additions & 10 deletions

File tree

extension/ecsobserver/ecsobserver.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ type ECSObserver struct {
2424
func NewECSObserver(config *ecsobserver.Config, logger *zap.Logger, settings component.TelemetrySettings) (*ECSObserver, error) {
2525
// Create the OpenTelemetry ECS observer extension
2626
factory := ecsobserver.NewFactory()
27-
27+
2828
// Create component ID with the correct type that the upstream factory expects
2929
componentID := component.NewIDWithName(component.MustNewType("ecs_observer"), "")
30-
30+
3131
ext, err := factory.Create(
3232
context.Background(),
3333
extension.Settings{

extension/ecsobserver/main.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,7 @@ import (
77
_ "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver"
88
)
99

10-
// This file ensures that the ecsobserver package is properly initialized.
11-
// The blank import above ensures that the ecsobserver extension is registered.
10+
/*
11+
This file ensures that the ecsobserver package is properly initialized
12+
The blank import above ensures that the ecsobserver extension is registered
13+
*/

translator/translate/otel/extension/ecsobserver/translator.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)