{%- from "influxdb/map.jinja" import server with context -%} ### Welcome to the InfluxDB configuration file. # Once every 24 hours InfluxDB will report anonymous data to m.influxdb.com # The data includes raft id (random 8 bytes), os, arch, version, and metadata. # 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 = {{ server.reporting_disabled | lower }} # we'll try to get the hostname automatically, but if it the os returns something # that isn't resolvable by other servers in the cluster, use this option to # manually set the hostname # hostname = "localhost" ### ### [meta] ### ### Controls the parameters for the Raft consensus group that stores metadata ### about the InfluxDB cluster. ### {%- if server.meta.enabled %} [meta] # Where the metadata/raft database is stored dir = "{{ server.meta.dir }}" retention-autocreate = true # If log messages are printed for the meta service logging-enabled = true pprof-enabled = false # The default duration for leases. lease-duration = "1m0s" {%- else %} [meta] enabled = false {%- endif %} {%- if server.get('meta', {}).bind is defined %} bind-address = "{{ server.meta.bind.address }}:{{ server.admin.bind.port }}" http-bind-address = "{{ server.meta.bind.http_address }}:{{ server.admin.bind.http_port }}" {%- endif %} ### ### [data] ### ### Controls where the actual shard data for InfluxDB lives and how it is ### flushed from the WAL. "dir" may need to be changed to a suitable place ### for your system, but the WAL settings are an advanced configuration. The ### defaults should work for most systems. ### {%- if server.data.enabled %} [data] # Controls if this node holds time series data shards in the cluster enabled = true dir = "{{ server.data.dir }}" # These are the WAL settings for the storage engine >= 0.9.3 wal-dir = "{{ server.data.wal_dir }}" wal-logging-enabled = true data-logging-enabled = true # Whether queries should be logged before execution. Very useful for troubleshooting, but will # log any sensitive data contained within a query. # query-log-enabled = true # Settings for the TSM engine # CacheMaxMemorySize is the maximum size a shard's cache can # reach before it starts rejecting writes. # cache-max-memory-size = 524288000 # CacheSnapshotMemorySize is the size at which the engine will # snapshot the cache and write it to a TSM file, freeing up memory # cache-snapshot-memory-size = 26214400 # CacheSnapshotWriteColdDuration is the length of time at # which the engine will snapshot the cache and write it to # a new TSM file if the shard hasn't received writes or deletes # cache-snapshot-write-cold-duration = "1h" # MinCompactionFileCount is the minimum number of TSM files # that need to exist before a compaction cycle will run # compact-min-file-count = 3 # CompactFullWriteColdDuration is the duration at which the engine # will compact all TSM files in a shard if it hasn't received a # write or delete # compact-full-write-cold-duration = "24h" # MaxPointsPerBlock is the maximum number of points in an encoded # block in a TSM file. Larger numbers may yield better compression # but could incur a performance penalty when querying # max-points-per-block = 1000 {%- else %} [data] enabled = false {%- endif %} ### ### [coordinator] ### ### Controls the clustering service configuration. ### [coordinator] write-timeout = "10s" max-concurrent-queries = 0 query-timeout = "0" log-queries-after = "0" max-select-point = 0 max-select-series = 0 max-select-buckets = 0 ### ### [retention] ### ### Controls the enforcement of retention policies for evicting old data. ### [retention] enabled = true check-interval = "30m" ### ### [shard-precreation] ### ### Controls the precreation of shards, so they are available before data arrives. ### Only shards that, after creation, will have both a start- and end-time in the ### future, will ever be created. Shards are never precreated that would be wholly ### or partially in the past. [shard-precreation] enabled = true check-interval = "10m" advance-period = "30m" ### ### Controls the system self-monitoring, statistics and diagnostics. ### ### The internal database for monitoring data is created automatically if ### if it does not already exist. The target retention within this database ### is called 'monitor' and is also created with a retention period of 7 days ### and a replication factor of 1, if it does not exist. In all cases the ### this retention policy is configured as the default for the database. [monitor] store-enabled = true # Whether to record statistics internally. store-database = "_internal" # The destination database for recorded statistics store-interval = "10s" # The interval at which to record statistics ### ### [admin] ### ### Controls the availability of the built-in, web-based admin interface. If HTTPS is ### enabled for the admin interface, HTTPS must also be enabled on the [http] service. ### {%- if server.admin.enabled %} [admin] enabled = true bind-address = "{{ server.admin.bind.address }}:{{ server.admin.bind.port }}" {%- if server.admin.get('ssl', {}).get('enabled', False) %} https-enabled = true admins-certificate = "{{ server.admin.ssl.cert_file }}" admins-private-key = "{{ server.admin.ssl.key_file }}" {%- else %} https-enabled = false {%- endif %} {%- else %} [admin] enabled = false {%- endif %} ### ### [http] ### ### Controls how the HTTP endpoints are configured. These are the primary ### mechanism for getting data into and out of InfluxDB. ### {%- if server.http.enabled %} [http] enabled = true bind-address = "{{ server.http.bind.address }}:{{ server.http.bind.port }}" {%- if server.admin.get('user', {}).get('enabled', False) %} auth-enabled = true {%- else %} auth-enabled = false {%- endif %} log-enabled = {{ server.http.log_enabled | lower }} write-tracing = false pprof-enabled = false {%- if server.http.get('ssl', {}).get('enabled', False) %} https-enabled = true https-certificate = "{{ server.http.ssl.cert_file }}" https-private-key = "{{ server.http.ssl.key_file }}" {%- else %} https-enabled = false {%- endif %} max-row-limit = 10000 {%- if server.http.output is defined %} output = [ {%- for name, output in server.http.output.iteritems() %} { name="{{ name }}", location="{{ output.location }}", timeout="{{ output.timeout|default('10') }}s" }, {%- endfor %} ] {%- endif %} {%- else %} [http] enabled = false {%- endif %} ### ### [subscriber] ### ### Controls the subscriptions, which can be used to fork a copy of all data ### received by the InfluxDB host. ### [subscriber] enabled = false # http-timeout = "30s" # write-concurrency = 40 # write-buffer-size = 1000 ### ### [[graphite]] ### ### Controls one or many listeners for Graphite data. ### [[graphite]] enabled = false # database = "graphite" # bind-address = ":2003" # protocol = "tcp" # consistency-level = "one" # These next lines control how batching works. You should have this enabled # otherwise you could get dropped metrics or poor performance. Batching # will buffer points in memory if you have many coming in. # batch-size = 5000 # will flush if this many points get buffered # batch-pending = 10 # number of batches that may be pending in memory # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit # udp-read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max. ### This string joins multiple matching 'measurement' values providing more control over the final measurement name. # separator = "." ### Default tags that will be added to all metrics. These can be overridden at the template level ### or by tags extracted from metric # tags = ["region=us-east", "zone=1c"] ### Each template line requires a template pattern. It can have an optional ### filter before the template and separated by spaces. It can also have optional extra ### tags following the template. Multiple tags should be separated by commas and no spaces ### similar to the line protocol format. There can be only one default template. # templates = [ # "*.app env.service.resource.measurement", # # Default template # "server.*", # ] ### ### [collectd] ### ### Controls one or many listeners for collectd data. ### [[collectd]] enabled = false # bind-address = "" # database = "" # typesdb = "" # These next lines control how batching works. You should have this enabled # otherwise you could get dropped metrics or poor performance. Batching # will buffer points in memory if you have many coming in. # batch-size = 1000 # will flush if this many points get buffered # batch-pending = 5 # number of batches that may be pending in memory # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit # read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max. ### ### [opentsdb] ### ### Controls one or many listeners for OpenTSDB data. ### [[opentsdb]] enabled = false # bind-address = ":4242" # database = "opentsdb" # retention-policy = "" # consistency-level = "one" # tls-enabled = false # certificate= "" # log-point-errors = true # Log an error for every malformed point. # These next lines control how batching works. You should have this enabled # otherwise you could get dropped metrics or poor performance. Only points # metrics received over the telnet protocol undergo batching. # batch-size = 1000 # will flush if this many points get buffered # batch-pending = 5 # number of batches that may be pending in memory # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit ### ### [[udp]] ### ### Controls the listeners for InfluxDB line protocol data via UDP. ### {%- if server.udp.enabled %} [[udp]] enabled = true bind-address = "{{ server.udp.bind.address }}:{{ server.udp.bind.port }}" # database = "udp" # retention-policy = "" # These next lines control how batching works. You should have this enabled # otherwise you could get dropped metrics or poor performance. Batching # will buffer points in memory if you have many coming in. # batch-size = 1000 # will flush if this many points get buffered # batch-pending = 5 # number of batches that may be pending in memory # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit # read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max. # set the expected UDP payload size; lower values tend to yield better performance, default is max UDP size 65536 # udp-payload-size = 65536 {%- if server.udp.output is defined %} output = [ {%- for name, output in server.udp.output.iteritems() %} { name="{{ name }}", location="{{ output.location }}"{% if output.mtu is defined %}, mtu="{{ output.mtu }}"{% endif %} }, {%- endfor %} ] {%- endif %} {%- else %} [[udp]] enabled = false {%- endif %} ### ### [continuous_queries] ### ### Controls how continuous queries are run within InfluxDB. ### [continuous_queries] log-enabled = true enabled = true # run-interval = "1s" # interval for how often continuous queries will be checked if they need to run {#- vim: syntax=jinja -#}