Support --aggregator-filter & --processor-filter

This commit is contained in:
Cameron Sparr 2016-10-05 10:58:30 +01:00
parent 2175a72fcc
commit 78f544c0aa
2 changed files with 52 additions and 15 deletions

View File

@ -42,6 +42,10 @@ var fOutputFilters = flag.String("output-filter", "",
"filter the outputs to enable, separator is :") "filter the outputs to enable, separator is :")
var fOutputList = flag.Bool("output-list", false, var fOutputList = flag.Bool("output-list", false,
"print available output plugins.") "print available output plugins.")
var fAggregatorFilters = flag.String("aggregator-filter", "",
"filter the aggregators to enable, separator is :")
var fProcessorFilters = flag.String("processor-filter", "",
"filter the processors to enable, separator is :")
var fUsage = flag.String("usage", "", var fUsage = flag.String("usage", "",
"print usage for a plugin, ie, 'telegraf -usage mysql'") "print usage for a plugin, ie, 'telegraf -usage mysql'")
var fService = flag.String("service", "", var fService = flag.String("service", "",
@ -78,9 +82,9 @@ The flags are:
-sample-config print out full sample configuration to stdout -sample-config print out full sample configuration to stdout
-config-directory directory containing additional *.conf files -config-directory directory containing additional *.conf files
-input-filter filter the input plugins to enable, separator is : -input-filter filter the input plugins to enable, separator is :
-input-list print all the plugins inputs
-output-filter filter the output plugins to enable, separator is : -output-filter filter the output plugins to enable, separator is :
-output-list print all the available outputs -aggregator-filter filter the aggregator plugins to enable, separator is :
-processor-filter filter the processor plugins to enable, separator is :
-usage print usage for a plugin, ie, 'telegraf -usage mysql' -usage print usage for a plugin, ie, 'telegraf -usage mysql'
-debug print metrics as they're generated to stdout -debug print metrics as they're generated to stdout
-quiet run in quiet mode -quiet run in quiet mode
@ -143,6 +147,16 @@ func reloadLoop(stop chan struct{}, s service.Service) {
outputFilter := strings.TrimSpace(*fOutputFilters) outputFilter := strings.TrimSpace(*fOutputFilters)
outputFilters = strings.Split(":"+outputFilter+":", ":") outputFilters = strings.Split(":"+outputFilter+":", ":")
} }
var aggregatorFilters []string
if *fAggregatorFilters != "" {
aggregatorFilter := strings.TrimSpace(*fAggregatorFilters)
aggregatorFilters = strings.Split(":"+aggregatorFilter+":", ":")
}
var processorFilters []string
if *fProcessorFilters != "" {
processorFilter := strings.TrimSpace(*fProcessorFilters)
processorFilters = strings.Split(":"+processorFilter+":", ":")
}
if len(args) > 0 { if len(args) > 0 {
switch args[0] { switch args[0] {
@ -150,7 +164,12 @@ func reloadLoop(stop chan struct{}, s service.Service) {
fmt.Printf("Telegraf v%s (git: %s %s)\n", version, branch, commit) fmt.Printf("Telegraf v%s (git: %s %s)\n", version, branch, commit)
return return
case "config": case "config":
config.PrintSampleConfig(inputFilters, outputFilters) config.PrintSampleConfig(
inputFilters,
outputFilters,
aggregatorFilters,
processorFilters,
)
return return
} }
} }
@ -173,7 +192,12 @@ func reloadLoop(stop chan struct{}, s service.Service) {
fmt.Printf("Telegraf v%s (git: %s %s)\n", version, branch, commit) fmt.Printf("Telegraf v%s (git: %s %s)\n", version, branch, commit)
return return
case *fSampleConfig: case *fSampleConfig:
config.PrintSampleConfig(inputFilters, outputFilters) config.PrintSampleConfig(
inputFilters,
outputFilters,
aggregatorFilters,
processorFilters,
)
return return
case *fUsage != "": case *fUsage != "":
if err := config.PrintInputConfig(*fUsage); err != nil { if err := config.PrintInputConfig(*fUsage); err != nil {

View File

@ -284,7 +284,12 @@ var serviceInputHeader = `
` `
// PrintSampleConfig prints the sample config // PrintSampleConfig prints the sample config
func PrintSampleConfig(inputFilters []string, outputFilters []string) { func PrintSampleConfig(
inputFilters []string,
outputFilters []string,
aggregatorFilters []string,
processorFilters []string,
) {
fmt.Printf(header) fmt.Printf(header)
// print output plugins // print output plugins
@ -305,21 +310,29 @@ func PrintSampleConfig(inputFilters []string, outputFilters []string) {
// print processor plugins // print processor plugins
fmt.Printf(processorHeader) fmt.Printf(processorHeader)
pnames := []string{} if len(processorFilters) != 0 {
for pname := range processors.Processors { printFilteredProcessors(processorFilters, false)
pnames = append(pnames, pname) } else {
pnames := []string{}
for pname := range processors.Processors {
pnames = append(pnames, pname)
}
sort.Strings(pnames)
printFilteredProcessors(pnames, true)
} }
sort.Strings(pnames)
printFilteredProcessors(pnames, true)
// pring aggregator plugins // pring aggregator plugins
fmt.Printf(aggregatorHeader) fmt.Printf(aggregatorHeader)
pnames = []string{} if len(aggregatorFilters) != 0 {
for pname := range aggregators.Aggregators { printFilteredAggregators(aggregatorFilters, false)
pnames = append(pnames, pname) } else {
pnames := []string{}
for pname := range aggregators.Aggregators {
pnames = append(pnames, pname)
}
sort.Strings(pnames)
printFilteredAggregators(pnames, true)
} }
sort.Strings(pnames)
printFilteredAggregators(pnames, true)
// print input plugins // print input plugins
fmt.Printf(inputHeader) fmt.Printf(inputHeader)