diff --git a/filebeat/autodiscover/builder/hints/logs.go b/filebeat/autodiscover/builder/hints/logs.go index a26f64ace670..d0aa8cf34e9e 100644 --- a/filebeat/autodiscover/builder/hints/logs.go +++ b/filebeat/autodiscover/builder/hints/logs.go @@ -59,17 +59,17 @@ type logHints struct { // InitializeModule initializes this module. func InitializeModule() { - _ = autodiscover.Registry.AddBuilder("hints", NewLogHints) + _ = autodiscover.Registry.AddBuilder("hints", newLogHints) } -// NewLogHints builds a log hints builder -func NewLogHints(cfg *conf.C, logger *logp.Logger) (autodiscover.Builder, error) { +// newLogHints builds a log hints builder +func newLogHints(cfg *conf.C, logger *logp.Logger, paths *paths.Path) (autodiscover.Builder, error) { config := defaultConfig() if err := cfg.Unpack(&config); err != nil { return nil, fmt.Errorf("unable to unpack hints config due to error: %w", err) } - moduleRegistry, err := fileset.NewModuleRegistry(nil, beat.Info{Logger: logger}, false, fileset.FilesetOverrides{}, paths.Paths) + moduleRegistry, err := fileset.NewModuleRegistry(nil, beat.Info{Logger: logger}, false, fileset.FilesetOverrides{}, paths) if err != nil { return nil, err } diff --git a/filebeat/autodiscover/builder/hints/logs_test.go b/filebeat/autodiscover/builder/hints/logs_test.go index 4eebc608fb04..73683fbcf9d6 100644 --- a/filebeat/autodiscover/builder/hints/logs_test.go +++ b/filebeat/autodiscover/builder/hints/logs_test.go @@ -1205,12 +1205,13 @@ func TestGenerateHints(t *testing.T) { t.Run(test.msg, func(t *testing.T) { // Configure path for modules access abs, _ := filepath.Abs("../../..") - require.NoError(t, paths.InitPaths(&paths.Path{ + p := paths.New() + require.NoError(t, p.InitPaths(&paths.Path{ Home: abs, })) logger := logptest.NewTestingLogger(t, "") - l, err := NewLogHints(test.config, logger) + l, err := newLogHints(test.config, logger, p) if err != nil { t.Fatal(err) } @@ -1442,11 +1443,12 @@ func TestGenerateHintsWithPaths(t *testing.T) { // Configure path for modules access abs, _ := filepath.Abs("../../..") - require.NoError(t, paths.InitPaths(&paths.Path{ + p := paths.New() + require.NoError(t, p.InitPaths(&paths.Path{ Home: abs, })) logger := logptest.NewTestingLogger(t, "") - l, err := NewLogHints(cfg, logger) + l, err := newLogHints(cfg, logger, p) if err != nil { t.Fatal(err) } @@ -1487,7 +1489,7 @@ func TestCreateConfigResolvesVariablesFromOptions(t *testing.T) { "hints": mapstr.M{"logs": mapstr.M{"raw": `[{"type":"docker","containers":{"ids":["${data.container.id}"]},"password":"${PASSWORD}"}]`}}, } - l, err := NewLogHints(cfg, logptest.NewTestingLogger(t, "")) + l, err := newLogHints(cfg, logptest.NewTestingLogger(t, ""), paths.New()) require.NoError(t, err) cfgs := l.CreateConfig(event, opts...) require.Len(t, cfgs, 1) diff --git a/filebeat/beater/filebeat.go b/filebeat/beater/filebeat.go index 0f755a3826c6..becef257adc3 100644 --- a/filebeat/beater/filebeat.go +++ b/filebeat/beater/filebeat.go @@ -499,6 +499,7 @@ func (fb *Filebeat) Run(b *beat.Beat) error { config.Autodiscover, b.Keystore, fb.logger, + b.Paths, ) if err != nil { return err diff --git a/heartbeat/autodiscover/builder/hints/monitors.go b/heartbeat/autodiscover/builder/hints/monitors.go index 94faea5fc4ef..3f31cbf4d123 100644 --- a/heartbeat/autodiscover/builder/hints/monitors.go +++ b/heartbeat/autodiscover/builder/hints/monitors.go @@ -32,6 +32,7 @@ import ( conf "github.com/elastic/elastic-agent-libs/config" "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/mapstr" + "github.com/elastic/elastic-agent-libs/paths" ) const ( @@ -55,7 +56,7 @@ func InitializeModule() { } // NewHeartbeatHints builds a heartbeat hints builder -func NewHeartbeatHints(cfg *conf.C, logger *logp.Logger) (autodiscover.Builder, error) { +func NewHeartbeatHints(cfg *conf.C, logger *logp.Logger, p *paths.Path) (autodiscover.Builder, error) { config := defaultConfig() err := cfg.Unpack(config) diff --git a/heartbeat/beater/heartbeat.go b/heartbeat/beater/heartbeat.go index f167800e1fa7..d7b0b91233b3 100644 --- a/heartbeat/beater/heartbeat.go +++ b/heartbeat/beater/heartbeat.go @@ -304,15 +304,7 @@ func (bt *Heartbeat) RunReloadableMonitors() (err error) { // makeAutodiscover creates an autodiscover object ready to be started. func (bt *Heartbeat) makeAutodiscover(b *beat.Beat) (*autodiscover.Autodiscover, error) { - ad, err := autodiscover.NewAutodiscover( - "heartbeat", - b.Publisher, - bt.monitorFactory, - autodiscover.QueryConfig(), - bt.config.Autodiscover, - b.Keystore, - b.Info.Logger, - ) + ad, err := autodiscover.NewAutodiscover("heartbeat", b.Publisher, bt.monitorFactory, autodiscover.QueryConfig(), bt.config.Autodiscover, b.Keystore, b.Info.Logger, nil) if err != nil { return nil, err } diff --git a/libbeat/autodiscover/autodiscover.go b/libbeat/autodiscover/autodiscover.go index 89707f3184ce..a750fb05ebcd 100644 --- a/libbeat/autodiscover/autodiscover.go +++ b/libbeat/autodiscover/autodiscover.go @@ -31,6 +31,7 @@ import ( "github.com/elastic/elastic-agent-libs/keystore" "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/mapstr" + "github.com/elastic/elastic-agent-libs/paths" ) const ( @@ -68,15 +69,7 @@ type Autodiscover struct { } // NewAutodiscover instantiates and returns a new Autodiscover manager -func NewAutodiscover( - name string, - pipeline beat.PipelineConnector, - factory cfgfile.RunnerFactory, - configurer EventConfigurer, - c *Config, - keystore keystore.Keystore, - logger *logp.Logger, -) (*Autodiscover, error) { +func NewAutodiscover(name string, pipeline beat.PipelineConnector, factory cfgfile.RunnerFactory, configurer EventConfigurer, c *Config, keystore keystore.Keystore, logger *logp.Logger, path *paths.Path) (*Autodiscover, error) { logger = logger.Named("autodiscover") // Init Event bus @@ -85,7 +78,7 @@ func NewAutodiscover( // Init providers var providers []Provider for _, providerCfg := range c.Providers { - provider, err := Registry.BuildProvider(name, bus, providerCfg, keystore) + provider, err := Registry.BuildProvider(name, bus, providerCfg, keystore, path) if err != nil { return nil, fmt.Errorf("error in autodiscover provider settings: %w", err) } diff --git a/libbeat/autodiscover/autodiscover_test.go b/libbeat/autodiscover/autodiscover_test.go index 0fe576b25843..fe21c9b03aa3 100644 --- a/libbeat/autodiscover/autodiscover_test.go +++ b/libbeat/autodiscover/autodiscover_test.go @@ -41,6 +41,7 @@ import ( "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/logp/logptest" "github.com/elastic/elastic-agent-libs/mapstr" + "github.com/elastic/elastic-agent-libs/paths" ) type mockRunner struct { @@ -181,7 +182,7 @@ func TestAutodiscover(t *testing.T) { busChan := make(chan bus.Bus, 1) Registry = NewRegistry() err := Registry.AddProvider("mock", - func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger) (Provider, error) { + func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger, p *paths.Path) (Provider, error) { // intercept bus to mock events busChan <- b @@ -209,7 +210,7 @@ func TestAutodiscover(t *testing.T) { k, _ := keystore.NewFileKeystore("test") // Create autodiscover manager logger := logptest.NewTestingLogger(t, "") - autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger) + autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger, nil) if err != nil { t.Fatal(err) } @@ -333,7 +334,7 @@ func TestAutodiscoverHash(t *testing.T) { busChan := make(chan bus.Bus, 1) Registry = NewRegistry() - err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger) (Provider, error) { + err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger, p *paths.Path) (Provider, error) { // intercept bus to mock events busChan <- b @@ -364,7 +365,7 @@ func TestAutodiscoverHash(t *testing.T) { k, _ := keystore.NewFileKeystore("test") logger := logptest.NewTestingLogger(t, "") // Create autodiscover manager - autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger) + autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger, nil) if err != nil { t.Fatal(err) } @@ -402,7 +403,7 @@ func TestAutodiscoverDuplicatedConfigConfigCheckCalledOnce(t *testing.T) { busChan := make(chan bus.Bus, 1) Registry = NewRegistry() - err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger) (Provider, error) { + err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger, p *paths.Path) (Provider, error) { // intercept bus to mock events busChan <- b @@ -429,7 +430,7 @@ func TestAutodiscoverDuplicatedConfigConfigCheckCalledOnce(t *testing.T) { k, _ := keystore.NewFileKeystore("test") logger := logptest.NewTestingLogger(t, "") // Create autodiscover manager - autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger) + autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger, nil) if err != nil { t.Fatal(err) } @@ -467,7 +468,7 @@ func TestAutodiscoverWithConfigCheckFailures(t *testing.T) { // Register mock autodiscover provider busChan := make(chan bus.Bus, 1) Registry = NewRegistry() - err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger) (Provider, error) { + err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger, p *paths.Path) (Provider, error) { // intercept bus to mock events busChan <- b @@ -498,7 +499,7 @@ func TestAutodiscoverWithConfigCheckFailures(t *testing.T) { k, _ := keystore.NewFileKeystore("test") logger := logptest.NewTestingLogger(t, "") // Create autodiscover manager - autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger) + autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger, nil) if err != nil { t.Fatal(err) } @@ -530,7 +531,7 @@ func TestAutodiscoverWithMutlipleEntries(t *testing.T) { // Register mock autodiscover provider busChan := make(chan bus.Bus, 1) Registry = NewRegistry() - err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger) (Provider, error) { + err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger, p *paths.Path) (Provider, error) { // intercept bus to mock events busChan <- b @@ -558,7 +559,7 @@ func TestAutodiscoverWithMutlipleEntries(t *testing.T) { k, _ := keystore.NewFileKeystore("test") logger := logptest.NewTestingLogger(t, "") // Create autodiscover manager - autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger) + autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger, nil) if err != nil { t.Fatal(err) } @@ -653,7 +654,7 @@ func TestAutodiscoverDebounce(t *testing.T) { // Register mock autodiscover provider busChan := make(chan bus.Bus, 1) Registry = NewRegistry() - err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger) (Provider, error) { + err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger, p *paths.Path) (Provider, error) { // intercept bus to mock events busChan <- b @@ -674,7 +675,7 @@ func TestAutodiscoverDebounce(t *testing.T) { adapter := mockAdapter{} logger := logptest.NewTestingLogger(t, "") // Create autodiscover manager - autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger) + autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger, nil) if err != nil { t.Fatal(err) } @@ -810,7 +811,8 @@ func TestErrNonReloadableIsNotRetried(t *testing.T) { uuid uuid.UUID, c *conf.C, k keystore.Keystore, - l *logp.Logger) (Provider, error) { + l *logp.Logger, + p *paths.Path) (Provider, error) { // intercept bus to mock events busChan <- b @@ -841,7 +843,7 @@ func TestErrNonReloadableIsNotRetried(t *testing.T) { k, _ := keystore.NewFileKeystore(filepath.Join(t.TempDir(), "keystore")) logger, observedLogs := logptest.NewTestingLoggerWithObserver(t, "") // Create autodiscover manager - autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger) + autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger, nil) if err != nil { t.Fatal(err) } @@ -903,7 +905,7 @@ func TestAutodiscoverMetadataCleanup(t *testing.T) { busChan := make(chan bus.Bus, 1) Registry = NewRegistry() - err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger) (Provider, error) { + err := Registry.AddProvider("mock", func(beatName string, b bus.Bus, uuid uuid.UUID, c *conf.C, k keystore.Keystore, l *logp.Logger, p *paths.Path) (Provider, error) { busChan <- b return &mockProvider{}, nil }) @@ -919,7 +921,7 @@ func TestAutodiscoverMetadataCleanup(t *testing.T) { k, _ := keystore.NewFileKeystore("test") logger := logptest.NewTestingLogger(t, "") - autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger) + autodiscover, err := NewAutodiscover("test", nil, &adapter, &adapter, &config, k, logger, nil) require.NoError(t, err) autodiscover.debouncePeriod = 50 * time.Millisecond diff --git a/libbeat/autodiscover/builder.go b/libbeat/autodiscover/builder.go index ecd28984bb20..dfb1e06dc5ec 100644 --- a/libbeat/autodiscover/builder.go +++ b/libbeat/autodiscover/builder.go @@ -26,6 +26,7 @@ import ( "github.com/elastic/elastic-agent-libs/config" "github.com/elastic/elastic-agent-libs/keystore" "github.com/elastic/elastic-agent-libs/logp" + "github.com/elastic/elastic-agent-libs/paths" "github.com/elastic/go-ucfg" ) @@ -43,7 +44,7 @@ type Builders struct { } // BuilderConstructor is a func used to generate a Builder object -type BuilderConstructor func(c *config.C, logger *logp.Logger) (Builder, error) +type BuilderConstructor func(c *config.C, logger *logp.Logger, paths *paths.Path) (Builder, error) // AddBuilder registers a new BuilderConstructor func (r *registry) AddBuilder(name string, builder BuilderConstructor) error { @@ -78,7 +79,7 @@ func (r *registry) GetBuilder(name string) BuilderConstructor { } // BuildBuilder reads provider configuration and instantiate one -func (r *registry) BuildBuilder(c *config.C) (Builder, error) { +func (r *registry) BuildBuilder(c *config.C, paths *paths.Path) (Builder, error) { var config BuilderConfig err := c.Unpack(&config) if err != nil { @@ -90,7 +91,7 @@ func (r *registry) BuildBuilder(c *config.C) (Builder, error) { return nil, fmt.Errorf("unknown autodiscover builder %s", config.Type) } - return builder(c, r.logger) + return builder(c, r.logger, paths) } // GetConfig creates configs for all builders initialized. @@ -121,6 +122,7 @@ func NewBuilders( bConfigs []*config.C, hintsCfg *config.C, keystoreProvider bus.KeystoreProvider, + paths *paths.Path, ) (Builders, error) { var builders Builders if hintsCfg.Enabled() { @@ -137,7 +139,7 @@ func NewBuilders( } for _, bcfg := range bConfigs { - builder, err := Registry.BuildBuilder(bcfg) + builder, err := Registry.BuildBuilder(bcfg, paths) if err != nil { return Builders{}, err } diff --git a/libbeat/autodiscover/builder_test.go b/libbeat/autodiscover/builder_test.go index a6409d27cc64..7aa6bf2a0456 100644 --- a/libbeat/autodiscover/builder_test.go +++ b/libbeat/autodiscover/builder_test.go @@ -26,6 +26,7 @@ import ( "github.com/elastic/elastic-agent-autodiscover/bus" conf "github.com/elastic/elastic-agent-libs/config" "github.com/elastic/elastic-agent-libs/logp" + "github.com/elastic/elastic-agent-libs/paths" "github.com/elastic/go-ucfg" ) @@ -35,7 +36,7 @@ func (f *fakeBuilder) CreateConfig(event bus.Event, options ...ucfg.Option) []*c return []*conf.C{conf.NewConfig()} } -func newFakeBuilder(_ *conf.C, logger *logp.Logger) (Builder, error) { +func newFakeBuilder(_ *conf.C, logger *logp.Logger, _ *paths.Path) (Builder, error) { return &fakeBuilder{}, nil } @@ -59,7 +60,7 @@ func TestBuilderRegistry(t *testing.T) { // Make sure that config building doesn't fail assert.NoError(t, err) - builder, err := reg.BuildBuilder(cfg) + builder, err := reg.BuildBuilder(cfg, nil) assert.NoError(t, err) assert.NotNil(t, builder) diff --git a/libbeat/autodiscover/provider.go b/libbeat/autodiscover/provider.go index f2ca500e9b24..60d37cc1ca11 100644 --- a/libbeat/autodiscover/provider.go +++ b/libbeat/autodiscover/provider.go @@ -28,6 +28,7 @@ import ( "github.com/elastic/elastic-agent-libs/config" "github.com/elastic/elastic-agent-libs/keystore" "github.com/elastic/elastic-agent-libs/logp" + "github.com/elastic/elastic-agent-libs/paths" ) // Provider for autodiscover @@ -36,7 +37,7 @@ type Provider interface { } // ProviderBuilder creates a new provider based on the given config and returns it -type ProviderBuilder func(string, bus.Bus, uuid.UUID, *config.C, keystore.Keystore, *logp.Logger) (Provider, error) +type ProviderBuilder func(string, bus.Bus, uuid.UUID, *config.C, keystore.Keystore, *logp.Logger, *paths.Path) (Provider, error) // AddProvider registers a new ProviderBuilder func (r *registry) AddProvider(name string, provider ProviderBuilder) error { @@ -71,7 +72,7 @@ func (r *registry) GetProvider(name string) ProviderBuilder { } // BuildProvider reads provider configuration and instantiate one -func (r *registry) BuildProvider(beatName string, bus bus.Bus, c *config.C, keystore keystore.Keystore) (Provider, error) { +func (r *registry) BuildProvider(beatName string, bus bus.Bus, c *config.C, keystore keystore.Keystore, path *paths.Path) (Provider, error) { var config ProviderConfig err := c.Unpack(&config) if err != nil { @@ -88,5 +89,5 @@ func (r *registry) BuildProvider(beatName string, bus bus.Bus, c *config.C, keys return nil, err } - return builder(beatName, bus, uuid, c, keystore, r.logger) + return builder(beatName, bus, uuid, c, keystore, r.logger, path) } diff --git a/libbeat/autodiscover/providers/docker/docker.go b/libbeat/autodiscover/providers/docker/docker.go index dbaae875f454..1ef9e3e36350 100644 --- a/libbeat/autodiscover/providers/docker/docker.go +++ b/libbeat/autodiscover/providers/docker/docker.go @@ -38,6 +38,7 @@ import ( "github.com/elastic/elastic-agent-libs/keystore" "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/mapstr" + "github.com/elastic/elastic-agent-libs/paths" "github.com/elastic/elastic-agent-libs/safemapstr" ) @@ -70,6 +71,7 @@ func AutodiscoverBuilder( c *config.C, keystore keystore.Keystore, logger *logp.Logger, + path *paths.Path, ) (autodiscover.Provider, error) { logger = logger.Named("docker") @@ -96,7 +98,7 @@ func AutodiscoverBuilder( return nil, errWrap(fmt.Errorf("no configs or hints defined for autodiscover provider")) } - builders, err := autodiscover.NewBuilders(config.Builders, config.Hints, nil) + builders, err := autodiscover.NewBuilders(config.Builders, config.Hints, nil, path) if err != nil { return nil, errWrap(err) } @@ -384,7 +386,7 @@ func (d *Provider) generateHints(event bus.Event) bus.Event { e["ports"] = ports } if labels, err := dockerMeta.GetValue("labels"); err == nil { - hints, incorrecthints := utils.GenerateHints(labels.(mapstr.M), "", d.config.Prefix, true, AllSupportedHints) + hints, incorrecthints := utils.GenerateHints(labels.(mapstr.M), "", d.config.Prefix, true, AllSupportedHints) //nolint:errcheck // preserve existing behaviour // We check whether the provided annotation follows the supported format and vocabulary. The check happens for annotations that have prefix co.elastic for _, value := range incorrecthints { d.logger.Debugf("provided hint: %s/%s is not in the supported list", d.config.Prefix, value) diff --git a/libbeat/autodiscover/providers/docker/docker_integration_test.go b/libbeat/autodiscover/providers/docker/docker_integration_test.go index f92c05056c9d..9c92b4fbb196 100644 --- a/libbeat/autodiscover/providers/docker/docker_integration_test.go +++ b/libbeat/autodiscover/providers/docker/docker_integration_test.go @@ -55,7 +55,7 @@ func TestDockerStart(t *testing.T) { s := &template.MapperSettings{nil, nil} config.Templates = *s k, _ := keystore.NewFileKeystore("test") - provider, err := AutodiscoverBuilder("mockBeat", bus, UUID, conf.MustNewConfigFrom(config), k, log) + provider, err := AutodiscoverBuilder("mockBeat", bus, UUID, conf.MustNewConfigFrom(config), k, log, nil) if err != nil { t.Fatal(err) } diff --git a/libbeat/autodiscover/providers/jolokia/jolokia.go b/libbeat/autodiscover/providers/jolokia/jolokia.go index 6bc664dbf4ae..e35ee42b276b 100644 --- a/libbeat/autodiscover/providers/jolokia/jolokia.go +++ b/libbeat/autodiscover/providers/jolokia/jolokia.go @@ -28,6 +28,7 @@ import ( "github.com/elastic/elastic-agent-libs/config" "github.com/elastic/elastic-agent-libs/keystore" "github.com/elastic/elastic-agent-libs/logp" + "github.com/elastic/elastic-agent-libs/paths" ) func init() { @@ -61,6 +62,7 @@ func AutodiscoverBuilder( c *config.C, keystore keystore.Keystore, logger *logp.Logger, + path *paths.Path, ) (autodiscover.Provider, error) { errWrap := func(err error) error { return fmt.Errorf("error setting up jolokia autodiscover provider: %w", err) @@ -86,7 +88,7 @@ func AutodiscoverBuilder( return nil, errWrap(fmt.Errorf("no configs defined for autodiscover provider")) } - builders, err := autodiscover.NewBuilders(config.Builders, nil, nil) + builders, err := autodiscover.NewBuilders(config.Builders, nil, nil, path) if err != nil { return nil, errWrap(err) } diff --git a/libbeat/autodiscover/providers/kubernetes/config_test.go b/libbeat/autodiscover/providers/kubernetes/config_test.go index 47469665352b..10092e3e59b3 100644 --- a/libbeat/autodiscover/providers/kubernetes/config_test.go +++ b/libbeat/autodiscover/providers/kubernetes/config_test.go @@ -28,6 +28,7 @@ import ( conf "github.com/elastic/elastic-agent-libs/config" "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/mapstr" + "github.com/elastic/elastic-agent-libs/paths" "github.com/elastic/go-ucfg" "github.com/elastic/beats/v7/libbeat/autodiscover" @@ -126,7 +127,7 @@ func TestConfigLeaseFields(t *testing.T) { type mockBuilder struct { } -func newMockBuilder(_ *conf.C, logger *logp.Logger) (autodiscover.Builder, error) { +func newMockBuilder(_ *conf.C, logger *logp.Logger, _ *paths.Path) (autodiscover.Builder, error) { return &mockBuilder{}, nil } diff --git a/libbeat/autodiscover/providers/kubernetes/kubernetes.go b/libbeat/autodiscover/providers/kubernetes/kubernetes.go index ca9528bd48ff..192ec401dc51 100644 --- a/libbeat/autodiscover/providers/kubernetes/kubernetes.go +++ b/libbeat/autodiscover/providers/kubernetes/kubernetes.go @@ -40,6 +40,7 @@ import ( "github.com/elastic/elastic-agent-libs/keystore" "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/mapstr" + "github.com/elastic/elastic-agent-libs/paths" ) func init() { @@ -96,6 +97,7 @@ func AutodiscoverBuilder( c *config.C, keystore keystore.Keystore, logger *logp.Logger, + path *paths.Path, ) (autodiscover.Provider, error) { logger = logger.Named("kubernetes") @@ -125,7 +127,7 @@ func AutodiscoverBuilder( return nil, errWrap(err) } - builders, err := autodiscover.NewBuilders(config.Builders, config.Hints, k8sKeystoreProvider) + builders, err := autodiscover.NewBuilders(config.Builders, config.Hints, k8sKeystoreProvider, path) if err != nil { return nil, errWrap(err) } diff --git a/metricbeat/autodiscover/builder/hints/metrics.go b/metricbeat/autodiscover/builder/hints/metrics.go index 3dc5958e8592..9d56b334b836 100644 --- a/metricbeat/autodiscover/builder/hints/metrics.go +++ b/metricbeat/autodiscover/builder/hints/metrics.go @@ -27,6 +27,7 @@ import ( conf "github.com/elastic/elastic-agent-libs/config" "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/mapstr" + "github.com/elastic/elastic-agent-libs/paths" "github.com/elastic/elastic-agent-autodiscover/bus" "github.com/elastic/elastic-agent-autodiscover/utils" @@ -70,7 +71,7 @@ func InitializeModule() { } // NewMetricHints builds a new metrics builder based on hints -func NewMetricHints(cfg *conf.C, logger *logp.Logger) (autodiscover.Builder, error) { +func NewMetricHints(cfg *conf.C, logger *logp.Logger, _ *paths.Path) (autodiscover.Builder, error) { config := defaultConfig() err := cfg.Unpack(&config) diff --git a/metricbeat/beater/metricbeat.go b/metricbeat/beater/metricbeat.go index 355b6a3cf461..2930eb153386 100644 --- a/metricbeat/beater/metricbeat.go +++ b/metricbeat/beater/metricbeat.go @@ -241,14 +241,7 @@ func (bt *Metricbeat) Run(b *beat.Beat) error { if bt.config.Autodiscover != nil { var err error - bt.autodiscover, err = autodiscover.NewAutodiscover( - "metricbeat", - b.Publisher, - factory, autodiscover.QueryConfig(), - bt.config.Autodiscover, - b.Keystore, - b.Info.Logger, - ) + bt.autodiscover, err = autodiscover.NewAutodiscover("metricbeat", b.Publisher, factory, autodiscover.QueryConfig(), bt.config.Autodiscover, b.Keystore, b.Info.Logger, nil) if err != nil { return err } diff --git a/x-pack/libbeat/autodiscover/providers/aws/ec2/provider.go b/x-pack/libbeat/autodiscover/providers/aws/ec2/provider.go index a32dc723eecd..ff0275dff5a7 100644 --- a/x-pack/libbeat/autodiscover/providers/aws/ec2/provider.go +++ b/x-pack/libbeat/autodiscover/providers/aws/ec2/provider.go @@ -22,6 +22,7 @@ import ( "github.com/elastic/elastic-agent-libs/keystore" "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/mapstr" + "github.com/elastic/elastic-agent-libs/paths" ) func init() { @@ -45,6 +46,7 @@ func AutodiscoverBuilder( c *conf.C, keystore keystore.Keystore, log *logp.Logger, + path *paths.Path, ) (autodiscover.Provider, error) { log.Warn(cfgwarn.Experimental("aws_ec2 autodiscover is experimental")) diff --git a/x-pack/libbeat/autodiscover/providers/aws/elb/provider.go b/x-pack/libbeat/autodiscover/providers/aws/elb/provider.go index 6987484ed3fe..4012460b5dbd 100644 --- a/x-pack/libbeat/autodiscover/providers/aws/elb/provider.go +++ b/x-pack/libbeat/autodiscover/providers/aws/elb/provider.go @@ -20,6 +20,7 @@ import ( "github.com/elastic/elastic-agent-libs/keystore" "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/mapstr" + "github.com/elastic/elastic-agent-libs/paths" ) func init() { @@ -44,6 +45,7 @@ func AutodiscoverBuilder( c *conf.C, keystore keystore.Keystore, logger *logp.Logger, + path *paths.Path, ) (autodiscover.Provider, error) { logger.Warn(cfgwarn.Deprecate("", "aws_elb autodiscover is now deprecated and will be removed in a future release.")) diff --git a/x-pack/libbeat/autodiscover/providers/nomad/nomad.go b/x-pack/libbeat/autodiscover/providers/nomad/nomad.go index 627c22b15f0a..417e01fe7507 100644 --- a/x-pack/libbeat/autodiscover/providers/nomad/nomad.go +++ b/x-pack/libbeat/autodiscover/providers/nomad/nomad.go @@ -22,6 +22,7 @@ import ( "github.com/elastic/elastic-agent-libs/keystore" "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/mapstr" + "github.com/elastic/elastic-agent-libs/paths" ) // NomadEventKey is the key under which custom metadata is going @@ -55,6 +56,7 @@ func AutodiscoverBuilder( c *conf.C, keystore keystore.Keystore, logger *logp.Logger, + path *paths.Path, ) (autodiscover.Provider, error) { logger.Warn(cfgwarn.Experimental("The nomad autodiscover provider is experimental.")) @@ -79,7 +81,7 @@ func AutodiscoverBuilder( return nil, err } - builders, err := autodiscover.NewBuilders(config.Builders, config.Hints, nil) + builders, err := autodiscover.NewBuilders(config.Builders, config.Hints, nil, path) if err != nil { return nil, err } @@ -243,15 +245,15 @@ func (p *Provider) generateHints(event bus.Event) bus.Event { rawMeta, ok := event["meta"] if ok { - meta = rawMeta.(mapstr.M) + meta = rawMeta.(mapstr.M) //nolint:errcheck // preserve existing behaviour if nomadMeta, ok := meta["nomad"]; ok { - meta = nomadMeta.(mapstr.M) + meta = nomadMeta.(mapstr.M) //nolint:errcheck // preserve existing behaviour } // The builder base config can configure any of the field values of nomad if need be. e["nomad"] = meta if rawAnn, ok := meta["tags"]; ok { - tags = rawAnn.(mapstr.M) + tags = rawAnn.(mapstr.M) //nolint:errcheck // preserve existing behaviour e["tags"] = tags } @@ -264,7 +266,7 @@ func (p *Provider) generateHints(event bus.Event) bus.Event { // Nomad supports different runtimes, so it will not always be _container_ info, but we could add // metadata about the runtime driver. if rawCont, ok := meta["container"]; ok { - container = rawCont.(mapstr.M) + container = rawCont.(mapstr.M) //nolint:errcheck // preserve existing behaviour e["container"] = container }