salt.modules.influx

InfluxDB - A distributed time series database

Module to provide InfluxDB compatibility to Salt (compatible with InfluxDB version 0.9+)

depends:
  • influxdb Python module (>= 3.0.0)
configuration:

This module accepts connection configuration details either as parameters or as configuration settings in /etc/salt/minion on the relevant minions:

influxdb.host: 'localhost'
influxdb.port: 8086
influxdb.user: 'root'
influxdb.password: 'root'

This data can also be passed into pillar. Options passed into opts will overwrite options passed into pillar.

Most functions in this module allow you to override or provide some or all of these settings via keyword arguments:

salt '*' influxdb.foo_function user='influxadmin' password='s3cr1t'

would override user and password while still using the defaults for host and port.

salt.modules.influx.alter_retention_policy(database, name, duration, replication, default=False, **client_args)

Modify an existing retention policy.

name
Name of the retention policy to modify.
database
Name of the database for which the retention policy was defined.
duration

New duration of given retention policy.

Durations such as 1h, 90m, 12h, 7d, and 4w, are all supported and mean 1 hour, 90 minutes, 12 hours, 7 day, and 4 weeks, respectively. For infinite retention – meaning the data will never be deleted – use 'INF' for duration. The minimum retention period is 1 hour.

replication

New replication of given retention policy.

This determines how many independent copies of each data point are stored in a cluster.

default
: False
Whether or not to set the modified policy as default.

CLI Example:

salt '*' influxdb.alter_retention_policy metrics default 1d 1
salt.modules.influx.create_db(name, **client_args)

Create a database.

name
Name of the database to create.

CLI Example:

salt '*' influxdb.create_db <name>
salt.modules.influx.create_retention_policy(database, name, duration, replication, default=False, **client_args)

Create a retention policy.

database
Name of the database for which the retention policy will be created.
name
Name of the new retention policy.
duration

Duration of the new retention policy.

Durations such as 1h, 90m, 12h, 7d, and 4w, are all supported and mean 1 hour, 90 minutes, 12 hours, 7 day, and 4 weeks, respectively. For infinite retention – meaning the data will never be deleted – use 'INF' for duration. The minimum retention period is 1 hour.

replication

Replication factor of the retention policy.

This determines how many independent copies of each data point are stored in a cluster.

default
: False
Whether or not the policy as default will be set as default.

CLI Example:

salt '*' influxdb.create_retention_policy metrics default 1d 1
salt.modules.influx.create_user(name, password, admin=False, **client_args)

Create a user.

name
Name of the user to create.
password
Password of the new user.
admin
: False
Whether the user should have cluster administration privileges or not.

CLI Example:

salt '*' influxdb.create_user <name> <password>
salt '*' influxdb.create_user <name> <password> admin=True
salt.modules.influx.db_exists(name, **client_args)

Checks if a database exists in InfluxDB.

name
Name of the database to check.

CLI Example:

salt '*' influxdb.db_exists <name>
salt.modules.influx.drop_db(name, **client_args)

Drop a database.

name
Name of the database to drop.

CLI Example:

salt '*' influxdb.drop_db <name>
salt.modules.influx.get_retention_policy(database, name, **client_args)

Get an existing retention policy.

database
Name of the database for which the retention policy was defined.
name
Name of the retention policy.

CLI Example:

salt '*' influxdb.get_retention_policy metrics default
salt.modules.influx.grant_admin_privileges(name, **client_args)

Grant cluster administration privileges to a user.

name
Name of the user to whom admin privileges will be granted.

CLI Example:

salt '*' influxdb.grant_admin_privileges <name>
salt.modules.influx.grant_privilege(database, privilege, username, **client_args)

Grant a privilege on a database to a user.

database
Name of the database to grant the privilege on.
privilege
Privilege to grant. Can be one of 'read', 'write' or 'all'.
username
Name of the user to grant the privilege to.
salt.modules.influx.list_dbs(**client_args)

List all InfluxDB databases.

CLI Example:

salt '*' influxdb.list_dbs
salt.modules.influx.list_users(**client_args)

List all users.

CLI Example:

salt '*' influxdb.list_users
salt.modules.influx.remove_user(name, **client_args)

Remove a user.

name
Name of the user to remove

CLI Example:

salt '*' influxdb.remove_user <name>
salt.modules.influx.retention_policy_exists(database, name, **client_args)

Check if retention policy with given name exists.

database
Name of the database for which the retention policy was defined.
name
Name of the retention policy to check.

CLI Example:

salt '*' influxdb.retention_policy_exists metrics default
salt.modules.influx.revoke_admin_privileges(name, **client_args)

Revoke cluster administration privileges from a user.

name
Name of the user from whom admin privileges will be revoked.

CLI Example:

salt '*' influxdb.revoke_admin_privileges <name>
salt.modules.influx.revoke_privilege(database, privilege, username, **client_args)

Revoke a privilege on a database from a user.

database
Name of the database to grant the privilege on.
privilege
Privilege to grant. Can be one of 'read', 'write' or 'all'.
username
Name of the user to grant the privilege to.
salt.modules.influx.set_user_password(name, password, **client_args)

Change password of a user.

name
Name of the user for whom to set the password.
password
New password of the user.

CLI Example:

salt '*' influxdb.set_user_password <name> <password>
salt.modules.influx.user_exists(name, **client_args)

Check if a user exists.

name
Name of the user to check.

CLI Example:

salt '*' influxdb.user_exists <name>
salt.modules.influx.user_info(name, **client_args)

Get information about given user.

name
Name of the user for which to get information.

CLI Example:

salt '*' influxdb.user_info <name>