Complete refactor in order to support RC-32

The influxdb RC-32 is quite strange, uses a UDP/IP line protocol with
batch updates.

This commit will cover the base UDP/IP protocol as first implementation
This commit is contained in:
Walter Dal Mut
2015-06-10 15:54:06 +02:00
parent 4fa039337b
commit 94fa4e67b2
9 changed files with 251 additions and 186 deletions
+66 -110
View File
@@ -1,118 +1,74 @@
# Welcome to the InfluxDB configuration file.
[meta]
dir = "/var/opt/influxdb/meta"
hostname = "localhost"
bind-address = ":8088"
retention-autocreate = true
election-timeout = "1s"
heartbeat-timeout = "1s"
leader-lease-timeout = "500ms"
commit-timeout = "50ms"
# If hostname (on the OS) doesn't return a name that can be resolved by the other
# systems in the cluster, you'll have to set the hostname to an IP or something
# that can be resolved here.
# hostname = ""
bind-address = "0.0.0.0"
# The default cluster and API port
port = 8086
# Once every 24 hours InfluxDB will report anonymous data to m.influxdb.com
# The data includes raft id (random 8 bytes), os, arch and version
# We don't track ip addresses of servers reporting. This is only used
# to track the number of instances running and the versions, which
# is very helpful for us.
# Change this option to true to disable reporting.
reporting-disabled = false
# Controls settings for initial start-up. Once a node is successfully started,
# these settings are ignored. If a node is started with the -join flag,
# these settings are ignored.
[initialization]
join-urls = "" # Comma-delimited URLs, in the form http://host:port, for joining another cluster.
# Control authentication
# If not set authetication is DISABLED. Be sure to explicitly set this flag to
# true if you want authentication.
[authentication]
enabled = false
# Configure the admin server
[admin]
enabled = true
port = 8083
# Configure the HTTP API endpoint. All time-series data and queries uses this endpoint.
[api]
# ssl-port = 8087 # SSL support is enabled if you set a port and cert
# ssl-cert = "/path/to/cert.pem"
# Configure the Graphite plugins.
[[graphite]] # 1 or more of these sections may be present.
enabled = false
# protocol = "" # Set to "tcp" or "udp"
# address = "0.0.0.0" # If not set, is actually set to bind-address.
# port = 2003
# name-position = "last"
# name-separator = "-"
# database = "" # store graphite data in this database
# Configure the collectd input.
[collectd]
enabled = false
#address = "0.0.0.0" # If not set, is actually set to bind-address.
#port = 25827
#database = "collectd_database"
#typesdb = "types.db"
# Configure the OpenTSDB input.
[opentsdb]
enabled = false
#address = "0.0.0.0" # If not set, is actually set to bind-address.
#port = 4242
#database = "opentsdb_database"
# Configure UDP listener for series data.
[udp]
enabled = true
bind-address = "0.0.0.0"
port = 4444
# Broker configuration. Brokers are nodes which participate in distributed
# consensus.
[broker]
enabled = true
# Where the Raft logs are stored. The user running InfluxDB will need read/write access.
dir = "/var/opt/influxdb/raft"
truncation-interval = "10m"
max-topic-size = 52428800
max-segment-size = 10485760
# Raft configuration. Controls the distributed consensus system.
[raft]
apply-interval = "10ms"
election-timeout = "5s"
heartbeat-interval = "100ms"
reconnect-timeout = "10ms"
# Data node configuration. Data nodes are where the time-series data, in the form of
# shards, is stored.
[data]
enabled = true
dir = "/var/opt/influxdb/db"
dir = "/var/opt/influxdb/data"
retention-auto-create = true
retention-check-enabled = true
retention-check-period = "10m0s"
retention-create-period = "45m0s"
# Auto-create a retention policy when a database is created. Defaults to true.
retention-auto-create = true
[cluster]
shard-writer-timeout = "5s"
# Control whether retention policies are enforced and how long the system waits between
# enforcing those policies.
retention-check-enabled = true
retention-check-period = "10m"
[retention]
enabled = true
check-interval = "10m0s"
# Configuration for snapshot endpoint.
[snapshot]
enabled = true # Enabled by default if not set.
[admin]
enabled = true
bind-address = ":8083"
[logging]
write-tracing = false # If true, enables detailed logging of the write system.
raft-tracing = false # If true, enables detailed logging of Raft consensus.
http-access = true # If true, logs each HTTP access to the system.
[http]
enabled = true
bind-address = ":8086"
auth-enabled = false
log-enabled = true
write-tracing = false
pprof-enabled = false
[collectd]
enabled = false
bind-address = ""
database = ""
typesdb = ""
[opentsdb]
enabled = false
bind-address = ""
database = ""
retention-policy = ""
[udp]
enabled = true
bind-address = ":4444"
database = "udp.test"
batch-size = 0
batch-timeout = "10ns"
# InfluxDB can store statistical and diagnostic information about itself. This is useful for
# monitoring purposes. This feature is disabled by default, but if enabled, these data can be
# queried like any other data.
[monitoring]
enabled = false
write-interval = "1m" # Period between writing the data.
enabled = false
write-interval = "1m0s"
[continuous_queries]
enabled = true
recompute-previous-n = 2
recompute-no-older-than = "10m0s"
compute-runs-per-interval = 10
compute-no-more-than = "2m0s"
[hinted-handoff]
enabled = true
dir = "/var/opt/influxdb/hh"
max-size = 1073741824
max-age = "168h0m0s"
retry-rate-limit = 0
retry-interval = "1s"