52 Commits
Author SHA1 Message Date
Daniel NelsonandGitHub 2d2e793c90 Query oplog only when connected to a replica set (#6307) 2019-08-27 10:31:42 -07:00
GregandDaniel Nelson 5c8d0e3ac9 Add ability to label inputs for logging (#6207) 2019-08-21 16:49:07 -07:00
Frank RileyandDaniel Nelson a079e2d569 Return error status from --test if any of the input plugins produced an error (#6279) 2019-08-16 14:44:38 -07:00
Daniel NelsonandGitHub a941779ea8 Call Init before Start in test mode (#6171) 2019-07-25 17:36:46 -07:00
Daniel NelsonandGitHub 0ff9c8ef88 Add call to optional Init function for all plugins (#5899) 2019-06-14 15:12:27 -07:00
Daniel NelsonandGitHub de096428be Run ServiceInputs during test mode; add --test-wait option (#5911) 2019-06-14 12:06:25 -07:00
Daniel Nelson 24391a8b5e Remove debug print statements 2019-04-11 11:48:23 -07:00
Daniel NelsonandGitHub 4e3244c575 Fix aggregator window and shutdown of multiple aggregators (#5644) 2019-03-29 15:40:33 -07:00
John HuandDaniel Nelson 5e6374c19b Fix drop tracking of aggregator drop_original metrics (#5632) 2019-03-26 18:01:50 -07:00
Daniel NelsonandGitHub 99a390b8e6 Fix open error handling in file output (#5540) 2019-03-22 13:59:30 -07:00
Adrián LópezandDaniel Nelson 33ee309fd1 Fix deadlock when Telegraf is aligning aggregators (#5612) 2019-03-20 10:36:51 -07:00
Daniel NelsonandGitHub c12eecc90e Signal telegraf process until it exits (#5169) 2018-12-26 18:54:50 -08:00
GregandDaniel Nelson 91ecec71ea Only print final collection when runing --test (#4991) 2018-11-15 15:44:36 -08:00
Daniel NelsonandGitHub 6e5c2f8bb6 Remove outputs blocking inputs when output is slow (#4938) 2018-11-05 13:34:28 -08:00
Daniel NelsonandGitHub 9e77bfc3ed Fix potential deadlock by not calling AddMetric concurrently (#4404) 2018-07-11 17:33:27 -07:00
Daniel NelsonandGitHub 9491cd91cd Fix data race with default tags (#4395) 2018-07-07 00:54:21 -07:00
Piotr PopieluchandDaniel Nelson dfe7b5eec2 Don't skip metrics during startup in aggregate phase (#4230) 2018-06-05 16:30:53 -07:00
Daniel Nelson caf860bc88 Don't print name of plugin or interval size during --test 2018-04-04 16:30:22 -07:00
Daniel NelsonandGitHub 1c0f63a90d Add new line protocol parser and serializer, influxdb output (#3924) 2018-03-27 17:30:51 -07:00
Daniel Nelson efb9d5b4cb Return Accumulator interface from NewAccumulator 2018-01-26 11:40:34 -08:00
Daniel NelsonandGitHub 5270aa451c Avoid loop creation in second processor pass (#3656) 2018-01-22 11:16:07 -08:00
Piotr PopieluchandDaniel Nelson 601dc99606 Align aggregator period with internal ticker to avoid skipping metrics (#3693)
By the time the aggregator.run() was called about 600ms already passed since setting now which was skewing up the aggregation intervals and skipping metrics.
2018-01-18 17:37:53 -08:00
Maximilien RicherandDaniel Nelson 5f215c22fe Fix typos in comments (#3415) 2017-10-31 17:00:06 -07:00
Daniel NelsonandGitHub 573bd4aa32 Start first aggregator period at startup time (#3050)
Fixes issue where metrics collected immediately after startup would not
be aggregated.
2017-07-24 18:25:05 -07:00
Daniel NelsonandGitHub b165ce4cd5 Prevent possible deadlock when using aggregators (#3016)
Looping the metrics back through the same channel could result in a
deadlock, by using a new channel and locking the processor we can ensure
that all stages can make continual progress.
2017-07-13 15:34:21 -07:00
Cameron Sparr 54c9a385d5 Fix prometheus_client reload behavior
fixes #2282
2017-02-16 21:57:13 +00:00
Cameron Sparr 22243a8354 Skip service input plugins in test mode 2017-02-13 10:40:38 +00:00
Cameron Sparr ff9369f1a1 prepend 'inputs.' to --test output check 2017-02-13 10:33:51 +00:00
Cosmo PetrichandCameron Sparr b1945c0493 Increment gather_errors for all input errors
closes #2339
2017-02-03 11:22:31 +00:00
Cameron Sparr 6df3f0fdae Run scheduled flushes in background
doing this unblocks incoming metrics while waiting for a flush to take
place.

we have to create a semaphore so that we can
'skip' flushes that try to run while a flush is already running.

closes #2262
2017-01-23 14:41:40 -08:00
Cameron Sparr d71a42cd1b Implement telegraf collecting stats on itself
closes #1348
2016-12-05 18:56:54 +00:00
Cameron Sparr 2b0cd2037b Add Copy() function to Metric interface 2016-11-23 12:30:31 +00:00
Cameron Sparr a84ce5d5cb drop metrics outside of the aggregators period 2016-10-12 14:56:03 +01:00
Cameron Sparr 03b2984ac2 Fixup some code based on feedback from @dgnorton 2016-10-12 14:50:19 +01:00
Cameron Sparr 2175a72fcc Rebase fixup 2016-10-12 14:50:19 +01:00
Cameron Sparr fead80844e Refactor handling of MinMax functionality into RunningAggregator
allows for easier addition of a sliding window at a later time.

Also makes `period` be a generic argument for all aggregator plugins.
2016-10-12 14:50:19 +01:00
Cameron Sparr 64a71263a1 Support Processor & Aggregator Plugins
closes #1726
2016-10-12 14:50:19 +01:00
Cameron Sparr c7834209d2 Major Logging Overhaul
in this commit:

- centralize logging output handler.
- set global Info/Debug/Error log levels based on config file or flags.
- remove per-plugin debug arg handling.
- add a I!, D!, or E! to every log message.
- add configuration option to specify where to send logs.

closes #1786
2016-10-03 17:13:03 +01:00
Cameron Sparr d3bb1e7010 Rename internal_models package to models 2016-08-08 14:41:40 +01:00
Patrick HemmerandCameron Sparr e68f251df7 add AddError method to accumulator (#1536) 2016-07-25 13:09:49 +01:00
Cameron Sparr bfdd665435 Copy metrics for each configured output
This is for better thread-safety when running with multiple outputs,
which can cause very odd panics at very high loads

primarily this is to address #1432

closes #1432
2016-07-14 09:16:29 -06:00
Cameron Sparr d7efb7a71d Add precision rounding to accumulator
Adding precision rounding to the accumulator. This means that now every
input metric will get rounded at collection, rather than at write (and
only for the influxdb output).

This feature is disabled for service inputs, because service inputs
should be in control of their own timestamps & precisions.
2016-06-14 00:36:39 +01:00
Cameron Sparr 892abec025 Refactor collection_jitter and flush_jitter
use a common function between collection_jitter and flush_jitter. which
creates the same behavior between the two options.

going forward, both jitters will be random sleeps that get re-evaluated
at runtime for every interval (previously only collection_jitter did
this)

also fixes behavior so that both jitters will exit in the event of a
process exit.

closes #1296
2016-05-31 14:24:32 +01:00
Cameron Sparr c44ecf54a5 Utilize timeout in net_response plugin.
Also changing the net_response and http_response plugins to only accept
duration strings for their timeout parameters. This is a breaking config
file change.

closes #1214
2016-05-23 15:59:23 +01:00
Cameron Sparr 4f5d5926d9 Set a timeout for calls to input.Gather
Changing the internal behavior around running plugins. Each plugin
will now have it's own goroutine with it's own ticker. This means that a
hung plugin will not block any other plugins. When a plugin is hung, we
will log an error message every interval, letting users know which
plugin is hung.

Currently the input interface does not have any methods for killing a
running Gather call, so there is nothing we can do but log an "ERROR"
and move on. This will give some visibility into the plugin that is
acting up.

closes #1230
fixes #479
2016-05-21 21:39:01 +01:00
Cameron Sparr 92e57ee06c Set default tags in test accumulator
closes #1012
2016-04-18 19:24:17 -06:00
Cameron Sparr f543dbb42f Allow users to tell telegraf Agent not to include host tag
closes #848
2016-03-21 15:51:10 -06:00
Cameron Sparr 9ce8d78835 Set running output quiet mode in agent connect func
closes #701
2016-02-22 11:42:02 -07:00
Cameron Sparr d0734b105b Start service plugins immediately, fix off-by-one bug 2016-02-17 15:10:32 -07:00
Cameron Sparr ee468be696 Flush based on buffer size rather than time
this includes:
- Add Accumulator to the Start() function of service inputs
- For message consumer plugins, use the Accumulator to constantly add
  metrics and make Gather a dummy function
- rework unit tests to match this new behavior.
- make "flush_buffer_when_full" a config option that defaults to true

closes #666
2016-02-16 22:25:22 -07:00