diff --git a/filebeat/input/input.go b/filebeat/input/input.go index 2770bfc603ee..414d20963fe6 100644 --- a/filebeat/input/input.go +++ b/filebeat/input/input.go @@ -28,8 +28,17 @@ import ( "github.com/elastic/beats/filebeat/input/file" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/monitoring" ) +var ( + inputList = monitoring.NewUniqueList() +) + +func init() { + monitoring.NewFunc(monitoring.GetNamespace("state").GetRegistry(), "input", inputList.Report, monitoring.Report) +} + // Input is the interface common to all input type Input interface { Run() @@ -111,6 +120,7 @@ func (p *Runner) Start() { } onceWg.Add(1) + inputList.Add(p.config.Type) // Add waitgroup to make sure input is finished go func() { defer func() { @@ -150,6 +160,7 @@ func (p *Runner) Stop() { // Stop scanning and wait for completion close(p.done) p.wg.Wait() + inputList.Remove(p.config.Type) } func (p *Runner) stop() {