From d907788fbbfe720a0058ab2b50fbd4111a93e2ae Mon Sep 17 00:00:00 2001 From: Thomas Casteleyn Date: Fri, 17 Jul 2020 11:19:03 +0200 Subject: [PATCH 1/2] Add config.PluginNameCounts method --- config/config.go | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/config/config.go b/config/config.go index f5e7db6bbc106..7532911eea106 100644 --- a/config/config.go +++ b/config/config.go @@ -174,40 +174,59 @@ type AgentConfig struct { OmitHostname bool } -// Inputs returns a list of strings of the configured inputs. +// InputNames returns a list of strings of the configured inputs. func (c *Config) InputNames() []string { var name []string for _, input := range c.Inputs { name = append(name, input.Config.Name) } - return name + return PluginNameCounts(name) } -// Outputs returns a list of strings of the configured aggregators. +// AggregatorNames returns a list of strings of the configured aggregators. func (c *Config) AggregatorNames() []string { var name []string for _, aggregator := range c.Aggregators { name = append(name, aggregator.Config.Name) } - return name + return PluginNameCounts(name) } -// Outputs returns a list of strings of the configured processors. +// ProcessorNames returns a list of strings of the configured processors. func (c *Config) ProcessorNames() []string { var name []string for _, processor := range c.Processors { name = append(name, processor.Config.Name) } - return name + return PluginNameCounts(name) } -// Outputs returns a list of strings of the configured outputs. +// OutputNames returns a list of strings of the configured outputs. func (c *Config) OutputNames() []string { var name []string for _, output := range c.Outputs { name = append(name, output.Config.Name) } - return name + return PluginNameCounts(name) +} + +// PluginNameCounts returns a list of plugin names and their count +func PluginNameCounts(plugins []string) []string { + names := make(map[string]int) + for _, plugin := range plugins { + names[plugin]++ + } + + var namecount []string + for name, count := range names { + if count == 1 { + namecount = append(namecount, name) + } else { + namecount = append(namecount, fmt.Sprintf("%s (%dx)", name, count)) + } + } + + return namecount } // ListTags returns a string of tags specified in the config, From 1b184725d8a972696d3bd2d3a555faba75b30ed3 Mon Sep 17 00:00:00 2001 From: Thomas Casteleyn Date: Tue, 11 Aug 2020 17:56:12 +0200 Subject: [PATCH 2/2] Fix formatting --- config/config.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.go b/config/config.go index 7532911eea106..04a6dcea796ed 100644 --- a/config/config.go +++ b/config/config.go @@ -216,7 +216,7 @@ func PluginNameCounts(plugins []string) []string { for _, plugin := range plugins { names[plugin]++ } - + var namecount []string for name, count := range names { if count == 1 { @@ -225,7 +225,7 @@ func PluginNameCounts(plugins []string) []string { namecount = append(namecount, fmt.Sprintf("%s (%dx)", name, count)) } } - + return namecount }