NAME InfluxDB - Client library for InfluxDB SYNOPSIS use InfluxDB; my $ix = InfluxDB->new( host => '127.0.0.1', port => 8086, username => 'scott', password => 'tiger', database => 'test', ); $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 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, ...], ... ], } 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: 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. 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 git clone https://github.com/hirose31/p5-InfluxDB.git patches and collaborators are welcome. SEE ALSO 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.