Commit Graph

33 Commits (4e2a16c459183e0adc5946b242d014b2090de206)

Author SHA1 Message Date
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 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
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
Philip O'Toole 5373f263a3 Add pending control to batcher
With this change, the generic batcher used by many inputs can now be
buffered. Testing shows that this performance of the Graphite input by
10-100%, with the biggest improvements at lower numbers of connections.
2015-09-08 19:32:00 -07:00
Philip O'Toole fa29e12222 Shutdown UDP Graphite on SIGTERM
Service.Close() had no way of closing the UDP Conn. This change makes
the UDP an attribute of the server, so Close() can access it.
2015-09-05 00:30:59 -07:00
Philip O'Toole 89bc392ec4 Access expvar directly from monitor
expvar map is already global so access it directly. This simplifies the
code and makes it much eaisier to use from other modules.
2015-09-04 09:45:24 -07:00
Philip O'Toole 6ad35e23e9 Integrate code review feedback 2015-09-03 20:50:54 -07:00
Philip O'Toole d58532d844 Add Graphite diagnostics
Graphite diagnostics currently show TCP connections.
2015-09-03 20:50:54 -07:00
Philip O'Toole e07432c59f Implement diagnostics support
This change adds support for diagnostics by decomposing the existing
interface into two interfaces -- one for stats, and the other for
diags. It also adds some basic monitor of system, network, and the Go
runtime.
2015-09-03 20:50:54 -07:00
Philip O'Toole 4e2ee1ea70 Rename MonitorService to just Monitor
monitor is not a service, it has more in common with meta, since it
provides functionality to the query layer. This names makes this
clearer.
2015-09-02 15:07:30 -07:00
Philip O'Toole 9df17409d3 Use monitor service with Graphite 2015-09-01 15:21:36 -07:00
Philip O'Toole 6193226ce8 Revert "Merge pull request #3771 from influxdb/tcp_graphite_timeout"
This reverts commit d7f646f7a4, reversing
changes made to d6f9903f10.

Conflicts:
	CHANGELOG.md

Fixes issue #3809
2015-08-24 10:53:14 -07:00
Philip O'Toole d7f646f7a4 Merge pull request #3771 from influxdb/tcp_graphite_timeout
Close idle Graphite TCP connections
2015-08-20 17:08:17 -07:00
Philip 4930a6d8bb Start adding timeouts to TCP Graphite input 2015-08-20 15:10:22 -07:00
Philip 8e51064db1 Log Graphite batch size and timeout 2015-08-20 11:23:09 -07:00
Jason Wilder 668181d275 Make log statements more consistent
* Capitalize first letter of message
* Log all services staring consistently
* Remove some extraneous log statements in meta.Store
* Log data dirs for meta, data and hinted handoff
2015-08-13 10:01:42 -06:00
Philip O'Toole 089d947bf3 Shutdown Graphite listener first during Close()
Without this the WaitGroup was not fully decremented as the Accept()
call on the listener never exited, and Wait() then never exited.
2015-08-12 12:49:58 -07:00
Jason Wilder 6b8d3268e6 Fix code review comments 2015-07-07 11:41:12 -06:00
Jason Wilder db63ada7db Drop NaN and Inf values from graphite input
NaN is skipped by graphite.  Inf is not a supported value for Influxdb.
2015-07-06 16:14:02 -06:00
Jason Wilder b58df5344c Use a single batcher for graphite service
Previously there was a batcher per connection and each batcher was
flushed when the connection was closed.  This didn't have much of an
effect when multiple clients connected and disconnected since it would
flush the batch immediately.  It also did not help UDP traffic.

Instead, there is now a shared batcher for the service so that multiple
connections will not cause frequent flushes.
2015-07-06 16:14:02 -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 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 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 a7d4d97743 Convert template matching to matcher struct 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 c130efb5e2 Add fields to config metric name schema of graphite 2015-06-24 23:09:06 -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
Philip O'Toole e84f661f7e Use defaults for Graphite input where necessary 2015-06-10 20:38:17 -07:00
Philip O'Toole 57ce67b97b Ensure target Graphite database exists 2015-06-10 18:03:06 -07:00
Cory LaNou 8a5cf394d8 add ability to silence logging for testing 2015-06-10 10:27:57 -05: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
Philip O'Toole b0d76913b0 Add new Service-style Graphite input support 2015-06-08 20:39:39 -07:00
Ben Johnson 4872e6db7c Move services to subpackage. 2015-05-30 08:20:12 -06:00