1 {%- from "influxdb/map.jinja" import server with context -%}
2 ### Welcome to the InfluxDB configuration file.
4 # Once every 24 hours InfluxDB will report anonymous data to m.influxdb.com
5 # The data includes raft id (random 8 bytes), os, arch, version, and metadata.
6 # We don't track ip addresses of servers reporting. This is only used
7 # to track the number of instances running and the versions, which
8 # is very helpful for us.
9 # Change this option to true to disable reporting.
10 reporting-disabled = false
12 # we'll try to get the hostname automatically, but if it the os returns something
13 # that isn't resolvable by other servers in the cluster, use this option to
14 # manually set the hostname
15 # hostname = "localhost"
20 ### Controls the parameters for the Raft consensus group that stores metadata
21 ### about the InfluxDB cluster.
24 {%- if server.meta.enabled %}
26 # Where the metadata/raft database is stored
27 dir = "/var/lib/influxdb/meta"
29 retention-autocreate = true
31 # If log messages are printed for the meta service
32 logging-enabled = true
35 # The default duration for leases.
36 lease-duration = "1m0s"
41 {%- if server.get('meta', {}).bind is defined %}
42 bind-address = "{{ server.meta.bind.address }}:{{ server.admin.bind.port }}"
43 http-bind-address = "{{ server.meta.bind.http_address }}:{{ server.admin.bind.http_port }}"
49 ### Controls where the actual shard data for InfluxDB lives and how it is
50 ### flushed from the WAL. "dir" may need to be changed to a suitable place
51 ### for your system, but the WAL settings are an advanced configuration. The
52 ### defaults should work for most systems.
55 {%- if server.data.enabled %}
57 # Controls if this node holds time series data shards in the cluster
60 dir = "/var/lib/influxdb/data"
62 # These are the WAL settings for the storage engine >= 0.9.3
63 wal-dir = "/var/lib/influxdb/wal"
64 wal-logging-enabled = true
65 data-logging-enabled = true
67 # Whether queries should be logged before execution. Very useful for troubleshooting, but will
68 # log any sensitive data contained within a query.
69 # query-log-enabled = true
71 # Settings for the TSM engine
73 # CacheMaxMemorySize is the maximum size a shard's cache can
74 # reach before it starts rejecting writes.
75 # cache-max-memory-size = 524288000
77 # CacheSnapshotMemorySize is the size at which the engine will
78 # snapshot the cache and write it to a TSM file, freeing up memory
79 # cache-snapshot-memory-size = 26214400
81 # CacheSnapshotWriteColdDuration is the length of time at
82 # which the engine will snapshot the cache and write it to
83 # a new TSM file if the shard hasn't received writes or deletes
84 # cache-snapshot-write-cold-duration = "1h"
86 # MinCompactionFileCount is the minimum number of TSM files
87 # that need to exist before a compaction cycle will run
88 # compact-min-file-count = 3
90 # CompactFullWriteColdDuration is the duration at which the engine
91 # will compact all TSM files in a shard if it hasn't received a
93 # compact-full-write-cold-duration = "24h"
95 # MaxPointsPerBlock is the maximum number of points in an encoded
96 # block in a TSM file. Larger numbers may yield better compression
97 # but could incur a performance penalty when querying
98 # max-points-per-block = 1000
107 ### Controls non-Raft cluster behavior, which generally includes how data is
108 ### shared across shards.
112 shard-writer-timeout = "5s" # The time within which a remote shard must respond to a write request.
113 write-timeout = "10s" # The time within which a write request must complete on the cluster.
114 max-concurrent-queries = 0 # The maximum number of concurrent queries that can run. 0 to disable.
115 query-timeout = "0s" # The time within a query must complete before being killed automatically. 0s to disable.
116 max-select-point = 0 # The maximum number of points to scan in a query. 0 to disable.
117 max-select-series = 0 # The maximum number of series to select in a query. 0 to disable.
118 max-select-buckets = 0 # The maximum number of buckets to select in an aggregate query. 0 to disable.
123 ### Controls the enforcement of retention policies for evicting old data.
128 check-interval = "30m"
131 ### [shard-precreation]
133 ### Controls the precreation of shards, so they are available before data arrives.
134 ### Only shards that, after creation, will have both a start- and end-time in the
135 ### future, will ever be created. Shards are never precreated that would be wholly
136 ### or partially in the past.
140 check-interval = "10m"
141 advance-period = "30m"
144 ### Controls the system self-monitoring, statistics and diagnostics.
146 ### The internal database for monitoring data is created automatically if
147 ### if it does not already exist. The target retention within this database
148 ### is called 'monitor' and is also created with a retention period of 7 days
149 ### and a replication factor of 1, if it does not exist. In all cases the
150 ### this retention policy is configured as the default for the database.
153 store-enabled = true # Whether to record statistics internally.
154 store-database = "_internal" # The destination database for recorded statistics
155 store-interval = "10s" # The interval at which to record statistics
160 ### Controls the availability of the built-in, web-based admin interface. If HTTPS is
161 ### enabled for the admin interface, HTTPS must also be enabled on the [http] service.
164 {%- if server.admin.enabled %}
167 bind-address = "{{ server.admin.bind.address }}:{{ server.admin.bind.port }}"
168 {%- if server.admin.get('ssl', {}).get('enabled', False) %}
170 admins-certificate = "{{ server.admin.ssl.cert_file }}"
171 admins-private-key = "{{ server.admin.ssl.key_file }}"
173 https-enabled = false
183 ### Controls how the HTTP endpoints are configured. These are the primary
184 ### mechanism for getting data into and out of InfluxDB.
187 {%- if server.http.enabled %}
190 bind-address = "{{ server.http.bind.address }}:{{ server.http.bind.port }}"
193 write-tracing = false
194 pprof-enabled = false
195 {%- if server.http.get('ssl', {}).get('enabled', False) %}
197 https-certificate = "{{ server.http.ssl.cert_file }}"
198 https-private-key = "{{ server.http.ssl.key_file }}"
200 https-enabled = false
202 max-row-limit = 10000
203 {%- if server.http.output is defined %}
205 {%- for name, output in server.http.output.iteritems() %}
206 { name="{{ name }}", location="{{ output.location }}", timeout="{{ output.timeout|default('10') }}s" },
218 ### Controls one or many listeners for Graphite data.
223 # database = "graphite"
224 # bind-address = ":2003"
226 # consistency-level = "one"
228 # These next lines control how batching works. You should have this enabled
229 # otherwise you could get dropped metrics or poor performance. Batching
230 # will buffer points in memory if you have many coming in.
232 # batch-size = 5000 # will flush if this many points get buffered
233 # batch-pending = 10 # number of batches that may be pending in memory
234 # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit
235 # udp-read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
237 ### This string joins multiple matching 'measurement' values providing more control over the final measurement name.
240 ### Default tags that will be added to all metrics. These can be overridden at the template level
241 ### or by tags extracted from metric
242 # tags = ["region=us-east", "zone=1c"]
244 ### Each template line requires a template pattern. It can have an optional
245 ### filter before the template and separated by spaces. It can also have optional extra
246 ### tags following the template. Multiple tags should be separated by commas and no spaces
247 ### similar to the line protocol format. There can be only one default template.
249 # "*.app env.service.resource.measurement",
257 ### Controls one or many listeners for collectd data.
266 # These next lines control how batching works. You should have this enabled
267 # otherwise you could get dropped metrics or poor performance. Batching
268 # will buffer points in memory if you have many coming in.
270 # batch-size = 1000 # will flush if this many points get buffered
271 # batch-pending = 5 # number of batches that may be pending in memory
272 # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit
273 # read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
278 ### Controls one or many listeners for OpenTSDB data.
283 # bind-address = ":4242"
284 # database = "opentsdb"
285 # retention-policy = ""
286 # consistency-level = "one"
287 # tls-enabled = false
289 # log-point-errors = true # Log an error for every malformed point.
291 # These next lines control how batching works. You should have this enabled
292 # otherwise you could get dropped metrics or poor performance. Only points
293 # metrics received over the telnet protocol undergo batching.
295 # batch-size = 1000 # will flush if this many points get buffered
296 # batch-pending = 5 # number of batches that may be pending in memory
297 # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit
302 ### Controls the listeners for InfluxDB line protocol data via UDP.
305 {%- if server.udp.enabled %}
308 bind-address = "{{ server.udp.bind.address }}:{{ server.udp.bind.port }}"
310 # retention-policy = ""
312 # These next lines control how batching works. You should have this enabled
313 # otherwise you could get dropped metrics or poor performance. Batching
314 # will buffer points in memory if you have many coming in.
316 # batch-size = 1000 # will flush if this many points get buffered
317 # batch-pending = 5 # number of batches that may be pending in memory
318 # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit
319 # read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
321 # set the expected UDP payload size; lower values tend to yield better performance, default is max UDP size 65536
322 # udp-payload-size = 65536
323 {%- if server.udp.output is defined %}
325 {%- for name, output in server.udp.output.iteritems() %}
326 { name="{{ name }}", location="{{ output.location }}"{% if output.mtu is defined %}, mtu="{{ output.mtu }}"{% endif %} },
336 ### [continuous_queries]
338 ### Controls how continuous queries are run within InfluxDB.
344 # run-interval = "1s" # interval for how often continuous queries will be checked if they need to run