Commit Graph

41 Commits

Author SHA1 Message Date
Daniel Nelson 573bd4aa32 Start first aggregator period at startup time ()
Fixes issue where metrics collected immediately after startup would not
be aggregated.
2017-07-24 18:25:05 -07:00
DanKans d903a9142d Fix filtering when both pass and drop match an item ()
Adjust logic in functions responsible for passing metrics in order to be able
to process them correctly in case where pass and drop are defined together.
2017-07-21 10:53:57 -07:00
DanKans 34c042c7dc Fix combined tagdrop/tagpass filtering () 2017-07-19 13:08:40 -07:00
Daniel Nelson b165ce4cd5 Prevent possible deadlock when using aggregators ()
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
Daniel Nelson 5d2c093105 Prevent Write from being called concurrently () 2017-07-12 12:03:23 -07:00
Daniel Nelson 1388e2cf92 Do not allow metrics with trailing slashes ()
It is not possible to encode a measurement, tag, or field whose last
character is a backslash due to it being an unescapable character.
Because the tight coupling between line protocol and the internal metric
model, prevent metrics like this from being created.

Measurements with a trailing slash are not allowed and the point will be
dropped.  Tags and fields with a trailing a slash will be dropped from
the point.
2017-07-11 15:54:38 -07:00
Cameron Sparr 06176ef410
Only set the buffer size once
fixes 
2017-02-17 14:11:15 +00:00
Cameron Sparr e87ce22af9
running output: Drop nil metrics
fixes 
2017-02-01 08:55:22 +00:00
Cameron Sparr 7279018cfe
readme fixup & test output fixup 2017-01-09 12:28:13 +00:00
Cameron Sparr 12db3b9120
Check if metric is nil before calling SetAggregate
fixes 
2016-12-13 12:27:10 +00:00
Cameron Sparr d71a42cd1b Implement telegraf collecting stats on itself
closes 
2016-12-05 18:56:54 +00:00
Cameron Sparr e5c7a71d8e Fix unit tests for new metric implementation 2016-12-01 18:17:02 +00:00
Cameron Sparr db7a4b24b6 Implement telegraf's own full metric type
main reasons behind this:
- make adding/removing tags cheap
- make adding/removing fields cheap
- make parsing cheaper
- make parse -> decorate -> write out bytes metric flow much faster

Refactor serializer to use byte buffer
2016-12-01 18:17:02 +00:00
Cameron Sparr a84ce5d5cb drop metrics outside of the aggregators period 2016-10-12 14:56:03 +01:00
Cameron Sparr 8ca4a50c18 delete nil fields in the metric maker.
closes 
2016-10-12 14:50:19 +01:00
Cameron Sparr 03b2984ac2 Fixup some code based on feedback from @dgnorton 2016-10-12 14:50:19 +01:00
Cameron Sparr b03c1d9691 Support ordering of processor plugins 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 
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 
2016-10-03 17:13:03 +01:00
Cameron Sparr 50ef3282b6 Refactor and code cleanup of filtering
started working on this with the idea of fixing , although I
realized that this was actually just a documentation issue around
a toml eccentricity.

closes 
2016-09-05 16:30:18 +01:00
Cameron Sparr d3bb1e7010 Rename internal_models package to models 2016-08-08 14:41:40 +01:00
Cameron Sparr 2d4864e126 nil metric list panic fix 2016-06-29 12:08:36 +02:00
Cameron Sparr cb3c54a1ae logparser input plugin
closes 
closes 
2016-06-21 14:23:01 +01:00
Cameron Sparr 9bbdb2d562 Allow wildcard filtering of varnish stats
closes 
2016-05-26 10:42:34 +01:00
Cameron Sparr 4de75ce621 Performance refactor of running_output buffers
closes 
closes 
2016-04-27 13:40:05 -06:00
Cameron Sparr c7719ac365 buffers: fix bug when Write called before AddMetric 2016-04-26 10:25:04 -06:00
Pierre Fersing c159460b2c Refactor running_output buffering
closes 
2016-04-25 16:32:41 -06:00
Cameron Sparr 81d0a64d46 Adds support for removing/keeping tags from metrics
closes 
2016-04-16 15:13:38 -06:00
Cameron Sparr 77dcbe95c0 Do not write metrics if there are 0 to write
closes 
2016-03-18 10:54:51 -06:00
Cameron Sparr 845abcdd77 Only log the overwritten metric warning on 1st overwrite per buffer
see 
2016-03-09 14:44:32 +01:00
Pierre Fersing 29d1cbb673 Reduce metric_buffer_limit to 1000
closes 
2016-03-03 15:32:44 +00:00
Cameron Sparr 5aef725c13 Change pass/drop to namepass/namedrop for outputs
closes 
2016-02-22 13:35:06 -07:00
Thibault Cohen d00550c45f Add metric pass/drop filter 2016-02-22 12:11:33 -07:00
Cameron Sparr 88c83277c6 Write unit tests for RunningOutput 2016-02-17 17:06:34 -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 
2016-02-16 22:25:22 -07:00
Cameron Sparr 962325cc40 Warn when metrics are being overwritten
closes 
2016-01-28 14:00:14 -07:00
Cameron Sparr c549ab907a Throughout telegraf, use telegraf.Metric rather than client.Point
closes 
2016-01-27 23:47:32 -07:00
Cameron Sparr 9c0d14bb60 Create public models for telegraf metrics, accumlator, plugins
This will basically make the root directory a place for storing the
major telegraf interfaces, which will make telegraf's godoc looks quite
a bit nicer. And make it easier for contributors to lookup the few data
types that they actually care about.

closes 
2016-01-27 15:42:50 -07:00
Cameron Sparr 5349a3b6d1 Implement a per-output fixed size metric buffer
Also moved some objects out of config.go and put them in their own
package, internal/models

fixes 
closes 
2016-01-22 16:29:02 -07:00