NAME InfluxDB - Client library for InfluxDB INSTALLATION To install this module, run the following commands: perl Build.PL ./Build ./Build test ./Build install CAUTION The JSON write protocol is deprecated as of InfluxDB 0.9.1. It is still present but it will be removed when InfluxDB 1.0 is released. The line protocol is the primary write protocol for InfluxDB 0.9.1+. This InfluxDB module can handle only JSON protocol. If you want to use line protocol, please use InfluxDB::LineProtocol module. SYNOPSIS use InfluxDB; my $ix = InfluxDB->new( host => '127.0.0.1', port => 8086, username => 'scott', password => 'tiger', database => 'test', # ssl => 1, # enable SSL/TLS access # timeout => 5, # set timeout to 5 seconds ); $ix->write_points( data => { name => "cpu", columns => [qw(sys user idle)], points => [ [20, 50, 30], [30, 60, 10], ], }, ) or die "write_points: " . $ix->errstr; my $rs = $ix->query( q => 'select * from cpu', time_precision => 's', ) or die "query: " . $ix->errstr; # $rs is ArrayRef[HashRef]: # [ # { # columns => ["time","sequence_number","idle","sys","user"], # name => "cpu", # points => [ # ["1391743908",6500001,10,30,60], # ["1391743908",6490001,30,20,50], # ], # }, # ] my $hrs = $ix->as_hash($rs); # or InfluxDB->as_hash($rs); # convert into HashRef for convenience # { # cpu => [ # { # idle => 10, # seqnum => 6500001, # sys => 30, # time => "1391743908", # user => 60 # }, # { # idle => 30, # seqnum => 6490001, # sys => 20, # time => "1391743908", # user => 50 # } # ] # } DESCRIPTION This module `InfluxDB` is a client library for InfluxDB . METHODS Class Methods new(%args:Hash) :InfluxDB Creates and returns a new InfluxDB client instance. Dies on errors. %args is following: host => Str port => Int (default: 8086) username => Str password => Str database => Str ssl => Bool (optional) timeout => Int (default: 120) debug => Bool (optional) Instance Methods write_points(%args:Hash) :Bool Write to multiple time series names. data => ArrayRef[HashRef] | HashRef HashRef like following: { name => "name_of_series", columns => ["col1", "col2", ...], points => [ [10.0, 20.0, ...], [10.9, 21.3, ...], ... ], } The time and any other data fields which should be graphable must be numbers, not text. See "simple scalars" in JSON. time_precision => "s" | "m" | "u" (optional) The precision timestamps should come back in. Valid options are s for seconds, m for milliseconds, and u for microseconds. delete_points(name => Str) :Bool Delete ALL DATA from series specified by name query(%args:Hash) :ArrayRef q => Str The InfluxDB query language, see: http://influxdb.org/docs/query_language/ time_precision => "s" | "m" | "u" (optional) The precision timestamps should come back in. Valid options are s for seconds, m for milliseconds, and u for microseconds. chunked => Bool (default: 0) Chunked response. as_hash($result:ArrayRef[HashRef]) :HashRef Utility instance/class method for handling result of query. Takes result of query()(ArrayRef) and convert into following HashRef. { cpu => [ { idle => 10, seqnum => 6500001, sys => 30, time => "1391743908", user => 60 }, { idle => 30, seqnum => 6490001, sys => 20, time => "1391743908", user => 50 } ] } create_continuous_query(q => Str, name => Str) :ArrayRef Create continuous query. $ix->create_continuous_query( q => "select mean(sys) as sys, mean(usr) as usr from cpu group by time(15m)", name => "cpu.15m", ); list_continuous_queries() :ArrayRef List continuous queries. drop_continuous_query(id => Str) :ArrayRef Delete continuous query that has specified id. You can get id of continuous query by list_continuous_queries(). switch_database(database => Str) :Bool Switch to another database. switch_user(username => Str, password => Str) :Bool Change your user-context. create_database(database => Str) :Bool Create database. Requires cluster-admin privileges. list_database() :ArrayRef[HashRef] List database. Requires cluster-admin privileges. [ { name => "databasename", replicationFactor => 1 }, ... ] delete_database(database => Str) :Bool Delete database. Requires cluster-admin privileges. list_series() :ArrayRef[HashRef] List series in current database create_database_user(name => Str, password => Str) :Bool Create a database user on current database. delete_database_user(name => Str) :Bool Delete a database user on current database. update_database_user(name => Str [,password => Str] [,admin => Bool]) :Bool Update a database user on current database. list_database_users() :ArrayRef List all database users on current database. show_database_user(name => Str) :HashRef Show a database user on current database. create_cluster_admin(name => Str, password => Str) :Bool Create a database user on current database. delete_cluster_admin(name => Str) :Bool Delete a database user on current database. update_cluster_admin(name => Str, password => Str) :Bool Update a database user on current database. list_cluster_admins() :ArrayRef List all database users on current database. show_cluster_admin(name => Str) :HashRef Show a database user on current database. status() :HashRef Returns status of previous request, as following hash: code => Int HTTP status code. message => Str HTTP status message. status_line => Str HTTP status line (code . " " . message). content => Str Response body. errstr() :Str Returns error message if previous query was failed. host() :Str Returns hostname of InfluxDB server. port() :Str Returns port number of InfluxDB server. username() :Str Returns current user name. database() :Str Returns current database name. ENVIRONMENT VARIABLES IX_DEBUG Print debug messages to STDERR. AUTHOR HIROSE Masaaki REPOSITORY https://github.com/hirose31/p5-InfluxDB git clone https://github.com/hirose31/p5-InfluxDB.git patches and collaborators are welcome. SEE ALSO http://influxdb.org COPYRIGHT Copyright HIROSE Masaaki LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.