- Overview
- Module Description - What the module does and why it is useful
- Installation
- Setup - The basics of getting started with influxdb
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
- License
This module manages InfluxDB installation.
The InfluxDB module manages both the installation and configuration of InfluxDB. I am planning to extend it to allow management of InfluxDB resources, such as databases, users, and privileges.
This release is a major refactoring of the module which means that the API changed in backwards incompatible ways. If your project depends on the old API and you need to use influxdb prior to 0.10.X, please pin your module dependencies to 0.1.2 (0.8.X) or 2.2.2 (0.9.X) version to ensure your environments don't break.
NOTE: Until influxdb 1.0.0 is releases the API of this module may change, however I will try my best to avoid it.
puppet module install golja/influxdb
- InfluxDB packages
- InfluxDB configuration files
- InfluxDB service
If you just want a server installed with the default options you can
run include '::influxdb::server'
.
All interaction for the server is done via influxdb::server
.
Install influxdb
class {'influxdb::server':}
Join a cluster
class {'influxdb::server':
meta_bind_address => "${::fqdn}:8088",
meta_http_bind_address => "${::fqdn}:8091",
http_bind_address => "${::fqdn}:8086",
influxd_opts => "-join my.other.node1:8091,my.other.node2:8091"
}
For more info on setting up a raft cluster, see the InfluxDB docs
Enable Graphite plugin with one database
class {'influxdb::server':
graphite_options => {
enabled => true,
database => graphite,
bind-address => ':2003',
protocol => tcp,
consistency-level => 'one',
name-separator => '.',
batch-size => 1000,
batch-pending => 5,
batch-timeout => '1s',
udp-read-buffer => 0,
name-schema => 'type.host.measurement.device',
templates => [ "*.app env.service.resource.measurement" ],
tags => [ "region=us-east", "zone=1c"],
},
}
Enable Collectd plugin
class {'influxdb::server':
collectd_options => {
enabled => true,
bind-address => ':25826',
database => 'foo',
typesdb => '/usr/share/collectd/types.db',
batch-size => 1000,
batch-pending => 5,
batch-timeout => '1s',
read-buffer => 0,
},
}
Enable UDP listener
$udp_options = [
{ 'enabled' => true,
'bind-address' => '":8089"',
'database' => '"udp_db1"',
'batch-size' => 10000,
'batch-timeout' => '"1s"',
'batch-pending' => 5,
},
{ 'enabled' => true,
'bind-address' => '":8090"',
'database' => '"udp_db2"',
'batch-size' => 10000,
'batch-timeout' => '"1s"',
'batch-pending' => 5,
},
]
class {'influxdb::server':
reporting_disabled => true,
http_auth_enabled => true,
shard_writer_timeout => '10s',
cluster_write_timeout => '10s',
udp_options => $udp_options,
}
Enable opentsdb
class {'influxdb::server':
opentsdb_options => {
enabled => true,
bind-address => ':4242',
database => 'foo',
typesdb => '/usr/share/collectd/types.db',
batch-size => 1000,
batch-pending => 5,
batch-timeout => '1s',
read-buffer => 0,
},
}
influxdb::server
: Installs and configures InfluxDB.
influxdb::server::install
: Installs packages.influxdb::server::config
: Configures InfluxDB.influxdb::server::service
: Manages service.
Allows you to install or remove InfluxDB. Can be 'present' or 'absent'.
Version of InfluxDB. Default: 0.9.3 NOTE: Unfortunately, the latest link available on the influxdb website is pointing to an old version. For more info, check ISSUE 3533
Path to the config file. Default: OS specific
The provider to use to manage the service. Default: OS specific
Boolean to decide if the service should be enabled.
What provider should be used to install the package.
This setting can be used to configure InfluxDB to bind to and listen for
cluster connections on this address, default is ":8088"
For clustering this must be set to <fqdn>:<port>
(usually 8088)
This setting can be used to configure InfluxDB to bind to and listen for
cluster connections on this address, default is ":8091"
For clustering this must be set to <fqdn>:<port>
(usually 8091)
If enabled once every 24 hours InfluxDB will report anonymous data to m.influxdb.com. Default: false
Default: true
Default: 1s
Default: 1s
Default: 500ms
Default: 50ms
Controls where the actual shard data for InfluxDB lives. Default: OS distro
Wal dir for the storage engine 0.9.3+ Default: /var/lib/influxdb/wal
Location of the meta dir Default: /var/lib/influxdb/meta
Enable WAL logging. NEW in 0.9.3+ Default: true
When a series in the WAL in-memory cache reaches this size in bytes it is marked as ready to flush to the index. NEW in 0.9.3+ Default: 25600
Flush and compact a partition once this ratio of series are over the ready size. NEW in 0.9.3+ Default: 0.6
Force a flush and compaction if any series in a partition gets above this size in bytes. NEW in 0.9.3+ Default: 2097152
Force a flush of all series and full compaction if there have been no writes in this amount of time. This is useful for ensuring that shards that are cold for writes don't keep a bunch of data cached in memory and in the WAL. NEW in 0.9.3+ Default: 10m
Force a partition to flush its largest series if it reaches this approximate size in bytes. Remember there are 5 partitions so you'll need at least 5x this amount of memory. The more memory you have, the bigger this can be. NEW in 0.9.3+Default: 20971520
Maximum size the WAL can reach before a flush. DEPRECATED since version 0.9.3. Default: 100MB
Maximum time data can sit in WAL before a flush. DEPRECATED since version 0.9.3. Default: 10m
The delay time between each WAL partition being flushed. DEPRECATED since version 0.9.3. Default: 2s
The time within which a shard must respond to write. Default: 5s
The time within which a write operation must complete on the cluster. Default: 5s
Controls the enforcement of retention policies for evicting old data. Default: true
Default: 10m
Controls the availability of the built-in, web-based, admin interface. Default: true
Default: :8083
If HTTPS is enabled for the admin interface, HTTPS must also be enabled on the [http] service. Default: false
Default: undef
Controls how the HTTP endpoints are configured. These are the primary mechanism for getting data into and out of InfluxDB. Default: true
Default: :8086
Default: false
Default: true
Default: false
Default: false
Default: false
Default: undef
Controls the listener for InfluxDB line protocol data via Graphite. Default: undef
Controls the listener for InfluxDB line protocol data via Collectd. Default: undef
Controls the listener for InfluxDB line protocol data via OpenTSDB. Default: undef
Controls the listener for InfluxDB line protocol data via UDP. Default: undef
Default: true
Default: 24h
Default: _internal
Controls how continuous queries are run within InfluxDB. Default: true
Default true
Default: 1s
Controls the hinted handoff feature, which allows nodes to temporarily store queued data when one node of a cluster is down for a short period of time. Default: true
Default: /var/lib/influxdb/hh
Default: 1073741824
Default: 168h
Default: 0
Default: 1s
If needed, you can add a custom template. Default: influxdb/influxdb.conf.erb
Default: OS specific
Default: OS specific
Default: /var/log/influxdb/influxd.log
Default: /dev/null
enable/disable installation of the influxdb packages from the yum/apt repo Default: true
enable/disable repository installation Default: true
Additional influxd options used for setting up raft clusters. Default: undef
This module has been tested on:
- Ubuntu 12.04
- Ubuntu 14.04
- CentOS 6/7
Please see CONTRIBUTING.md
- Add native types for managing users and databases
- Add more rspec tests
- Add beaker/rspec tests
See LICENSE file