feat(cli): List available parsers and serializers (#15426)

Co-authored-by: Joshua Powers <powersj@fastmail.com>
This commit is contained in:
Lars Stegman 2024-05-31 10:32:35 +02:00 committed by GitHub
parent b516ead921
commit 719e3cbb3b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 56 additions and 2 deletions

View File

@ -10,8 +10,10 @@ import (
"github.com/influxdata/telegraf/plugins/aggregators"
"github.com/influxdata/telegraf/plugins/inputs"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf/plugins/parsers"
"github.com/influxdata/telegraf/plugins/processors"
"github.com/influxdata/telegraf/plugins/secretstores"
"github.com/influxdata/telegraf/plugins/serializers"
"github.com/urfave/cli/v2"
)
@ -42,12 +44,16 @@ func getPluginCommands(outputBuffer io.Writer) []*cli.Command {
outputBuffer.Write(pluginNames(processors.Deprecations, "processors"))
outputBuffer.Write(pluginNames(aggregators.Deprecations, "aggregators"))
outputBuffer.Write(pluginNames(secretstores.Deprecations, "secretstores"))
outputBuffer.Write(pluginNames(parsers.Deprecations, "parsers"))
outputBuffer.Write(pluginNames(serializers.Deprecations, "serializers"))
} else {
outputBuffer.Write(pluginNames(inputs.Inputs, "inputs"))
outputBuffer.Write(pluginNames(outputs.Outputs, "outputs"))
outputBuffer.Write(pluginNames(processors.Processors, "processors"))
outputBuffer.Write(pluginNames(aggregators.Aggregators, "aggregators"))
outputBuffer.Write(pluginNames(secretstores.SecretStores, "secretstores"))
outputBuffer.Write(pluginNames(parsers.Parsers, "parsers"))
outputBuffer.Write(pluginNames(serializers.Serializers, "serializers"))
}
return nil
@ -143,6 +149,42 @@ func getPluginCommands(outputBuffer io.Writer) []*cli.Command {
return nil
},
},
{
Name: "parsers",
Usage: "Print available parser plugins",
Flags: []cli.Flag{
&cli.BoolFlag{
Name: "deprecated",
Usage: "print only deprecated plugins",
},
},
Action: func(cCtx *cli.Context) error {
if cCtx.Bool("deprecated") {
outputBuffer.Write(pluginNames(parsers.Deprecations, "parsers"))
} else {
outputBuffer.Write(pluginNames(parsers.Parsers, "parsers"))
}
return nil
},
},
{
Name: "serializers",
Usage: "Print available serializer plugins",
Flags: []cli.Flag{
&cli.BoolFlag{
Name: "deprecated",
Usage: "print only deprecated plugins",
},
},
Action: func(cCtx *cli.Context) error {
if cCtx.Bool("deprecated") {
outputBuffer.Write(pluginNames(serializers.Deprecations, "serializers"))
} else {
outputBuffer.Write(pluginNames(serializers.Serializers, "serializers"))
}
return nil
},
},
},
},
}

View File

@ -4,8 +4,8 @@ You can build customized versions of Telegraf with a specific plugin set using
the [custom builder](/tools/custom_builder) tool or
[build-tags](https://pkg.go.dev/cmd/go#hdr-Build_constraints).
For build tags, the plugins can be selected either category-wise, i.e.
`inputs`, `outputs`,`processors`, `aggregators` and `parsers` or
individually, e.g. `inputs.modbus` or `outputs.influxdb`.
`inputs`, `outputs`,`processors`, `aggregators`, `parsers`, `secretstores`
and `serializers` or individually, e.g. `inputs.modbus` or `outputs.influxdb`.
Usually the build tags correspond to the plugin names used in the Telegraf
configuration. To be sure, check the files in the corresponding

View File

@ -0,0 +1,6 @@
package parsers
import "github.com/influxdata/telegraf"
// Deprecations lists the deprecated plugins
var Deprecations = map[string]telegraf.DeprecationInfo{}

View File

@ -0,0 +1,6 @@
package serializers
import "github.com/influxdata/telegraf"
// Deprecations lists the deprecated plugins
var Deprecations = map[string]telegraf.DeprecationInfo{}