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 = {{ server.reporting_disabled | lower }}
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 = "{{ server.meta.dir }}"
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
59 dir = "{{ server.data.dir }}"
60 wal-dir = "{{ server.data.wal_dir }}"
61 trace-logging-enabled = {{ server.data.trace_logging_enabled|default('false')|lower }}
62 query-log-enabled = {{ server.data.query_log_enabled | lower }}
63 max-series-per-database = {{ server.data.max_series_per_database }}
64 cache-max-memory-size = {{ server.data.cache_max_memory_size|default(1048576000) }}
65 cache-snapshot-memory-size = {{ server.data.cache_snapshot_memory_size|default(26214400) }}
66 cache-snapshot-write-cold-duration = "{{ server.data.cache_snapshot_write_cold_duration|default('10m') }}"
67 compact-full-write-cold-duration = "{{ server.data.compact_full_write_cold_duration|default('4h') }}"
68 max-values-per-tag = {{ server.data.max_values_per_tag|default(100000) }}
69 {%- if server.data.raw_rules is defined -%}
70 {% for rule in server.data.raw_rules %}
82 ### Controls the clustering service configuration.
87 max-concurrent-queries = 0
89 log-queries-after = "0"
92 max-select-buckets = 0
97 ### Controls the enforcement of retention policies for evicting old data.
102 check-interval = "{{ server.get('retention', {}).check_interval|default('30m') }}"
105 ### [shard-precreation]
107 ### Controls the precreation of shards, so they are available before data arrives.
108 ### Only shards that, after creation, will have both a start- and end-time in the
109 ### future, will ever be created. Shards are never precreated that would be wholly
110 ### or partially in the past.
114 check-interval = "{{ server.get('shard_precreation', {}).check_interval|default('10m') }}"
115 advance-period = "{{ server.get('shard_precreation', {}).advance_period|default('30m') }}"
118 ### Controls the system self-monitoring, statistics and diagnostics.
120 ### The internal database for monitoring data is created automatically if
121 ### if it does not already exist. The target retention within this database
122 ### is called 'monitor' and is also created with a retention period of 7 days
123 ### and a replication factor of 1, if it does not exist. In all cases the
124 ### this retention policy is configured as the default for the database.
127 store-enabled = true # Whether to record statistics internally.
128 store-database = "_internal" # The destination database for recorded statistics
129 store-interval = "10s" # The interval at which to record statistics
134 ### Controls the availability of the built-in, web-based admin interface. If HTTPS is
135 ### enabled for the admin interface, HTTPS must also be enabled on the [http] service.
138 {%- if server.admin.enabled %}
141 bind-address = "{{ server.admin.bind.address }}:{{ server.admin.bind.port }}"
142 {%- if server.admin.get('ssl', {}).get('enabled', False) %}
144 admins-certificate = "{{ server.admin.ssl.cert_file }}"
145 admins-private-key = "{{ server.admin.ssl.key_file }}"
147 https-enabled = false
149 {%- if server.admin.raw_rules is defined -%}
150 {% for rule in server.admin.raw_rules %}
162 ### Controls how the HTTP endpoints are configured. These are the primary
163 ### mechanism for getting data into and out of InfluxDB.
166 {%- if server.http.enabled %}
169 bind-address = "{{ server.http.bind.address }}:{{ server.http.bind.port }}"
170 {%- if server.admin.get('user', {}).get('enabled', False) %}
175 log-enabled = {{ server.http.log_enabled | lower }}
176 write-tracing = false
177 pprof-enabled = false
178 {%- if server.http.get('ssl', {}).get('enabled', False) %}
180 https-certificate = "{{ server.http.ssl.cert_file }}"
181 https-private-key = "{{ server.http.ssl.key_file }}"
183 https-enabled = false
185 max-row-limit = 10000
186 {%- if server.http.output is defined %}
188 {%- for name, output in server.http.output.iteritems() %}
189 { name="{{ name }}", location="{{ output.location }}", timeout="{{ output.timeout|default('10') }}s" },
193 {%- if server.http.raw_rules is defined -%}
194 {% for rule in server.http.raw_rules %}
206 ### Controls the subscriptions, which can be used to fork a copy of all data
207 ### received by the InfluxDB host.
212 # http-timeout = "30s"
213 # write-concurrency = 40
214 # write-buffer-size = 1000
219 ### Controls one or many listeners for Graphite data.
224 # database = "graphite"
225 # bind-address = ":2003"
227 # consistency-level = "one"
229 # These next lines control how batching works. You should have this enabled
230 # otherwise you could get dropped metrics or poor performance. Batching
231 # will buffer points in memory if you have many coming in.
233 # batch-size = 5000 # will flush if this many points get buffered
234 # batch-pending = 10 # number of batches that may be pending in memory
235 # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit
236 # udp-read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
238 ### This string joins multiple matching 'measurement' values providing more control over the final measurement name.
241 ### Default tags that will be added to all metrics. These can be overridden at the template level
242 ### or by tags extracted from metric
243 # tags = ["region=us-east", "zone=1c"]
245 ### Each template line requires a template pattern. It can have an optional
246 ### filter before the template and separated by spaces. It can also have optional extra
247 ### tags following the template. Multiple tags should be separated by commas and no spaces
248 ### similar to the line protocol format. There can be only one default template.
250 # "*.app env.service.resource.measurement",
258 ### Controls one or many listeners for collectd data.
267 # These next lines control how batching works. You should have this enabled
268 # otherwise you could get dropped metrics or poor performance. Batching
269 # will buffer points in memory if you have many coming in.
271 # batch-size = 1000 # will flush if this many points get buffered
272 # batch-pending = 5 # number of batches that may be pending in memory
273 # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit
274 # read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
279 ### Controls one or many listeners for OpenTSDB data.
284 # bind-address = ":4242"
285 # database = "opentsdb"
286 # retention-policy = ""
287 # consistency-level = "one"
288 # tls-enabled = false
290 # log-point-errors = true # Log an error for every malformed point.
292 # These next lines control how batching works. You should have this enabled
293 # otherwise you could get dropped metrics or poor performance. Only points
294 # metrics received over the telnet protocol undergo batching.
296 # batch-size = 1000 # will flush if this many points get buffered
297 # batch-pending = 5 # number of batches that may be pending in memory
298 # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit
303 ### Controls the listeners for InfluxDB line protocol data via UDP.
306 {%- if server.udp.enabled %}
309 bind-address = "{{ server.udp.bind.address }}:{{ server.udp.bind.port }}"
311 # retention-policy = ""
313 # These next lines control how batching works. You should have this enabled
314 # otherwise you could get dropped metrics or poor performance. Batching
315 # will buffer points in memory if you have many coming in.
317 # batch-size = 1000 # will flush if this many points get buffered
318 # batch-pending = 5 # number of batches that may be pending in memory
319 # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit
320 # read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
322 # set the expected UDP payload size; lower values tend to yield better performance, default is max UDP size 65536
323 # udp-payload-size = 65536
324 {%- if server.udp.output is defined %}
326 {%- for name, output in server.udp.output.iteritems() %}
327 { name="{{ name }}", location="{{ output.location }}"{% if output.mtu is defined %}, mtu="{{ output.mtu }}"{% endif %} },
332 {%- if server.udp.raw_rules is defined -%}
333 {% for rule in server.udp.raw_rules %}
344 ### [continuous_queries]
346 ### Controls how continuous queries are run within InfluxDB.
352 # run-interval = "1s" # interval for how often continuous queries will be checked if they need to run