Commit Graph

693 Commits (0264966f5c374ab2a444654c69721433ae77f647)

Author SHA1 Message Date
Cory LaNou b17293f75c fix data race 2016-02-12 11:35:19 -07:00
Cory LaNou f861d5811e fix adhoc joining of cluster 2016-02-12 11:35:19 -07:00
Cory LaNou 807354f195 passing test suite... hopefully 2016-02-12 11:32:53 -07:00
Cory LaNou d9f1df0ecf sane cluster starting with join args 2016-02-12 11:32:53 -07:00
Jason Wilder e1effa6601 fix build after rebase on master 2016-02-12 11:32:53 -07:00
Joe LeGasse 1852814612 Update authentication cache to work for clusters
Also removed unused code and duplicated test code
2016-02-12 07:16:57 -05:00
Ross McDonald e38b3e799c Added test to http handler for checking the version header information. 2016-02-11 13:09:39 -06:00
Todd Persen cb1b1859fe Fix conflicts and split out client/server version. 2016-02-10 22:30:19 -08:00
Edd Robinson 7ff67db776 Merge pull request #5613 from influxdata/er-cq-typo
Tidy up README
2016-02-10 23:38:48 +00:00
Ben Johnson d9a6a7340f add canonical paths 2016-02-10 11:30:52 -07:00
Ben Johnson 5a0d1ab7c1 rename influxdb/influxdb to influxdata/influxdb
This commit changes all the import and URL references from:

    github.com/influxdb/influxdb

to:

    github.com/influxdata/influxdb
2016-02-10 10:26:18 -07:00
Chris H (CruftMaster) b3fd0ef737 Rebase to new changes in master 2016-02-10 17:07:34 +00:00
Chris H (CruftMaster) abe29bfaf1 Warning in readme.md 2016-02-10 16:51:05 +00:00
Ben Johnson 5c33b9d786 remove Mapper test references 2016-02-10 09:40:30 -07:00
Ben Johnson 627cd9d486 add dedupe iterator 2016-02-10 09:40:29 -07:00
Ben Johnson 607750ab1b add SHOW MEASUREMENTS iterator 2016-02-10 09:40:28 -07:00
Ben Johnson 00806de9b8 refactor query engine 2016-02-10 09:40:25 -07:00
Ben Johnson cde973f409 refactor query engine 2016-02-10 09:40:24 -07:00
Chris H (CruftMaster) cbc9bb5718 Stop people from using both measurement* and field* in a template (plus tests) 2016-02-10 15:29:09 +00:00
Chris H (CruftMaster) 0bdceb33c7 Switching to t.separator 2016-02-10 15:27:30 +00:00
Chris H (CruftMaster) 7bdcfbfa41 Added some README 2016-02-10 15:27:30 +00:00
Chris H (CruftMaster) 2822b89481 Adding conjoined-field-names for graphite templates 2016-02-10 15:27:30 +00:00
Edd Robinson 4e1c3d0a56 Tidy up README 2016-02-10 11:50:42 +00:00
Edd Robinson bcc46171cf Address some lint issues 2016-02-10 08:52:08 +00:00
Edd Robinson cfbb219e49 Fixes #5545 2016-02-09 18:41:26 +00:00
Nic Grayson 3a12b2e392 fixed grammar/typos in collectd section of docs 2016-02-09 10:31:57 -06:00
Jason Wilder 83b96b35e9 Merge pull request #5419 from m4ce/master
Adding support for matching tags multiple times in Graphite parser
2016-02-09 09:23:54 -07:00
Tait Clarridge 63ff0ca488 Fix for lease redirect
Previously, the lease redirect was invalid causing anything relying
on a lease for execution (eg. continuous queries) to cease functioning.

The name/nodeid URL param parsing has been moved up to the top of the
handler so the options can be forwarded on to the real leader.

X-Github-Closes: #5592
2016-02-09 09:48:19 -05:00
Matteo Cerutti b26859a5db adding support for matching tags multiple times 2016-02-09 10:19:37 +01:00
Jason Wilder a9552fdd91 Merge pull request #5565 from tpitale/configure-udp-precision
Configurable precision on UDP services
2016-02-08 15:20:55 -07:00
Jason Wilder 4002733695 Merge pull request #5182 from flisky/master
Graphite: prefer more specific template over default template when possible
2016-02-08 12:08:43 -07:00
Edd Robinson b34699d222 Fix typo from a rename 2016-02-08 16:05:05 +00:00
Tony Pitale 6dd407c819 use go fmt 2016-02-07 10:59:31 -06:00
Tony Pitale 1e4eae4343 Configurable precision on UDP services
* pass configured precision string to point parsing
* add Precision configuration to UDP config
* default configured precision to match what it appears to be now (from ParsePoints)
2016-02-06 13:56:53 -06:00
runner.mei 7c58bf1970 don't panic while addr is invalid 2016-02-05 11:44:16 +08:00
runner.mei 978305a6dd fix unit test of influxd in the windows
fix unit test of influxd in the windows
2016-02-05 11:44:14 +08:00
Jason Wilder 6ff0da39aa Merge pull request #5487 from runner-mei/patch-8
fix cross platform error
2016-02-04 13:46:58 -07:00
David Norton efbac5fce2 fix #5505: clear authCache when pwd changes 2016-02-02 17:51:21 -05:00
Jason Wilder 1c19320e79 Merge pull request #5515 from influxdata/jw-config
Remove top-level dir config option
2016-02-02 13:26:11 -07:00
Jason Wilder 51da6e3d56 Remove top-level dir config option
This breaks backup/restore if it's not "meta" as well as breaks
upgrades from prior releases for some users.
2016-02-02 13:03:44 -07:00
Seif Lotfy 052f8d2a63 Return error if database is not found for setting the retention policy
Instead of returning nil, nil in case of no DB being found return
ErrDatabaseNotExists.
Fixes #5504
2016-02-02 21:02:40 +01:00
Seif Lotfy 343749e02d Add new ErrDatabaseNotExists error 2016-02-02 21:02:40 +01:00
runner 217095ad08 fix cross platform error
fix cross platform error
2016-01-31 11:02:49 +08:00
Jason Wilder 01193668cf Fix nil pointer panic when dropping collectd points
Fixes #5449
2016-01-28 21:36:59 -07:00
Cory LaNou 0f6c75ab7d make tests pass 2016-01-28 11:03:44 -06:00
Cory LaNou 51f6c64134 ake new and upgrade behavior the same for meta/data node numbering 2016-01-28 10:05:56 -06:00
Cory LaNou d70b694d7d fix misc meta statup bugs 2016-01-28 10:05:53 -06:00
Cory LaNou 31c2e7012a allow for node upgrade 2016-01-28 10:05:53 -06:00
Jason Wilder 716714364a Backup node.json with metastore backup 2016-01-27 17:39:54 -07:00
Todd Persen 66e6375973 Move status request metrics to their own label 2016-01-26 18:10:02 -08:00
Todd Persen 06e91dfca1 Remove MetaClient.Ping from `/ping` and move it to `/status` 2016-01-26 17:58:44 -08:00
Jason Wilder ac0c593d8d Prevent double-read locking meta client
Possible fix for #5437.  meta.Client.RetentionPolicy acquired a read-lock and
then called Database which called data() which acquired a read-lock again.
If a write lock was taken between these two read-locks (likely by Authenticate),
the write-lock would block, and the second read-lock would also block
causing a dead-lock.
2016-01-24 22:01:09 -07:00
Jason Wilder ca06755422 Fix merge breakage 2016-01-24 22:00:51 -07:00
David Norton 58e0eed9cb Merge pull request #5403 from influxdata/meta-service2
refactor meta into separate meta client & service
2016-01-22 20:06:51 -05:00
Jason Wilder 1696db1c40 Fixup default hostname and config 2016-01-22 17:05:25 -07:00
David Norton c0df09d544 make sure there are CQs before acquiring lease 2016-01-22 17:01:55 -05:00
Jonathan A. Sternberg 1429f4b4ea Teach the CQ runner how to deal with a resample interval higher than the query interval
Previously if you issued a CQ with a resample interval higher than the
query interval, such as the following:

    CREATE CONTINUOUS QUERY cq ON db
        RESAMPLE EVERY 4m
        BEGIN
            SELECT mean(value) INTO cpu_mean FROM cpu GROUP BY time(2m)
        END

This would result in strange behavior because the FOR value defaulted to
the GROUP BY interval and the minimum time passing before a CQ ran was
also the resample interval, so it wouldn't run the appropriate intervals
even if you set the resample duration to a higher value.

This tweaks the CQ runner to set the minimum interval before a bucket
becomes capable of running to the lower of the query interval or the
resample interval instead of always using the resample interval.

It also sets the default resample duration to be the higher value of the
query interval or the resample interval so the above query gets a
default of 4m instead of 2m and will execute 2 queries every 4 minutes.

If you manually set the resample duration to a lower value than the
resample interval, the old behavior will still happen and should be
considered an error.

This also makes trying to create a continuous query with a resample
duration of below the resample interval or query interval (whichever is
higher) as an error returned by the parser.

Fixes #5286.
2016-01-22 09:43:46 -05:00
Jason Wilder 8456169855 Update backup/restore to use MetaClient 2016-01-21 15:32:35 -05:00
David Norton 2e8cfce7be convert CQ service to new meta client 2016-01-21 15:32:03 -05:00
Cory LaNou 15314111cb buildable test suite 2016-01-21 15:31:27 -05:00
David Norton 177ce33b02 fix build break 2016-01-21 15:31:27 -05:00
Jason Wilder 19feed1d13 Fix go vet warnings 2016-01-21 15:30:44 -05:00
Jason Wilder b7e1ecf471 Close idle MetaClient http connections
Prevents too many open files when running tests
2016-01-21 15:30:09 -05:00
Jason Wilder ad52d0fbd9 Fix tests 2016-01-21 15:30:09 -05:00
Jason Wilder bbe13c2818 Ensure HTTP and TCP bind addresses have hostnames
If a bind-address of :8088 is used, cluster nodes cannot
connect to those nodes because there is no hostname portion
of the address.  When we see a bind-address without a hostname,
use the os hostname or localhost if that fails if it is not specified
in the config already.
2016-01-21 15:28:34 -05:00
David Norton 58c4474f53 retry AcquireLease on error 2016-01-21 15:28:34 -05:00
Cory LaNou 9fd651277b use local logger 2016-01-21 15:28:34 -05:00
Cory LaNou e36eaa0378 fix vet warnings 2016-01-21 15:28:34 -05:00
Paul Dix c99b214e87 Fix retention policy meta client interface 2016-01-21 15:28:34 -05:00
David Norton a2057415d8 meta lease retry 2016-01-21 15:28:34 -05:00
David Norton 38f09178ef add leases to meta service and client 2016-01-21 15:28:33 -05:00
Paul Dix 0341bc3532 Update meta client and retention service.
* Remove VisitRetentionPolicies from meta client.
* Update retention enforcer to run on every data node.
2016-01-21 15:28:33 -05:00
Paul Dix 70de1a7690 Update meta service/client and shard precreator.
* Wire up DataNode(id uint64).
* Remove IsLeader test on precreator.
* Clean up error in client if the server returns a non-200 on get snapshot.
2016-01-21 15:28:33 -05:00
Paul Dix 9ea8ff357e Wire up meta service and client delete data node 2016-01-21 15:28:33 -05:00
Paul Dix 7b71b66e31 Update meta service, meta client, and httpd handler
* Improve the ping endpoint so that it can optionally check for leader agreement across all meta servers
* Add Ping method to the meta client
* Fix ClusterID tests
* Remove WaitForLeader from meta client and remove unnecessary references to it
2016-01-21 15:28:33 -05:00
Paul Dix 101f93f1db Add meta service test to ensure cluster id persisted 2016-01-21 15:28:33 -05:00
Paul Dix 2f07fe88ca Update meta client to use data method to protect cache 2016-01-21 15:28:33 -05:00
Paul Dix 101ab32571 Fix meta-service for server integration tests
* Updated CreateShardGroup to not return an error if it already exists so it's idempotent
* Removed old test making sure you can't delete the default RP. You can delete it now, there was no reason to disallow it.
* Wired up the UpdateRetentionPolicy functionality
2016-01-21 15:28:33 -05:00
Cory LaNou 2715d5ef72 add clusterID and tests 2016-01-21 15:28:33 -05:00
Paul Dix fb9181d240 Fix meta-service build 2016-01-21 15:28:33 -05:00
Paul Dix bfcf5d63ce Clean up meta service close. 2016-01-21 15:28:33 -05:00
David Norton f23fea81b3 take rlock and grab ref to data 2016-01-21 15:28:33 -05:00
David Norton d1fcf1f7a1 wire up meta client shard methods 2016-01-21 15:28:33 -05:00
Paul Dix f385945058 Update Server to work with new metaservice/client 2016-01-21 15:28:33 -05:00
Cory LaNou d0cad8a022 add subscription meta client test 2016-01-21 15:28:33 -05:00
Cory LaNou 853f4bf70e add continuous query meta client tests 2016-01-21 15:28:33 -05:00
Cory LaNou a41222befb add continuous query/subscription methods to meta client 2016-01-21 15:28:33 -05:00
Cory LaNou 7c41c0e02f add user tests for meta client 2016-01-21 15:28:33 -05:00
Paul Dix 9fd9a666bf Add CreateDataNode to meta client/service 2016-01-21 15:28:33 -05:00
Cory LaNou 53042ac56d bringing back client user methods 2016-01-21 15:28:33 -05:00
Paul Dix 13e32f6880 Update close handling on meta service 2016-01-21 15:28:33 -05:00
Paul Dix d2e3cf519c Cleanup host/port in meta service 2016-01-21 15:28:33 -05:00
Paul Dix e906107bea Update meta service to handle host names
This ensures that the meta service will gracefully handle host name changes in a single server configuration.

It also changes the raft setup to use the user specified bind address (and thus hostname) instead of pulling it off the listener, which returns the IP. This will enable users to have hostnames listed instead of IPs in the megastore, making it easier to read. This also means that underlying IPs can change without causing problems in a cluster.
2016-01-21 15:28:32 -05:00
Paul Dix 0f36fbe5ce Add comment to client 2016-01-21 15:28:32 -05:00
Paul Dix 1632980eb8 Cleanup PrintLns in meta client 2016-01-21 15:28:32 -05:00
Paul Dix eda4a6eda0 Wire up meta service and client recovery.
* increase sleep on error in client exec in case a server went down so we don't max out retries before a new leader gets elected
* update and add close logic to service, handler, raft state, and the client
2016-01-21 15:28:32 -05:00
David Norton 5c20e16406 wire up some RP stuff in meta client / service 2016-01-21 15:28:32 -05:00
David Norton c84e9b38d0 fix unit tests after backing out proto change 2016-01-21 15:28:32 -05:00
David Norton f91fd0b8ae back out proto struct changes 2016-01-21 15:28:32 -05:00
Paul Dix e9e63b573b Cycle to next server on failure in meta client 2016-01-21 15:28:32 -05:00
Paul Dix 1e63fa4e2c Enforce max retries on meta client 2016-01-21 15:28:32 -05:00
Paul Dix 90a08154c5 Wire up redirects to execute against raft leader 2016-01-21 15:28:32 -05:00
David Norton c7721c8948 don't clone database infos in client 2016-01-21 15:28:32 -05:00
David Norton 6561b702b8 remove commented out test code 2016-01-21 15:28:32 -05:00
David Norton f80f860ee5 temporarily rename statement_executor_test.go 2016-01-21 15:28:32 -05:00
David Norton 1d6878c37c wire up some meta client funcs and tests 2016-01-21 15:28:32 -05:00
Paul Dix c9d82ad0ad Wire up meta service functionality
* Add dir, hostname, and bind address to top level config since it applies to services other than meta
* Add enabled flags to example toml for data and meta services
* Wire up add/remove raft peers and meta servers to meta service
* Update DROP SERVER to be either DROP META SERVER or DROP DATA SERVER
* Bring over statement executor from old meta package
* Start meta service client implementation
* Update meta service test to use the client
* Wire up node ID/meta server storage information
2016-01-21 15:28:32 -05:00
David Norton 688bc7a2f1 fix go vet error 2016-01-21 15:28:32 -05:00
Cory LaNou d69c5f853f set store peers when starting up from config 2016-01-21 15:28:32 -05:00
David Norton 79d81a2448 add meta service tests & bug fixes 2016-01-21 15:28:32 -05:00
Cory LaNou 9ec7a710c9 some misc refactoring on influxd startup 2016-01-21 15:28:32 -05:00
Cory LaNou 8d878fff91 buildable meta -> services/meta 2016-01-21 15:28:32 -05:00
David Norton bf0b477a0b set raftState on the store 2016-01-21 15:28:32 -05:00
Cory LaNou d3ab0b5ae6 buildable again. lot of wip 2016-01-21 15:28:32 -05:00
Cory LaNou b0d0668138 wip 2016-01-21 15:28:32 -05:00
David Norton 94b05404dc remove cors from handler 2016-01-21 15:28:31 -05:00
David Norton 169c6a5dfa store and handler to interface 2016-01-21 15:28:31 -05:00
David Norton 9f93f0b84a convert to AfterIndex 2016-01-21 15:28:31 -05:00
David Norton 05da43d9f6 rough out meta service 2016-01-21 15:28:31 -05:00
Paul Dix 59fbd371fc Implement backup/restore for TSM.
This changes backup and restore to work for TSM. It breaks it for b1 and bz1, but since those are getting removed it's ok.

The backup runs against any host that is specified and can backup either the metasstore, a database, specific retention policy, or a specific shard. It can also take incremental backups with the `since` flag, which will only backup TSM files that have been created since that timestamp.

The backup is safe to run online. However, for shards that are still hot for writes, they won't be able to create new TSM files while the backup for that single shard runs. If the backup isn't too large and the write throughput isn't too high this shouldn't be a problem since the writes will just go into the WAL cache.
2015-12-30 18:06:50 -05:00
Jonathan A. Sternberg 5d4ecf853c Add continuous query option for customizing resampling
This makes the following syntax possible:

    CREATE CONTINUOUS QUERY mycq ON mydb
        RESAMPLE EVERY 1m FOR 1h
        BEGIN
          SELECT mean(value) INTO cpu_mean FROM cpu GROUP BY time(5m)
        END

The RESAMPLE option customizes how often an interval will be sampled and
the duration. The interval is customized with EVERY. Any intervals
within the resampling duration on a multiple of the resample interval
will be updated with the new results from the query.

The duration is customized with FOR. This determines how long an
interval will participate in resampling.

Both options are optional. If RESAMPLE is in the syntax, at least one of
the two needs to be given. The default for both is the interval of the
continuous query.

The service also improves tracking of the last run time and the logic of
when a query for an interval should be run. When determining the oldest
interval to run for a query, the continuous query service determines
what would have been the optimal time to perform the next query based on
the last run time. It then uses this time to determine the oldest
interval that should be run using the resample duration and will
resample all intervals between this time and the current time as opposed
to potentially forgetting about the last run in an interval if the
continuous query service gets delayed for some reason.

This removes the previous config options for customizing continuous
queries since they are no longer relevant and adds a new option of
customizing the run interval. The run interval determines how often the
continuous query service polls for when it should execute a query. This
option defaults to 1s, but can be set to 1m if the least common factor
of all continuous queries' intervals is a higher value (like 1m).
2015-12-28 16:43:49 -05:00
Sebastian Borza d885f4156b removing golang reference 2015-12-22 12:54:43 -05:00
Sebastian Borza 3bf5d9c969 moving UDP payload size to config option, improve throughput performance
moving UDP payload size to optional config choice to imporove throughput performance
2015-12-22 09:14:50 -05:00
Yin Jifeng b3adfa6b76 Graphite: fix an edge case in Parser.ApplyTemplate 2015-12-21 15:09:10 +08:00
Nathaniel Cook 8214676363 fix panic when merging empty series 2015-12-15 11:32:51 -07:00
Tim Raymond 718fb92cf5 Remove registration, add 'usage-client'
Server registration and stats reporting has been removed from what was
once http://enterprise.influxdata.com. The app that lived there, now
runs at http://usage.influxdata.com, so that the subdomain can
eventually be repurposed. Because we also want to repurpose the
`enterprise-client` repo, we have also renamed that to `usage-client`.
InfluxDB no longer needs the `registration` service now, since all of
the endpoints it communicates with simply discard the data provided to
them.
2015-12-10 15:58:34 -05:00
Nathaniel Cook eb080785d4 add bounds checking for shard group timestamps
enforce strict valid time ranges on points

small
2015-12-09 13:07:13 -07:00
Philip O'Toole a5cb913035 Drop UDP point on bad parse and keep going
Fixes issue #4992.
2015-12-07 19:47:59 -08:00
Cory LaNou cf4e901078 silence registration logging for testing 2015-12-03 08:04:10 -06:00
Paul Dix 6e1d0f47d4 Merge pull request #4921 from pires/3170-db_not_found
Handler errors should be formatted as JSON.
2015-12-02 11:36:53 -05:00
Cory LaNou 3cd8056664 Merge pull request #4876 from e-dard/lint
Lint
2015-12-02 08:55:47 -06:00
Edd Robinson 8384ba3e84 Update comments. 2015-12-02 12:35:58 +00:00
Paulo Pires 4587a5387d Handler errors should be formatted as JSON. Fixes #3170 2015-11-27 21:12:05 +00:00
Cory LaNou be488b7d12 implement close notifier and timeout on executors 2015-11-24 21:07:18 -06:00
Данило Глинський (Danylo Hlynskyi) 8ba35c3b8c fix collectd manual typo 2015-11-23 18:54:47 +02:00
Edd Robinson ffbd6037e2 Initial lint for all packages under services. Supports #4098 2015-11-22 19:23:56 +00:00
Philip O'Toole b1c5a36b0d Merge pull request #4846 from jsternberg/feature/allow-nan-in-graphite-service
Allow NaN as a valid value on the graphite service
2015-11-20 08:09:51 -08:00
Jonathan A. Sternberg 5fa36639db Allow NaN as a valid value on the graphite service
The canonical graphite implementation will read and discard NaN values
instead of throwing an error when reading on the line receiver protocol.
Since this is the default behavior for graphite, InfluxDB should have
the same behavior for compatibility.

Previously, a NaN value would result in an error printed to the console.
When you have a large number of NaN values being sent every minute, this
results in the log file filling with useless messages.
2015-11-20 11:07:25 -05:00
Philip O'Toole d86a02eeab Fix minor typo in variable name 2015-11-20 07:48:42 -08:00
Paweł Kowalak 8c2f6eb7e0 Comment additions to services to satisfy golint 2015-11-19 13:25:07 +01:00
Philip O'Toole ba807a268b Merge pull request #4835 from orthogonous/master
Comment additions to conform to golint
2015-11-18 17:47:51 -08:00
orthogonous 65f4060de3 Comment additions to conform to golint
Also 1 slight code change that fixed an if statement
that golint didn't like.
2015-11-19 11:26:21 +10:00
Philip O'Toole 06cd9b1e4d Merge pull request #4411 from gobwas/master
Update handler.go
2015-11-18 16:12:18 -08:00
Sebastian Borza e17e6394c9 fixing typo for pointsWrittenOK 2015-11-18 14:28:39 -05:00
John Nguyen 63e958f06e fixed export lint issues in services/admin 2015-11-16 17:31:53 +08:00
Philip O'Toole 69803ddc6f Merge pull request #4791 from orthogonous/master
Added some comments to the udp service so golint passes. Ref #4098
2015-11-13 19:10:49 -08:00
Philip O'Toole 7ea9b3e49e Allow openTSDB point errors logging to be disabled 2015-11-13 14:54:54 -08:00
orthogonous 434d06008e Added some comments to the udp service so golint passes. Ref #4098 2015-11-14 08:46:26 +10:00
Philip O'Toole bc1091ec31 Revert "Merge pull request #4684 from nkatsaros/default-config"
This reverts commit 87441584f3, reversing
changes made to a14829bc1d.
2015-11-11 09:29:06 -08:00
Cory LaNou 6ecb62e4d2 Merge pull request #4737 from ch33hau/4283-hh-throws-error-even-if-disabled
Disable HintedHandoff if configuration is not set. #4283
2015-11-10 19:07:27 -06:00
Cameron Sparr 9625953d3e Add UDP OS buffer size recommendations 2015-11-10 11:00:11 -07:00
Cameron Sparr 727b9f6d8b Documentation updates for UDP, graphite, collectd listeners 2015-11-10 10:35:21 -07:00
Cameron Sparr 0a683144fb Update collectd and graphite UDP listeners with perf enhancements
closes #4678
2015-11-10 10:35:21 -07:00
ch33hau 8bfdfbda0b Disable HintedHandoff if configuration is not set. #4283 2015-11-11 01:12:34 +08:00
Philip O'Toole bece8fed2a Better retention enforcement logging
Fixes issue #4727.
2015-11-09 17:22:24 -08:00
Cameron Sparr 78e6979be5 Make parser/writer internal func names consistent 2015-11-06 16:43:35 -07:00
Cameron Sparr 5c28048132 UDP service listener performance enhancements 2015-11-06 15:53:47 -07:00
Mark Bates 8ac958f8a0 Merge pull request #4683 from influxdb/enterprise-client
Updated to use the new Enterprise Client
2015-11-06 13:13:15 -05:00
Mark Bates 377d926aba Fixed a logging message posting to Enterprise 2015-11-06 10:21:18 -05:00
Mark Bates b1df4bd76e Updated to use the new Enterprise Client 2015-11-05 16:46:45 -05:00
Nicholas Katsaros 4f8b0aca9a Add graphite and udp services to the default config generator 2015-11-05 16:42:21 -05:00
Cameron Sparr e2db577e0f Implement a UDP client
closes #4647
2015-11-04 14:18:14 -07:00
Philip O'Toole 3ea4366e4e Unit test handling bad write requests 2015-10-30 11:05:47 -07:00
oiooj d9a60d7e4c fix write points panic 2015-10-30 10:52:50 -07:00
David Howden 5044b9d42c Use HTTPS instead of Https in variable names 2015-10-30 08:49:37 +11:00
Philip O'Toole de7919240f Migrate internal stats to consistent names
Go style -- and existing runtime stats -- do not use underscores, but
instead use camel case. This change makes the internal stats adhere to
that convention.
2015-10-28 21:07:45 -07:00
Philip O'Toole ef190b4013 Merge pull request #4600 from influxdb/wait_for_leader
ping endpoint can now wait for leader
2015-10-28 12:04:53 -07:00
Philip O'Toole 1f6f9b35d1 Unit test ping endpoint 2015-10-28 11:37:25 -07:00
Philip O'Toole 2046556b71 Ping endpoint supports waiting for leader 2015-10-28 11:37:07 -07:00
Jason Wilder 7d6d23e661 Write as many points as we can parse via line protocol
This changes the HTTP line protocol handler to behave similar to the other
handler in that they will write as many points as possible.  Previously, we
would fail the entire batch if one point failed.  This can happen more frequently
now with NaN being more explicitly unsupported.  Now it will write as many points
that parse successfully and return a "partial write" error to the client with the
lines that failed to parse.
2015-10-27 17:12:57 -06:00
Jason Wilder 0926b19e6b Prevent creating points with NaN float values
Float values are not supported in the existing engine and the tsm1
engines.  This changes NewPoint to return an error if a field value
contains a NaN field.  It also allows us to validate fields to prevent
other unsupported types from sneaking in through other input plugins.
2015-10-27 17:12:52 -06:00
Philip O'Toole 335e4325d8 Merge pull request #4516 from influxdb/hh_processor_per_node
Refactor hinted-handoff service
2015-10-27 14:43:08 -07:00
Philip O'Toole f38c53695d Add node's active state to diagnostic output 2015-10-26 18:59:58 -07:00
Philip O'Toole f703f58d22 Add HH diagnostics 2015-10-26 18:59:58 -07:00
Philip O'Toole 87299caad1 Add HH statistics 2015-10-26 18:59:58 -07:00
Philip O'Toole 9a73d26bfb Implement NodeProcessor
A NodeProcessor wraps an on-disk queue and the goroutine that attempts
to drain that queue and send the data to the associated target node.
2015-10-26 18:59:55 -07:00
Philip O'Toole 1f74b46bdb Merge pull request #4565 from bwhaley/clarify_filters
Update README.md
2015-10-26 17:24:10 -07:00
Philip O'Toole 7d22fc75a3 Support configurable purge interval 2015-10-26 13:07:25 -07:00
bwhaley 8aa79c551f Update README.md
Clarify use of filters with multiple consecutive wildcards
2015-10-24 15:01:44 -07:00
Cory LaNou 90beaee803 silence subscriber service logging during testing 2015-10-23 14:48:32 -06:00
Nathaniel Cook 7c71ed53a4 fix subscriber logic when closed 2015-10-21 15:08:55 -06:00
Philip O'Toole 956efaeb94 Merge pull request #4506 from influxdb/enterprise_stats
Enterprise registration as a service
2015-10-20 08:57:19 -07:00
Philip O'Toole f0c4501135 Add registration info to diagnostic output 2015-10-19 16:54:26 -07:00
Philip O'Toole 83db5cdbf5 Update CHANGELOG 2015-10-19 15:30:40 -07:00
Philip O'Toole 878663e1e3 Periodic upload of stats to Enterprise 2015-10-19 15:25:07 -07:00
Philip O'Toole 667ad3342a Refactor registration as a service
Registration also involves statistics and diagnostics upload, for the
purposes of remote management. This means there will be long-running
goroutines in effect. Therefore move the code to a service model.
2015-10-19 15:01:14 -07:00
Philip O'Toole ef72c3c64d Fix typo in retention service comment
[ci skip]
2015-10-19 14:24:25 -07:00
Philip O'Toole ff18bf7213 Make Open() and Close() on Graphite sync'ed
This will ensure that these operations don't run concurrently. This
change also ensures nil batchers are not closed.

Fixes issue #4494.
2015-10-19 11:13:31 -07:00
David Norton e73a8e423c fix #4472:too many points in the GROUP BY interval 2015-10-16 07:17:14 -04:00
Nathaniel Cook cb1aaa8e42 Merge pull request #4375 from influxdb/subscriptions
Feature add subscriber service for creating/dropping subscriptions
2015-10-15 09:17:26 -06:00
Philip O'Toole 485c446e98 Correct typos in UDP README
[ci skip]
2015-10-15 07:48:34 -07:00
Sean Beckett 82f104a8b1 Merge pull request #4436 from influxdb/tag-names-to-keys
WIP tag name --> tag key, field name --> field key
2015-10-14 16:02:46 -07:00
Nathaniel Cook 8b31007aa7 Adds subscriber service for creating/dropping subscriptions to the
InfluxDB data stream.
2015-10-14 15:23:45 -06:00
Philip O'Toole 25f957c5c6 Only call Stop on non-nil batchers 2015-10-14 08:55:06 -07:00
Philip O'Toole a938cd3dee openTSDB Open should complete before Close runs 2015-10-14 08:55:06 -07:00
Philip O'Toole 3907656cc2 Add README for UDP service
Fixes issue #4041.
2015-10-14 08:30:10 -07:00
Philip O'Toole f298e88b39 Auto-create UDP service database
All other services operate like this, so make UDP service consistent.
2015-10-14 08:30:09 -07:00
Sean Beckett 5ab86f7578 Update README.md 2015-10-13 16:56:37 -07:00
Sean Beckett ed7b9f7485 tag name --> tag key 2015-10-13 16:41:57 -07:00
Daniel Morsing 822af73f88 implement continuous queries as regular execs of into queries.
Now that we have into queries, we can implement them as regular
queries that are just run on a timer.
2015-10-13 15:51:19 +00:00
Sergey Kamardin d25e264009 Update handler.go
Add `Access-Control-Expose-Headers` for `ping` endpoint clients be able to retrieve `X-Influxdb-Version` and `Date` from the server.
2015-10-12 18:05:18 +03:00
Philip O'Toole 37cf9a1610 Deletion while iterating is OK in Go 2015-10-09 16:30:20 -07:00
Philip O'Toole f12470a99e If there are no HH segments, then nothing to purge 2015-10-09 14:29:21 -07:00
Philip O'Toole c06ac8f94c Don't add a new segment every purge check
Everytime the purge check was running, a new segment was being added.
This meant the list of almost-empty files in the HH directories would
grow continually.
2015-10-09 14:26:47 -07:00
Philip O'Toole 657aa5a134 Add README for collectd 2015-10-09 09:15:22 -07:00
Philip O'Toole b009f25e3d Delete queues for inactive nodes
Deletion only takes place if all data in the queue is older than the
configured time.
2015-10-08 20:34:24 -07:00
Philip O'Toole 5b0a8ed306 HH should not process dropped nodes 2015-10-08 18:23:12 -07:00
Cameron Sparr 2add55107e Fix graphite parser merge error, nargs 2015-10-08 11:15:03 -06:00
dgnorton a9bf213076 Merge pull request #3484 from dawbs/dawbs-fix-3429
Bugfix for #3429 String representations of RegexLiterals generated in…
2015-10-08 13:12:10 -04:00
Cameron Sparr 3bea25b428 graphite parser: apply tags from the Parser on the template 2015-10-08 10:56:13 -06:00
Nick Dawbarn 136dbef0e7 Formatting fixes 2015-10-08 19:41:36 +10:00
Nick Dawbarn 26f6d00668 Bugfix for #3429 String representations of RegexLiterals generated in influxql/ast.go add the / char as a start and end delimiter, but does not escape any / characters that may exist with the regex 2015-10-08 19:41:36 +10:00
Cameron Sparr 73a630dfa6 graphite parser: apply tags from the Parser on the template 2015-10-07 23:19:29 -06:00
Rob Wilson f3e3bf7a0e typo 2015-10-07 21:25:49 +01:00
Rob Wilson 5815e0b0ee updated documentation 2015-10-07 21:24:05 +01:00
Rob Wilson d8ac746703 correct formatting 2015-10-07 20:35:05 +01:00
Rob Wilson 5fd8777c56 add tests 2015-10-07 20:32:10 +01:00
Rob Wilson a27186fb7a raise exception when field keyword is specified multiple times 2015-10-07 20:31:46 +01:00
Rob Wilson bcd6c06173 Merge remote-tracking branch 'upstream/master' into graphite-template-custom-field
Conflicts:
	services/graphite/parser.go
2015-10-07 17:48:34 +01:00
Philip O'Toole 44d52ac138 Fully lock HH node queue creation
I believe this change address the issues with hinted-handoff not fully replicating all data to nodes that come back online after an outage.. A detailed explanation follows.

During testing of of hinted-handoff (HH) under various scenarios, HH stats showed that the HH Processor was occasionally encountering errors while unmarshalling hinted data. This error was not handled completely correctly, and in clusters with more than 3 nodes, this could cause the HH service to stall until the node was restarted. This was the high-level reason why HH data was not being replicated.

Furthermore by watching, at the byte-level, the hinted-handoff data it could be seen that HH segment block lengths were getting randomly set to 0, but the block data itself was fine (Block data contains hinted writes). This was the root cause of the unmarshalling errors outlined above. This, in turn, was tracked down to the HH system opening each segment file multiple times concurrently, which was not file-level thread-safe, so these mutiple open calls were corrupting the file.

Finally, the reason a segment file was being opened multiple times in parallel was because WriteShard on the HH Processor was checking for node queues in an unsafe manner. Since WriteShard can be called concurrently this was adding queues for the same node more than once, and each queue-addition results in opening segment files.

This change fixes the locking in WriteShard such the check for an existing HH queue for a given node is performed in a synchronized manner.
2015-10-07 02:33:43 -07:00
Philip O'Toole 5b0767c30b EOF is OK in HH processor 2015-10-07 01:56:55 -07:00
Philip O'Toole 8b49c37120 Count HH errors 2015-10-06 20:49:40 -07:00
Philip O'Toole 5d5515a497 If HH can't unmarshal a block, skip that block 2015-10-06 20:49:40 -07:00
Cameron Sparr 883d32cfd0 Add public function to graphite parser to apply template 2015-10-06 17:42:36 -06:00
Paul Dix bb398daf75 Updates based on @otoolp's PR comments 2015-10-05 20:09:56 -04:00
Jason Wilder 5d9b89d601 Disable copier test
Not implemented for tsm1 engine
2015-10-05 20:09:56 -04:00
Paul Dix 7555ccbd70 WIP: engine work 2015-10-05 20:06:21 -04:00
Philip O'Toole 2ac0357406 Support dropping non-Raft nodes 2015-10-04 00:19:52 -07:00
Philip O'Toole d74e0690c7 Revert "Merge pull request #4233 from influxdb/drop-server"
This reverts commit 0bdb36f6dc, reversing
changes made to 3085fbc138.
2015-10-02 08:39:57 -07:00
Cory LaNou f50813460e protobuf update.. :-( 2015-10-01 15:39:15 -05:00
Philip O'Toole 8a1e5a9e53 Clamp initial value of HH retry interval
This could happen due to misconfiguration, so do something sensible in
that case.
2015-10-01 12:04:33 -07:00
Philip O'Toole 878f776403 Exponential backoff if any hinted-handoff fails 2015-09-30 21:27:13 -07:00
Philip O'Toole 4eba2c1725 Add config support for max HH retry interval 2015-09-30 21:10:03 -07:00
Philip O'Toole 235714755c HH processor-level stats
This change maintains stats on a per-shard and per-node basis.
2015-09-28 18:39:39 -07:00
Philip O'Toole 14db3ce9f5 Add service-level stats for hinted-handoff 2015-09-28 18:08:35 -07:00
Philip O'Toole a196d3663a Allow configuration of UDP retention policy
Fixes issue #4529
2015-09-28 15:17:56 -07:00
Philip O'Toole 49a70d0fca Merge pull request #4238 from influxdb/hh_control
Fully disable hinted-handoff service if requested
2015-09-28 12:11:18 -07:00
Philip O'Toole a4a8fa0ff0 Fully disable hinted-handoff service if requested
Without this change if hinted-handoff was disabled the service would
correctly reject writes, but it would process any data sitting in
hinted-handoff queues. With this change the service is completely
disabled.
2015-09-25 18:03:43 -07:00
Philip O'Toole 9de3125f6b Graphite TCP should not block system shutdown
With this change Graphite TCP connections are tracked on a per-service
basis. This allows a closing Graphite service to first shutdown any
active connections, thereby unblocking the rest of shutdowm.

This work exposed small shortcomings with the existing Diagnostics
system and that code has alse been tweaked.

Fixes issue #4017
2015-09-24 14:08:38 -07:00
Antonio Murdaca 49c0b6ea73 Fix go vet warnings
This patch fixes the following go vet warnings:

```
services/continuous_querier/service.go:326: influxql.Statements
composite literal uses unkeyed fields
exit status 1
services/httpd/handler_test.go:145: models.Rows composite literal uses
unkeyed fields
services/httpd/handler_test.go:146: models.Rows composite literal uses
unkeyed fields
services/httpd/handler_test.go:165: models.Rows composite literal uses
unkeyed fields
services/httpd/handler_test.go:166: models.Rows composite literal uses
unkeyed fields
services/httpd/handler_test.go:187: models.Rows composite literal uses
unkeyed fields
services/httpd/handler_test.go:188: models.Rows composite literal uses
unkeyed fields
exit status 1
```

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-21 15:28:54 +02:00
Rob Wilson ef35d6dcc2 formatting 2015-09-21 12:26:43 +01:00
Rob Wilson 27c1cc23fd Working prototype.. 2015-09-21 12:18:19 +01:00
Rob Wilson 9121b422f8 comment out tests for now.. 2015-09-21 10:47:42 +01:00
Rob Wilson 20e4fdfa9a allow specifying fieldname in graphite template 2015-09-20 21:17:50 +01:00
Cory LaNou 72f6f7d268 Merge pull request #4134 from influxdb/issue-3447
Refactor Points and Rows to dedicated packages
2015-09-17 15:27:48 -05:00
Cory LaNou 38cb7b49de Mising defer in httpd recovery. fixes #4124 2015-09-17 09:37:27 -05:00
Cory LaNou ba830be3b9 actually move influxql.Row* -> models.Row* 2015-09-16 16:32:50 -05:00
Cory LaNou d19a510ad2 refactor Points and Rows to dedicated packages 2015-09-16 15:33:08 -05:00
Alex Iribarren 22ea73d0c3 Figure out the InfluxDB version from /ping and show it on the admin page 2015-09-16 13:59:50 +00:00
Philip O'Toole d538829b4c Enhance openTSDB logging and stats 2015-09-09 13:30:11 -07:00