* [outputs.signalfx] Add output plugin for SignalFX
This output plugin converts the `telegraf.Metrics` into signalfx
`datapoint`s and then transmits them to the ingest servers using
signalfx golang client lib.
As of this commit, the client lib is allowed to pick sane defaults
and none of its fields are overridable via telegraf config. This
can be changed in the future if needed.
The unit tests only test for conversion of `telegraf.Metric`s to
the `datapoint` structs. All code that executes after that is
assumed to be tested in the signalfx client lib itself (and not
worth writing end-to-end tests for).
Further enhancements:
- Custom ingest urls
- Better batching
- More extensive tests
- Support for events, sent by whitelist only
Co-authored-by: Ben Keith <benkeith@splunk.com>
Co-authored-by: Akshay <akshay.moghe@gmail.com>
Co-authored-by: Jay Camp <jcamp@splunk.com>
* Replace exclamation mark with caret
* Update README and use table driven tests
* Use ReplaceAll instead
* Use doublestar package instead to glob filepath
* Add license
* Fix order of dependencies
* Doc improvement, maybe better then str replace?
* Forgot to remove nil from test
* Use regex instead of library
* Revert unnecessary change
* Go back to using library
replace string twice to handle edge case
* Use go-ping for "native" execution in Ping plugin
* Check for ipv6 and deadline out of go func
* ensure dns failure
* Move interval and timeout calc to init
Removed dns failure check, 3rd parties libary responsibility
* Rename timeout to avoid conflict
* Move native ping to interface
Update tests
* Check for zero length
* tls_config: Allow specifying SNI hostnames
Add a new configration field `tls_server_name` that allows specifying
the server name that'll be sent in the ClientHello when telegraf makes
a request to TLS servers. This allows checking against load balancers
responding to specific hostnames that otherwise wouldn't resolve to
their addresses.
Add the setting to the documentation of common TLS options, as well as
to the http_response plugin.
Fixes#7598.
* Adjust the x509_cert to allow usage of tls_server_name
This plugin has been using ServerName previously, and will have to
deal with the new setting, too: Extract the server-name choosing into
a method & add a test to ensure we choose the right value (and error
under the right circumstances). Also document that the two settings
are mutually exclusive.
* Improve documentation on what we try to accomplish in the nil return
Also get rid of the TODO, as I am fairly certain this behavior is the
correct one.
* Remove unused struct field in tests