@@ -27,13 +27,23 @@ import (
2727)
2828
2929type ScrapeConf struct {
30- APIVersion string `yaml:"apiVersion"`
31- StsRegion string `yaml:"sts-region"`
32- OAMSinkIdentifier string `yaml:"oamSinkIdentifier"`
33- OAMRegion string `yaml:"oamRegion"`
34- Discovery Discovery `yaml:"discovery"`
35- Static []* Static `yaml:"static"`
36- CustomNamespace []* CustomNamespace `yaml:"customNamespace"`
30+ APIVersion string `yaml:"apiVersion"`
31+ StsRegion string `yaml:"sts-region"`
32+ LinkedAccounts LinkedAccountsConfig `yaml:"linkedAccounts"`
33+ OAMSinkIdentifier string `yaml:"oamSinkIdentifier"` // deprecated: use linkedAccounts.oam.sinkIdentifier
34+ OAMRegion string `yaml:"oamRegion"` // deprecated: use linkedAccounts.oam.region
35+ Discovery Discovery `yaml:"discovery"`
36+ Static []* Static `yaml:"static"`
37+ CustomNamespace []* CustomNamespace `yaml:"customNamespace"`
38+ }
39+
40+ type LinkedAccountsOAM struct {
41+ SinkIdentifier string `yaml:"sinkIdentifier"`
42+ Region string `yaml:"region"`
43+ }
44+
45+ type LinkedAccountsConfig struct {
46+ OAM LinkedAccountsOAM `yaml:"oam"`
3747}
3848
3949type Discovery struct {
@@ -445,8 +455,13 @@ func (m *Metric) validateMetric(logger *slog.Logger, metricIdx int, parent strin
445455func (c * ScrapeConf ) toModelConfig () model.JobsConfig {
446456 jobsCfg := model.JobsConfig {}
447457 jobsCfg .StsRegion = c .StsRegion
448- jobsCfg .OAMSinkIdentifier = c .OAMSinkIdentifier
449- jobsCfg .OAMRegion = c .OAMRegion
458+ if c .LinkedAccounts .OAM .SinkIdentifier != "" {
459+ jobsCfg .OAMSinkIdentifier = c .LinkedAccounts .OAM .SinkIdentifier
460+ jobsCfg .OAMRegion = c .LinkedAccounts .OAM .Region
461+ } else {
462+ jobsCfg .OAMSinkIdentifier = c .OAMSinkIdentifier
463+ jobsCfg .OAMRegion = c .OAMRegion
464+ }
450465
451466 for _ , discoveryJob := range c .Discovery .Jobs {
452467 svc := SupportedServices .GetService (discoveryJob .Type )
0 commit comments