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.
influx_inspect uncovered that the monitoring database was storing it's data with almost
no compression because it recorded points at nanosecond precision but spaced them 10s apart. This
still requires 8 bytes.
Instead, store the points at seconds precision which allows the timestamp data to be run-length
encoded.
This functionality is idempotent and is storage has been successfully
created, no attempt will be made to re-create it. This allows the system
to keep trying every cycle, but stop when successful.
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
This reverts to a previous design for storing stats, whereby if a
non-default retention policy is configured as the destination retention
policy, it is up the user to explicitly create it, with the desired
replication factor and duration.
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.