- Sign the CLA.
- Open a new issue to discuss the changes you would like to make. This is not strictly required but it may help reduce the amount of rework you need to do later.
- Make changes or write plugin using the guidelines in the following documents:
- Ensure you have added proper unit tests and documentation.
- Open a new pull request.
- The pull request title needs to follow conventional commit format
Note: If you have a pull request with only one commit, then that commit needs to follow the conventional commit format or the Semantic Pull Request
check will fail. This is because github will use the pull request title if there are multiple commits, but if there is only one commit it will use it instead.
Input, output, and processor plugins written for internal Telegraf can be run as externally-compiled plugins through the Execd Input, Execd Output, and Execd Processor Plugins without having to change the plugin code.
Follow the guidelines of how to integrate your plugin with the Execd Go Shim to easily compile it as a separate app and run it with the respective execd
plugin.
Check out our guidelines on how to build and set up your external plugins to run with execd
.
InfluxData takes security and our users' trust very seriously. If you believe you have found a security issue in any of our open source projects, please responsibly disclose it by contacting [email protected]. More details about security vulnerability reporting, including our GPG key, can be found here.
Public interfaces for inputs, outputs, processors, aggregators, metrics, and the accumulator can be found in the GoDoc:
Adding a dependency:
Telegraf uses Go modules. Assuming you can already build the project, run this in the telegraf directory:
go get github.com/[dependency]/[new-package]
Unit Tests:
Before opening a pull request you should run the linter checks and the short tests.
make check
make test
Execute integration tests:
(Optional)
Running the integration tests requires several docker containers to be running. You can start the containers with:
docker-compose up
To run only the integration tests use:
make test-integration
To run the full test suite use:
make test-all
Use make docker-kill
to stop the containers.