Commit Graph

3158 Commits

Author SHA1 Message Date
David Bennett 600816826d
Adding a new directory monitor input plugin. (#8751) 2021-03-02 17:30:59 -05:00
Sam Dillard 30a0fd04cd
Add Starlark script for estimating Line Protocol cardinality (#8852) 2021-03-02 16:55:27 -05:00
Thomas Schuetz 15d45ec0bf
Dynatrace Plugin: Make conversion to counters possible / Changed large bulk handling (#8397) 2021-03-02 15:55:38 -05:00
Labesse Kévin c17cc8cabb
plugin: output loki (#8450) 2021-03-02 15:48:48 -05:00
Avinash Nigam cf9ae34d03
SqlServer - fix for default server list (#8655) 2021-03-02 14:55:28 -05:00
Jason Kim (Jun Chul Kim) 9075ae5175
Add MessagePack output data format (#8828) 2021-03-02 14:48:58 -05:00
Patrick Koenig 6bc731be92
Use consistent container name in docker input plugin (#8703) 2021-03-02 14:19:08 -05:00
Paweł Żak 8a6907a186
Revive fixes - part 3 (#8872)
* * Revive fixes regarding following set of rules: [rule.var-naming]
2021-03-01 16:04:35 -05:00
Jeff Ashton a65a3052a9
outputs.kinesis - log record error count (#8817) 2021-03-01 10:56:17 -05:00
Avinash Nigam b362ee4665
Bug Fix - SQL Server HADR queries for SQL Versions (#8833) 2021-02-26 13:59:29 -05:00
David Bennett accf91305f
add proxy (#8915) 2021-02-26 13:58:28 -05:00
Antonio Garcia 7ed98c7e5c
fix: reading multiple holding registers in modbus input plugin (#8628) 2021-02-26 11:45:33 -05:00
Niels Huylebroeck e1a896ca12
Non systemd support with unittest (#8785) 2021-02-26 10:42:46 -05:00
David Bennett 25aa0eeb21
Fix statsd concurrency bug (#8885)
* Fix the issue

* Remove test I was using for replication

* Accidentally removed test.

* Add lock only where it is necessary.

* eliminate unnecessary space
2021-02-25 17:17:46 -05:00
Ben Keith 2cf4b751be
SignalFx Output (#6714)
* [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>
2021-02-25 15:30:01 -05:00
Thomas Casteleyn 47e12d1981
Support more snmpv3 authentication protocols (#8850) 2021-02-24 11:44:53 -07:00
Avinash Nigam 2372db9028
SQL Perfmon counters - synced queries from v2 to all db types (#8393) 2021-02-19 15:59:26 -05:00
reimda 4d61935dec
Fix mutex locking around ifname cache (#8873) 2021-02-19 11:31:25 -07:00
Sven Rebhan b6b5d34060
Add quantile aggregator plugin (#8594) 2021-02-17 15:22:33 -07:00
Andreas Fuchs b991aab75d
plugins/filestat: Skip missing files (#7316) 2021-02-17 15:50:25 -05:00
sarvanikonda 458f9d1e47
added member_id as tag(as it is a unique value) for redfish plugin and added address of the server when the status is other than 200 for better debugging (#8813) 2021-02-17 11:17:13 -05:00
Paweł Żak d9736d543f
Revive fixes - part 2 (#8835)
* Revive fixes regarding following set of rules:
[rule.if-return]
[rule.increment-decrement]
[rule.var-declaration]
[rule.package-comments]
[rule.receiver-naming]
[rule.unexported-return]
2021-02-16 18:19:50 -05:00
Sebastian Spaink 71be90d992
Support exclamation mark to create non-matching list in tail plugin (#8613)
* 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
2021-02-16 15:53:50 -06:00
Sreejith Pp f888136333
Add support for datadog distributions metric (#8179)
* Add support for datadog distributions in statsd

* Parse metric distribution correctly

* Add tests to check distributions are parsed correctly

* Update Statsd plugin Readme with details about Distributions metric

* Refactor metric distribution initialization code

* Update distribution metric interface to replace fields with value

* Refactor statsd distribution metric test code

* Fix go formatting errors

* Add tests to parse only when DataDog Distributions config is enabled

* Add config to enable parsing DataDog Statsd Distributions

* Document use of datadog_distributions config in Readme
2021-02-16 11:50:01 -06:00
Arnaud Lefebvre f09e551cbd
outputs/warp10: url encode comma in tags value (#8657) 2021-02-16 12:15:48 -05:00
viperstars fe16d56a3e
inputs.x509_cert: Fix timeout issue (#8824)
* reproduce timeout issue #8809

* fix timeout issue #8809

* set default timeout to 5s

* closes #8809

Co-authored-by: 彭浩 <penghao@qiyi.com>
2021-02-16 12:11:53 -05:00
Helen Weller f3a208ee28
Fix reconnection issues mqtt (#8821) 2021-02-11 11:45:13 -05:00
David Bennett c25ae5295b
Validate the response from InfluxDB after writing/creating a database to avoid json parsing panics/errors (#8775)
* Validate the response from InfluxDB after writing/creating a database to avoid json parsing panics.

* Testing windows signing - ignore

* Update config.yml

* adding signing to workflow - test

* Updated config.yml

* Updated config.yml

* Updated config.yml

* Updated config.yml

* revert circleci test changes

* Various updates
2021-02-10 14:45:07 -05:00
Johannes Deger 198bcc8f36
Expose v4/v6-only connection-schemes through GosnmpWrapper (#8804) 2021-02-10 09:28:37 -07:00
Sebastian Spaink aa6dc79fc6
Sort and timeout is deadline (#8839) 2021-02-09 10:50:57 -06:00
Paweł Żak ba66d4facb
Revive fixes - part 1 (#8797)
* Revive fixes regarding following set of rules:
[rule.blank-imports]
[rule.context-as-argument]
[rule.context-keys-type]
[rule.dot-imports]
[rule.error-return]
[rule.error-strings]
[rule.indent-error-flow]
[rule.errorf]
2021-02-08 11:18:40 -05:00
Sebastian Spaink 90392e16d1
Update README for inputs.ping with correct cmd for native ping on Linux (#8787)
* Update readme  to enable native ping

* Provide more information on the numbers being set

* reference for ping_group_range already exists
2021-02-08 09:36:23 -06:00
Patryk Małek 7e78a08eba
AWS EC2 metadata processor Using StreamingProcessor (#8707) 2021-02-04 17:02:27 -05:00
Nicolas Filotto 8ddbab47a4
Allow to provide constants to a starlark script (#8772) 2021-02-01 14:34:44 -05:00
Mike Summers c43de16bce
Add HTTP proxy setting to New Relic output plugin (#8749) 2021-02-01 12:54:42 -05:00
Sebastian Spaink 244178e5ca
Set interface for native (#8770)
Support both name and IP
2021-01-28 11:30:00 -06:00
Sebastian Spaink 03fe914c59
Resolve regression, re-add missing function (#8764) 2021-01-28 10:54:29 -05:00
Steven Soroka 9c7cf99fa7
[outputs.influxdb_v2] add exponential backoff, and respect client error responses (#8662)
* [outputs.influxdb_v2] add exponential backoff, and respect client error responses

* add test

* Update to 60 seconds

* fix test
2021-01-27 16:07:42 -05:00
Steven Soroka 52aaadfd79
Fix issue with elasticsearch output being really noisy about some errors (#8748) 2021-01-27 16:01:06 -05:00
Shawn Guo 5c4c0e1494
improve mntr regex to match user specific keys. (#7533)
* improve mntr regex to match user specific keys.

* Update plugins/inputs/zookeeper/zookeeper.go

Co-authored-by: Sven Rebhan <36194019+srebhan@users.noreply.github.com>

Co-authored-by: guoxu <guoxu@chinatelecom.cn>
Co-authored-by: Sven Rebhan <36194019+srebhan@users.noreply.github.com>
2021-01-27 15:39:28 -05:00
omgold 8707a2d847
Fix crash in lustre2 input plugin, when field name and value (#7967)
are not separated by whitespace, which happens when numbers grow large (#7966)

Co-authored-by: Oliver Mangold <o.mangold@gmail.com>
2021-01-27 15:36:29 -05:00
Sebastian Spaink c237989631
Use go-ping for "native" execution in Ping plugin (#8679)
* 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
2021-01-26 16:02:43 -06:00
Helen Weller d41569caed
Integration test audit (#8725) 2021-01-26 11:06:12 -07:00
viperstars eda1dbc4dc
fix x509 cert timeout issue (#8741) 2021-01-26 13:02:23 -05:00
A. Binzxxxxxx 358633bc4d
Add setting to enable caching in ipmitool (#8335) 2021-01-21 16:14:21 -07:00
Adrian Thurston 4462b172f3
fix: remove ambiguity on '\v' from line-protocol parser (#8720) 2021-01-20 18:33:59 -05:00
Dae-Ho Kim 54422f4f1d
add kafka connect example to jolokia2 input (#8709)
* feat: add kafka connect example to jolokia2 input

* docs: add kafka connect example link

* chore: polishing
2021-01-19 20:45:24 -06:00
Samantha Wang 6ed1431348
update readme: prometheus remote write (#8683) 2021-01-15 10:16:37 -08:00
Helen Weller 76c2201bbe
Fix Redis output field type inconsistencies (#8678) 2021-01-14 11:47:00 -05:00
David Bennett fbd54e84a2
GNMI plugin should not take off the first character of field keys when no 'alias path' exists. (#8659)
* GNMI plugin should not take off the first character of field keys when no 'alias path' exists.

* fix test method name

* fix test file formatting

* fix test file formatting

* Remove my unnecessary failing test
2021-01-13 15:48:21 -05:00
David Bennett d9f237759d
Use the 'measurement' json field from the particle webhook as the measurment name, or if it's blank, use the 'name' field of the event's json. (#8609) 2021-01-12 17:59:42 -05:00
David Bennett 70d2b1f790
Procstat input plugin should use the same timestamp in all metrics in the same Gather() cycle. (#8658) 2021-01-12 17:59:13 -05:00
Földi Tamás 0c99ae9e1d
Add timestamp column support to postgresql_extensible (#8602) 2021-01-11 13:53:44 -05:00
Helen Weller 3b87438dea
Added ability to define skip values in csv parser (#8627) 2021-01-11 13:53:06 -05:00
Steven Soroka 9814d3d84d fix some annoying tests due to ports in use 2021-01-08 17:30:43 -05:00
Nathan Ferch f31203b4b2
Add Beat input plugin (#6653)
This plugin is known to work with Kafkabeat and Filebeat, and will
likely work with other Beat instances that have a similar HTTP API.

It is based on work done by @dmitryilyin.

Co-authored-by: Dmitry Ilyin <idv1985@gmail.com>
2021-01-08 13:06:59 -05:00
Steven Soroka 8b4fb2b75e add todo note about wavefront dependencies 2021-01-08 00:07:24 -05:00
Patrick Hemmer 910b726876
Optimize SeriesGrouper & aggregators.merge (#8391)
The previous implementation of SeriesGrouper required breaking a metric object apart into its constituents, converting tags and keys into unoptimized maps, only to have it put them back together into another metric object. This resulted in a significant performance overhead. This overhead was further compounded when the number of fields was large.

This change adds a new AddMetric method to SeriesGrouper which preserves the metric object and removes the back-and-forth conversion.

Additionlly the method used for calculating the metric's hash was switched to use maphash, which is optimized for this case.

----

Benchmarks

Before:

    BenchmarkMergeOne-16          106012	     11790 ns/op
    BenchmarkMergeTwo-16           48529	     24819 ns/op
    BenchmarkGroupID-16           780018	      1608 ns/op

After:

    BenchmarkMergeOne-16          907093	      1173 ns/op
    BenchmarkMergeTwo-16          508321	      2168 ns/op
    BenchmarkGroupID-16         11217788	      99.4 ns/op
2021-01-07 11:39:12 -05:00
Aladex 4b7d11385c
Using mime-type in prometheus parser to handle protocol-buffer responses (#8545) 2021-01-07 11:21:09 -05:00
Dušan Pajin 9ee6e034fb
Input SNMP plugin - upgrade gosnmp library to version 1.29.0 (#8588) 2021-01-07 08:44:33 -07:00
Sebastian Spaink ee76535a12
Provide test environment for kibana input plugin (#8629) 2021-01-06 16:23:40 -06:00
Sebastian Spaink c8584a7b3f
Upgrade circle-ci config to v2.1 (#8621)
* Upgrade to 2.1 circle-ci config

* new line
2021-01-06 16:23:29 -06:00
Yuri Grigorov c319e63a5a
outputs/http: add option to control idle connection timeout (#8055)
Co-authored-by: Yuri Grigorov <jurijs.grigorovs@corp.mail.ru>
2020-12-30 12:59:58 -06:00
Samantha Wang 3d30fd85c6
update intel powerstat readme (#8600) 2020-12-23 16:41:59 -05:00
Andreas Fuchs 3c9c013f4b
common/tls: Allow specifying SNI hostnames (#7897)
* 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
2020-12-23 13:39:43 -06:00
Germán Jaber 841e971ace
Fix spelling and clarify docs (#8164) 2020-12-23 10:43:21 -06:00
David Pryor ea4feb1a07
fixed formatting (+1 squashed commit) (#8541)
Squashed commits:
[c4e2bee2] Closes #8530: Extended the internal snmp wrapper to support AES192, AES192C, AES256, and AES256C.  Updated the example configuration with the new privProtocols.  Added the warning that those protocols are only supported if you have the appropriate tooling on your system.  Added test to ensure all 4 new privProtocols could be selected and properly encrypt the priv password.
2020-12-23 10:19:53 -06:00
Greg 7c17055178
Provide method to include core count when reporting cpu_usage in procstat input (#6165)
* Provide a non-irix reporting of cpu_usage in procstat input

* Update sample config to include cpu gathering mode

* cleanup readme from merge
2020-12-23 09:30:47 -06:00
JS1010111 ed72aac0be
Add support for an inclusive job list in Jenkins plugin (#8287)
* Add support for an inclusive job list

* Update jenkins plugin tests

* Update jenkins plugin docs

* Update jenkins plugin docs
2020-12-23 09:21:38 -06:00
Peng Xiao 2c61fad895
improve the error log message for snmp trap (#8552)
add OID value and source information into error log and make it easier for troubleshooting
2020-12-23 09:12:41 -06:00
Sam Lai 35a221018b
[http_listener_v2] Stop() succeeds even if fails to start (#8502)
* [http_listener_v2] Stop() succeeds even if fails to start

In cases where the http_listener_v2 plugin config is invalid, when the agent attempts to cleanup by stopping all the inputs, the Stop method here panics as it tries to call listener.Stop() when no listener has been set. This also masks the error message returned from the Start method.

```
> telegraf --test
2020-10-27T12:21:45Z I! Starting Telegraf 1.16.0
2020-10-27T12:21:45Z I! Using config file: /etc/telegraf/telegraf.conf
...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x1245130]

goroutine 45 [running]:
github.com/influxdata/telegraf/plugins/inputs/http_listener_v2.(*HTTPListenerV2).Stop(0xc00043e000)
        /go/src/github.com/influxdata/telegraf/plugins/inputs/http_listener_v2/http_listener_v2.go:178 +0x30
github.com/influxdata/telegraf/agent.stopServiceInputs(0xc00045e480, 0x5, 0x8)
        /go/src/github.com/influxdata/telegraf/agent/agent.go:445 +0x82
github.com/influxdata/telegraf/agent.(*Agent).testRunInputs(0xc000288080, 0x32be8c0, 0xc0000f1f00, 0x0, 0xc00000f480, 0x0, 0x0)
        /go/src/github.com/influxdata/telegraf/agent/agent.go:434 +0x1b7
github.com/influxdata/telegraf/agent.(*Agent).test.func4(0xc000057b70, 0xc000288080, 0x32be8c0, 0xc0000f1f00, 0x0, 0xc00000f480)
        /go/src/github.com/influxdata/telegraf/agent/agent.go:977 +0x8b
created by github.com/influxdata/telegraf/agent.(*Agent).test
        /go/src/github.com/influxdata/telegraf/agent/agent.go:975 +0x352
```

This fixes this issue by checking if the listener has been set before calling listener.Stop.

```
> ./telegraf --config test.conf --test
2020-10-27T12:43:25Z I! Starting Telegraf
2020-10-27T12:43:25Z E! [agent] Starting input inputs.http_listener_v2: listen tcp: address address_without_port: missing port in address
```

* retry CI
2020-12-23 09:09:42 -06:00
Aleksei Magusev 0731585d61
Unify comments style in the CPU input (#8605) 2020-12-21 15:44:51 -05:00
Helen Weller 9f31184e20
Fix readme link for line protocol in influx parser (#8610) 2020-12-21 14:37:50 -05:00
David Bennett dd09f46863
Add hex_key parameter for IPMI input plugin connection (#8524) 2020-12-21 11:45:58 -05:00
David Bennett c47fcf6626
Add configurable number of 'most recent' date-stamped indices to gather in Elasticsearch input (#8543)
Add configurable number of 'most recent' date-stamped indices to gather in the Elasticsearch input plugin, and allow wildcards to account for date-suffixed index names. Configuring '3' for num_most_recent_indices will only gather the 3 latest indices, based on the date or number they end with. Finding the date or number is dependent on the targeted indices being configured with wildcards at the end of their 'base' names.
2020-12-21 11:45:19 -05:00
Greg a7dff56dde
Add more verbose errors to influxdb output (#6061)
Looks like ear/959 has already been resolved, but these additional information for the errors still seems useful.
I just re-based the change and merging.
2020-12-21 10:14:10 -06:00
Sebastian Spaink 50265d9023
Allow globs (wildcards) in config for tags/fields in enum processor (#8598)
* Allow glob in enum processor config

* change assert to require
2020-12-18 15:41:39 -06:00
Paweł Żak 7bf8cdb8e3
[ethtool] interface_up field added (#8590)
Co-authored-by: Pawel Zak <Pawel Zak>
Co-authored-by: Sven Rebhan <36194019+srebhan@users.noreply.github.com>
2020-12-18 12:04:02 -05:00
Helen Weller 04e62e3d23
changed TestThreadStats acc to wait for 2 and added warning comment (#8592) 2020-12-17 19:32:49 -05:00
Helen Weller 94eb8f2e42
Add wildcard tags json parser support (#8579) 2020-12-17 19:32:25 -05:00
Samantha Wang ee91b4856b
update inputs.influxdb readme (#8569)
* update inputs.influxdb readme

* remove duplicate
2020-12-17 08:21:45 -08:00
Steven Soroka 7ff96a7424 Revert "Update grok package to support for field names containing '-' and '.' (#8276)"
This reverts commit a5f3121f6d.

(cherry picked from commit 5c826e8a3254dc509012d018638a2e5f41a110f2)
2020-12-16 17:29:41 -05:00
Steven Soroka 717d329af8 Revert "disable flakey grok test for now"
This reverts commit a96c8b49e4.

(cherry picked from commit 115e25ea36b854d4e5f941596dfb965d103c1376)
2020-12-16 17:29:10 -05:00
Steven Soroka a27ded6d95
fix potential issue with race condition (#8577) 2020-12-16 15:39:12 -05:00
Steven Soroka e39208d60a
fix issue with mqtt concurrent map write (#8562) 2020-12-16 15:38:33 -05:00
Sebastian Spaink b858eb962a
Added Glob pattern matching for "Windows Services" plugin (#8575)
* Allow glob patterns in config

* Update README

* Move creating filter to init

* Need to explictly call init

Co-authored-by: Bas <3441183+BattleBas@users.noreply.github.com>
2020-12-16 14:32:29 -06:00
Anthony Arnaud 045c3c18b8
Add prometheus remote write serializer (#8360) 2020-12-16 14:11:05 -05:00
Vyacheslav Stepanov b64c38bb00
Remove duplicated field "revision" from ecs_task because it's already defined as a tag there (#8574) 2020-12-16 13:23:31 -05:00
vhqtvn 8e08da1889
fix crash when socket_listener receiving invalid data (#8551)
Co-authored-by: Hoa Nguyen Van <vanhoa@vhn.vn>
2020-12-15 13:52:48 -05:00
Hítalo Silva f6e2d451cd
Graphite tags parser (#8564) 2020-12-15 13:41:51 -05:00
Samantha Wang d9d6a194b1
Update json parser readme (#8532) 2020-12-15 10:09:11 -07:00
Oleksandr 21253ecae1
Add per user metrics to mysql input (#6132) 2020-12-15 08:59:52 -07:00
Vyacheslav Stepanov 0fe2386494
Fixing issue with missing metrics when pod has only pending containers (#8472)
Also added Pod Phase and Pod Reason fields
fixes #8347

Co-authored-by: Vyacheslav-Stepanov <Vyacheslav_Stepanov@epam.com>
2020-12-11 09:08:30 -05:00
Joshua Gross a063f9d7f7
fix edge case in aerospike plugin where an expected hex string was converted to integer if all digits (#8542) 2020-12-10 17:38:21 -05:00
Sven Rebhan 34151c47a6
[inputs.github] Add query of pull-request statistics (#8500) 2020-12-10 15:23:57 -05:00
MaciejMis 9166a16577
New Intel PowerStat input plugin (#8488) 2020-12-10 13:23:27 -07:00
Joe Wang 99287d89e0
Update string parsing of allocatable cpu cores in kube_inventory (#8512) 2020-12-10 12:38:01 -07:00
Steven Soroka a96c8b49e4 disable flakey grok test for now 2020-12-10 13:20:37 -05:00
Pontus Rydin 6062265f94
Fixed misspelled check for datacenter (#8505) 2020-12-10 12:02:36 -05:00
alespour d3031a467d
feat: add build number field to jenkins_job measurement (#8038) 2020-12-10 12:02:07 -05:00