Skip to content

Commit

Permalink
Don't generate a config when disabling logs collection with hints (#9305
Browse files Browse the repository at this point in the history
)

When `co.elastic.logs/disable="true"` is used in a container, an
incomplete event is generated, what provokes errors about configurations
with missing fields. Don't generate configs in these cases.

If after that a builder doesn't generate any configuration,
it still generates an event but with with an empty list of configs
instead of an event without a config field.
  • Loading branch information
jsoriano committed Dec 3, 2018
1 parent 37fc3a5 commit a4b06ae
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 4 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha1...master[Check the HEAD d

- Fix installation of haproxy dashboard. {issue}9307[9307] {pull}[]

- Don't generate incomplete configurations when logs collection is disabled by hints. {pull}9305[9305]
- Stop runners disabled by hints after previously being started. {pull}9305[9305]

*Heartbeat*

*Journalbeat*
Expand Down
5 changes: 3 additions & 2 deletions filebeat/autodiscover/builder/hints/logs.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,9 @@ func (l *logHints) CreateConfig(event bus.Event) []*common.Config {
hints, _ = hIface.(common.MapStr)
}

if builder.IsNoOp(hints, l.Key) == true {
return []*common.Config{config}
if builder.IsNoOp(hints, l.Key) {
logp.Debug("hints.builder", "disabled config in event: %+v", event)
return []*common.Config{}
}

inputConfig := l.getInputs(hints)
Expand Down
2 changes: 1 addition & 1 deletion libbeat/autodiscover/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ func (r *registry) BuildBuilder(c *common.Config) (Builder, error) {

// GetConfig creates configs for all builders initialized.
func (b Builders) GetConfig(event bus.Event) []*common.Config {
var configs []*common.Config
configs := []*common.Config{}

for _, builder := range b {
if config := builder.CreateConfig(event); config != nil {
Expand Down
3 changes: 2 additions & 1 deletion libbeat/autodiscover/providers/kubernetes/kubernetes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,7 @@ func TestEmitEvent(t *testing.T) {
},
},
},
"config": []*common.Config{},
},
},
{
Expand Down Expand Up @@ -292,7 +293,7 @@ func TestEmitEvent(t *testing.T) {

select {
case event := <-listener.Events():
assert.Equal(t, test.Expected, event)
assert.Equal(t, test.Expected, event, test.Message)
case <-time.After(2 * time.Second):
if test.Expected != nil {
t.Fatal("Timeout while waiting for event")
Expand Down

0 comments on commit a4b06ae

Please sign in to comment.