Commit Graph

342 Commits (615024ac47bb334f674452f5359e24c6943a7bbb)

Author SHA1 Message Date
Jason Wilder 87c962d62d Fix panics when collectd fails to start
If collectd fails to start, it can panic when close is called because
some variables have not be initialized yet.
2015-06-29 22:09:47 -06:00
Joseph Crail 5fccee3d16 Fix spelling errors in comments and strings. 2015-06-28 02:54:34 -04:00
Philip O'Toole ff61d88c10 Create UDP batcher before listening for UDP
Otherwise a packet may be received before the batcher has been
instantiated.
2015-06-26 10:17:33 -04:00
Jason Wilder 2c333c6c63 Fix markdown formatting 2015-06-25 22:08:13 -06:00
Jason Wilder 562d7cd37d Handle timestamp special cases
If no timestamp is sent or the value -1 is sent, the current UTC
time is used.
2015-06-24 23:53:13 -06:00
Jason Wilder c5a10cf93d Use raw metric name when default template fails to match 2015-06-24 23:38:10 -06:00
Jason Wilder fbfb90d66c Code review fixes 2015-06-24 23:33:42 -06:00
Jason Wilder 320a951575 Fix default template being returned when partially matching
another filter.
2015-06-24 23:09:08 -06:00
Jason Wilder ba7187f554 Add comments to graphite parser 2015-06-24 23:09:08 -06:00
Jason Wilder a76e812b38 Add graphite parser benchmark 2015-06-24 23:09:08 -06:00
Jason Wilder 9ed71ad492 Add test for matching similar patterns 2015-06-24 23:09:08 -06:00
Jason Wilder 613b1d2eb7 Prevent duplicate filters in config
A filter should map directly to one template, allowing duplicate
filters is not supported.
2015-06-24 23:09:08 -06:00
Jason Wilder f70eee6e7a Add support for multiple measurement fields in templates
Provides a little more flexibility in controlling the parsed
metric names for metris like:

  servers.localhost.cpu.cpu0.user

Previously, you could only use a single field like "cpu", "user"
or a wildcard to match "cpu.cpu0.user".  You can now pull out "cpu"
and "user" and join them together in the metric name using a custom
separator character.  By default this is ".".
2015-06-24 23:09:08 -06:00
Jason Wilder a2a1956048 Use search tree for filter matching
This adds a sorted search tree for matchining filters to a template
more efficiently.  Each filter is split on "." and each element is
added to the tree.  Patterns with matching prefixes are added under
the same subtree.
2015-06-24 23:09:08 -06:00
Jason Wilder 98cbfdca51 Update tempalte format comment 2015-06-24 23:09:07 -06:00
Jason Wilder b294930c95 Add graphite plugin readme 2015-06-24 23:09:07 -06:00
Jason Wilder 1ecf9b5d36 Fix validation failing when using a default template 2015-06-24 23:09:07 -06:00
Jason Wilder dd0e6e5e02 Use strings.Fields to bef more forgiving of whitespace 2015-06-24 23:09:07 -06:00
Jason Wilder fed8d67946 Add validation for graphite config templates and tags 2015-06-24 23:09:07 -06:00
Jason Wilder b55981f090 Add support for per-template default tags
These are tags that can be added at the template level.  They
will override any global tags and any parsed tags with the same
name from the metric will override these.
2015-06-24 23:09:07 -06:00
Jason Wilder 9cd82ae316 Add support for global tags
These are tags that can be add to all metrics.
2015-06-24 23:09:07 -06:00
Jason Wilder cab9e36111 Add basic template filtering support
This filter implementation is fairly naive and won't scale well
to large numbers of templates and filters.  It will be replaced
with a trie-based approach in the future.
2015-06-24 23:09:07 -06:00
Jason Wilder e5fbf249ff Remove DecodeNameAndTags func 2015-06-24 23:09:07 -06:00
Jason Wilder 46046c6d32 Add matcher for match a metric to a template
If no template matches, use a default template that just matches
the whole metric name as the measurement.
2015-06-24 23:09:07 -06:00
Jason Wilder 9bcbbd9875 Rename matcher to template 2015-06-24 23:09:07 -06:00
Jason Wilder d69a21c4e4 Allow skipping fields in templates 2015-06-24 23:09:07 -06:00
Jason Wilder a7d4d97743 Convert template matching to matcher struct 2015-06-24 23:09:06 -06:00
Jason Wilder d132263f08 Add support for measurement* 2015-06-24 23:09:06 -06:00
Jason Wilder d539b23817 Move graphite parser to separate file 2015-06-24 23:09:06 -06:00
Can ZHANG 2a383e6858 Fix unit tests for graphite 2015-06-24 23:09:06 -06:00
Can ZHANG c130efb5e2 Add fields to config metric name schema of graphite 2015-06-24 23:09:06 -06:00
David Norton c76e904aa3 remove commented out code 2015-06-22 15:42:13 -04:00
David Norton 6cbb605930 fix #2944: update unit tests 2015-06-22 15:40:31 -04:00
David Norton 0467aa8fec fix #2944: don't require WHERE time on create CQ 2015-06-22 15:39:22 -04:00
Vladimir Lopes 57e0879f84 Correct use of config write-tracing on the httpd handler 2015-06-17 09:55:34 -03:00
Philip O'Toole e165777509 Move doc on CQs to CQ services component 2015-06-15 13:55:11 -07:00
Philip O'Toole e0c26825d3 Don't log each UDP batch
Fixes issue #2989.
2015-06-15 10:29:28 -07:00
Philip O'Toole d2da99049a collectd test client defaults to no limit points 2015-06-12 15:28:31 -07:00
Philip O'Toole 1eb0347670 Add infinite loop to collectd client rate-limiter 2015-06-12 15:25:46 -07:00
Philip O'Toole 45802a5911 Remove binary committed in error 2015-06-12 15:21:51 -07:00
Philip O'Toole e02bb37565 collectd test client now configurable 2015-06-12 15:18:48 -07:00
Philip O'Toole 9f2964d869 Add very basic initial test collectd client 2015-06-12 14:31:53 -07:00
Philip O'Toole 7f96d0ed6a Pull WithDefaults from collectd and openTSDB
This pattern, which is present in Graphite, is not needed for collectd
and openTSDB.
2015-06-12 14:17:18 -07:00
Philip O'Toole 44033778f5 Ensure collectd uses defaults with partial config 2015-06-12 13:56:43 -07:00
Philip O'Toole b923ce0fc8 Minor updates to openTSDB README 2015-06-12 12:06:58 -07:00
Philip O'Toole 27f0b082b2 Add basic documentation for the openTSDB input 2015-06-12 12:05:23 -07:00
Philip O'Toole 916b4e2df9 Rename notes.md to README.md
This means it will be rendered automatically by github.
2015-06-12 09:33:22 -07:00
Paul Dix 5e7ddc6a60 Merge pull request #2928 from neonstalwart/version-header
pass along version to httpd/handler
2015-06-12 09:46:33 -04:00
Jason Wilder 884472ff8c Write a newline after writing error for line protocol
Errors generated via curl or CLI tools can be hard to read using
a shell.
2015-06-11 16:19:19 -06:00
Philip O'Toole 4dff5f48aa Export WaitForLeader on MetaStore
This exported function can then be used by Services and
server-reporting, so those components don't make progress until the
cluster is ready.
2015-06-11 11:10:07 -07:00
ben hockey ce84047b44 pass along version to httpd/handler 2015-06-11 11:22:37 -05:00
David Norton 595807e195 fix #2920: remove commented out code 2015-06-11 09:45:50 -04:00
David Norton 7c39ede6ba fix #2920: create collectd database on startup 2015-06-11 09:40:42 -04:00
Ben Johnson bc31783a00 Refactor backup and restore
This commit updates the snapshot code as well as the "backup" and
"restore" command to work with the new architecture.
2015-06-10 22:07:01 -06:00
Philip O'Toole e294db3c49 Set openTSDB defaults in service 2015-06-10 20:42:44 -07:00
Philip O'Toole e84f661f7e Use defaults for Graphite input where necessary 2015-06-10 20:38:17 -07:00
Philip O'Toole 91b6964705 Ensure openTSDB target database exists 2015-06-10 20:05:34 -07:00
Philip O'Toole dddaf46b77 Update CHANGELOG 2015-06-10 20:02:37 -07:00
Philip O'Toole 57ce67b97b Ensure target Graphite database exists 2015-06-10 18:03:06 -07:00
Philip O'Toole 01f2d7de75 Merge pull request #2878 from influxdb/shard_precreation
Shard precreation service
2015-06-10 16:40:39 -07:00
Philip O'Toole d942250c5e Merge pull request #2862 from runner-mei/connection_closed2
Make InfluxDB win32 friendly, fix unit test is failed on the windows
2015-06-10 15:58:57 -07:00
Philip O'Toole 5798d99692 Move shard precreation logic to meta/store 2015-06-10 15:37:00 -07:00
Philip O'Toole f679c81136 Simply use "precreator" for shard precreation 2015-06-10 15:27:38 -07:00
Philip O'Toole eb96698975 Unit-test shard precreation 2015-06-10 15:27:38 -07:00
Philip O'Toole dda073c19e Add shard precreation service 2015-06-10 15:27:38 -07:00
Philip O'Toole 3b74f753a8 Add short design notes on shard precreation 2015-06-10 15:27:38 -07:00
Philip O'Toole b5ad92be70 Create shard precreation service
Initial commit includes basic configuration control.
2015-06-10 15:27:38 -07:00
Jason Wilder 67d4ef0e28 Don't queue write failures that due to type conflicts
These will never succeed and will stay in the queue indefinitely.
2015-06-10 14:52:59 -06:00
Philip O'Toole a94cf8a4ca Consolidate imports for retention service
Minor cosmetic change
2015-06-10 11:25:17 -07:00
Cory LaNou 8a5cf394d8 add ability to silence logging for testing 2015-06-10 10:27:57 -05:00
runner.mei 015adc949c Make InfluxDB win32 friendly, fix unit test is failed on the windows 2015-06-10 07:29:08 +08:00
Philip O'Toole cbaf3cb0ed Support setting openTSDB consistency level 2015-06-09 15:39:31 -07:00
Philip O'Toole e21d49e85f Add openTSDB consistency level config param 2015-06-09 15:03:52 -07:00
Philip O'Toole 8eea2b3092 Allow Server creation to return errors 2015-06-09 14:21:12 -07:00
Philip O'Toole 952fb49368 Move parsing consistency levels to cluster package
Errors parsing the consistency level are indicated by returning a nil
Graphite input.
2015-06-09 14:21:12 -07:00
Jason Wilder 5dab8de7e0 Log hinted handoff processing duration 2015-06-09 14:49:18 -06:00
Jason Wilder c9f9b37753 Add hinted handoff queue rate limiting
Basic throughput limiting to dynamically maintain a bytes/sec
limit if configured for hinted handoff retry queues.  If a batch is
larger than the limit, the limit will slow the processing down to one
write per second.

By default, the limit is unbounded.  It can be enabled to help prevent
retstarting nodes that have queued writes for them from being overloaded
at startup.
2015-06-09 14:46:13 -06:00
David Norton 939e02a900 fix #2814: return error instead of panic 2015-06-09 00:34:46 -04:00
David Norton 88a7774a80 fix #2814: remove unnecessary initialization 2015-06-09 00:34:46 -04:00
David Norton cef04db18f fix #2814: use toml.Duration where needed 2015-06-09 00:34:46 -04:00
David Norton 2f03a07a32 fix #2814: move repetative test data to global var 2015-06-09 00:34:46 -04:00
David Norton d5f52333a1 fix #2814: hook collectd service back up 2015-06-09 00:34:46 -04:00
Philip O'Toole 4769d65f23 Final Graphite test code fixes 2015-06-08 20:39:56 -07:00
Philip O'Toole 9d628320c2 Rename test file to service_test.go 2015-06-08 20:39:42 -07:00
Philip O'Toole 4d01c8ad41 Add test of Graphite UDP input 2015-06-08 20:39:42 -07:00
Philip O'Toole cd038ccddb Add test of Graphite TCP input 2015-06-08 20:39:42 -07:00
Philip O'Toole b0d76913b0 Add new Service-style Graphite input support 2015-06-08 20:39:39 -07:00
Philip O'Toole 1f8b04729f Allow Graphite consistency control
Remove obsolete Graphite files
2015-06-08 20:00:05 -07:00
Philip O'Toole c1e093bc08 Add batching control to Graphite config 2015-06-08 20:00:05 -07:00
Philip O'Toole 120b64fee8 Actually unit-test Graphite configuration 2015-06-08 20:00:05 -07:00
Jason Wilder c1c8c5f0ca Merge pull request #2835 from influxdb/jw-json-writes
Skip leading whitespace when detecting JSON writes without content-type
2015-06-08 17:49:44 -06:00
Ben Johnson a9657289c4 Merge pull request #2823 from benbjohnson/opentsdb
Convert OpenTSDB to service
2015-06-08 17:32:55 -06:00
Jason Wilder 07d1aac50f Fix comment in hinted handoff processor 2015-06-08 16:51:48 -06:00
Jason Wilder 48b98fea70 Skip leading whitespace when detecting JSON writes without content-type
Fixes #2834
2015-06-08 16:44:47 -06:00
Ben Johnson b688eccb77 Refactor OpenTSDB to a service
This commit converts the OpenTSDB endpoint into a service.
2015-06-08 15:12:16 -06:00
Jason Wilder ede254484d Process hinted handoff queues concurrently 2015-06-08 15:05:44 -06:00
Jason Wilder d86b15953c Fix queue advance not writing updated position
The advance function was not writing the updated position in the
queue until after the next advance call was called.  Resulted in
the very last message would get replayed on restart each time.
2015-06-08 12:09:31 -06:00
Jason Wilder e75208f15c Log remote write erros 2015-06-08 09:09:10 -06:00
Jason Wilder 2ccf97e6a0 Add wait group to hinted handoff service 2015-06-05 22:16:52 -06:00
Jason Wilder 4ec77d8b84 Fix comments 2015-06-05 22:16:52 -06:00
Jason Wilder e2f3ff26a5 Fix data race when close hinted handoff service 2015-06-05 22:16:51 -06:00
Jason Wilder f4cea559d3 Purge hinted handoff queue if entries stick around past a cutoff 2015-06-05 22:16:51 -06:00
Jason Wilder 9d67f9bf62 Add hinted handoff max age and throughput rate limit config options 2015-06-05 22:16:51 -06:00
Jason Wilder 809b9b8a83 Add basic hinted handoff support
If a remote write fails, it will be queued to a per-node, local disk
queue and retried later.
2015-06-05 22:16:51 -06:00
Jason Wilder 89c01cd37d Add hinted handoff queue
This adds a disk backed queue that will be to persist hinted
handoff writes.
2015-06-05 22:16:51 -06:00
Jason Wilder 75b72c60fe Add hinted handoff service
The hinted handoff service will queue a write to a remote node if
that write fails and periodically retry the write.
2015-06-05 22:16:51 -06:00
Jason Wilder 170c584b45 Add hinted handoff config and tests 2015-06-05 22:16:51 -06:00
David Norton fcf89c87dd cr #2733: uncomment defer in test 2015-06-05 22:30:57 -04:00
David Norton a235b4998d fix #2733: trying to fix CI race 2015-06-05 20:23:44 -04:00
David Norton e107a681c5 cr #2733: make error message more detailed 2015-06-05 19:56:28 -04:00
David Norton d8f0445940 fix #2733: fix race in tests 2015-06-05 19:56:28 -04:00
David Norton fb514f2302 fix #2733: add endpoint to trigger CQ(s) 2015-06-05 19:56:28 -04:00
David Norton 8699aa8f0b fix #2733: more tests 2015-06-05 19:56:28 -04:00
David Norton e0838cb705 fix #2733: add tests for CQ service 2015-06-05 19:54:23 -04:00
David Norton 092bc3fd2d fix #2733: hook CQs back in 2015-06-05 19:54:23 -04:00
Philip O'Toole 041b31d6b3 Merge pull request #2783 from renan-/udp-refresh
Make UDP service code simpler
2015-06-05 16:23:16 -07:00
Ben Johnson b925e1c1af Multi-node clustering.
This commit adds the ability to cluster multiple nodes together to share
the same metadata through raft consensus.
2015-06-05 14:41:19 -06:00
Philip O'Toole c59a234e7b Deleted shard groups are not counted as "expired" 2015-06-05 13:08:36 -07:00
Philip O'Toole a4a05241ba Set retention enforcement default config 2015-06-05 11:27:30 -07:00
Philip O'Toole 967ebe0568 Stop retention timers on service shutdown 2015-06-05 08:17:27 -07:00
Renan Strauss e8ab17dbc5 [services/udp] Clean-up the code 2015-06-05 10:55:10 +02:00
Philip O'Toole 5e5f2cd37d Move expired and deleted shard logic to MetaStore 2015-06-04 22:18:52 -07:00
Philip O'Toole ae3e8c727a Don't append retention service if not enabled 2015-06-04 21:47:06 -07:00
Philip O'Toole 28e853d915 Unit-test retention config 2015-06-04 21:47:06 -07:00
Philip O'Toole 8600e2e036 Add shard group "DeletedAt" timestamps 2015-06-04 21:46:52 -07:00
Philip O'Toole 37f9a886b7 Retention service now deletes shards 2015-06-04 21:07:22 -07:00
Philip O'Toole fab9adb361 Hook in actual retention service 2015-06-04 17:02:22 -07:00
Renan Strauss 3b09a59540 Add UDP service back 2015-06-04 10:24:48 +02:00
Cory LaNou 5c52c4cda1 add ability to set logger for testing 2015-06-03 09:58:39 -06:00
Jason Wilder c36cec70f2 Merge pull request #2748 from influxdb/jw-points-name
Ensure JSON point writes have names and at least 1 field
2015-06-02 20:50:16 -06:00
Jason Wilder 5c96b03e3b Preventing writing points with no measument name or fields
Causes the shard write to fail which ends up closing the shard and
future writes cause a panic.
2015-06-02 20:38:15 -06:00
Cory LaNou b3f215ac5f add back epoch conversion on query results 2015-06-02 14:49:05 -06:00
Ben Johnson 44d38cb430 Merge branch 'master' into alpha1 2015-06-02 10:40:52 -06:00
Cory LaNou d962283ae6 adding some integration tests 2015-06-01 16:04:20 -06:00
Cory LaNou 17bdf1c114 get both json/line protocol endpoints working 2015-06-01 12:35:57 -06:00
Cory LaNou d581254719 fix tests 2015-06-01 11:59:58 -06:00
Cory LaNou 3597565955 reading and writing yo! 2015-06-01 11:59:58 -06:00
Jason Wilder badb2bf057 Use content negotiation for /write API
If content-type is "application/json", we'll process the request as
of old JSON write API.  Otherwise, we assume line protocol but check
the first byte in case a older client is still sending JSON without the
correct content-type header.
2015-06-01 11:15:46 -06:00
Ben Johnson bf823d9887 Integrating cmd/influxd/run. 2015-05-30 14:06:36 -06:00
Ben Johnson 2b5d04aee3 Fix local test listener. 2015-05-30 09:01:04 -06:00
Ben Johnson 8c8a55a737 Removed 'failed' from test suite. 2015-05-30 08:59:27 -06:00
Ben Johnson 4872e6db7c Move services to subpackage. 2015-05-30 08:20:12 -06:00