Use the execd shim
The execd Go shim
makes it easy to extract an internal input, processor, or output plugin from
the main Telegraf repo out to a stand-alone repo.
This lets anyone build and run it as a separate app using one of the execd
plugins:
Extract a plugin using the shim wrapper
- Move the project to an external repo.
We recommend preserving the path structure.
For example, if your plugin was located at
plugins/inputs/cpuin the Telegraf repo, move it toplugins/inputs/cpuin the new repo. - Copy
main.go
into your project under the
cmdfolder. This serves as the entry point to the plugin when run as a stand-alone program.The shim isn’t designed to run multiple plugins at the same time, so include only one plugin per repo.
- Edit the
main.gofile to import your plugin. For example,_ "github.com/me/my-plugin-telegraf/plugins/inputs/cpu". - Add a
plugin.conf
file for configuration specific to your plugin.
This config file must be separate from the rest of the config for Telegraf, and must not be in a shared directory with other Telegraf configs. If Telegraf reads this config file, it won’t know which plugin it relates to.
Test and run your plugin
Build the
cmd/main.gousing the following command with your plugin name:go build -o plugin-name cmd/main.goTest the binary by running it, for example
./plugin-name -config plugin.conf. If you’re building a processor or output, first feed valid metrics in onSTDIN. Skip this step if you’re building an input. Metrics are written toSTDOUT. You might need to press enter or wait for your poll duration to elapse to see data.Press
Ctrl-Cto end your test.Configure Telegraf to call your new plugin binary. For an input, this looks like:
[[inputs.execd]] command = ["/path/to/plugin-name", "-config", "/path/to/plugin.conf"] signal = "none"
For more configuration options, see the execd input plugin documentation.
Publish your plugin
Publish your plugin to GitHub and open a pull request back to the Telegraf repo to add it to the external plugins list.
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Telegraf and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.