telegraf/CONTRIBUTING.md

72 lines
1.7 KiB
Markdown
Raw Normal View History

### Contributing
1. [Sign the CLA][cla].
1. 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.
1. Make changes or write plugin using the guidelines in the following
documents:
- [Input Plugins][inputs]
- [Processor Plugins][processors]
- [Aggregator Plugins][aggregators]
- [Output Plugins][outputs]
1. Ensure you have added proper unit tests and documentation.
1. Open a new [pull request][].
### GoDoc
2016-02-13 18:50:43 +00:00
2016-10-05 14:16:53 +00:00
Public interfaces for inputs, outputs, processors, aggregators, metrics,
and the accumulator can be found in the GoDoc:
2016-02-13 18:50:43 +00:00
[![GoDoc](https://godoc.org/github.com/influxdata/telegraf?status.svg)](https://godoc.org/github.com/influxdata/telegraf)
### Common development tasks
**Adding a dependency:**
2016-01-20 19:30:52 +00:00
Assuming you can already build the project, run these in the telegraf directory:
2016-01-20 19:30:52 +00:00
1. `dep ensure -vendor-only`
2. `dep ensure -add github.com/[dependency]/[new-package]`
2016-01-20 19:30:52 +00:00
**Unit Tests:**
Before opening a pull request you should run the linter checks and
the short tests.
**Run static analysis:**
```
make check
2016-02-13 18:50:43 +00:00
```
**Run short tests:**
2016-10-05 14:16:53 +00:00
```
make test
2016-10-05 14:16:53 +00:00
```
**Execute integration tests:**
2017-11-07 21:54:36 +00:00
Running the integration tests requires several docker containers to be
running. You can start the containers with:
```
docker-compose up
2017-11-07 21:54:36 +00:00
```
2017-11-07 21:54:36 +00:00
And run the full test suite with:
```
make test-all
```
2017-11-07 21:54:36 +00:00
Use `make docker-kill` to stop the containers.
[cla]: https://www.influxdata.com/legal/cla/
[new issue]: https://github.com/influxdata/telegraf/issues/new/choose
[pull request]: https://github.com/influxdata/telegraf/compare
[inputs]: /docs/INPUTS.md
[processors]: /docs/PROCESSORS.md
[aggregators]: /docs/AGGREGATORS.md
[outputs]: /docs/OUTPUTS.md