class Opentsdb::Client
ruby client for OpenTsdb HTTP API
Attributes
host[R]
port[R]
query_commads[RW]
query_options[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/opentsdb/client.rb, line 11 def initialize(options = {}) @host = options.delete(:host) || Opentsdb.host @port = options.delete(:port) || Opentsdb.port @query_options = options.merge(Opentsdb.options) @faraday = Opentsdb::Faraday.new(query_url, @query_options) @query_commads = parse_queries end
Public Instance Methods
parse_queries()
click to toggle source
# File lib/opentsdb/client.rb, line 33 def parse_queries [].tap do |qs| query_options[:q].split(';').each do |q| query = QueryParser.parse(q) query.interval = query_options[:interval] query.start_time = query_options[:begin].to_i query.end_time = query_options[:end].to_i qs << query end end end
query()
click to toggle source
# File lib/opentsdb/client.rb, line 19 def query [].tap do |results| query_commads.each do |query_commad| start = Time.now Opentsdb.logger.debug "[OpenTSDB] query: #{query_commad.to_json}" res = post query_commad.to_json Opentsdb.logger.debug "[OpenTSDB] result: #{res.body}" Opentsdb.logger.info "[OpenTSDB] consume: #{Time.now - start} s" status = res.status.to_i == 200 ? 'ok' : 'error' results << { status: status, condition: query_commad, result: res.body } end end end
Private Instance Methods
query_url()
click to toggle source
# File lib/opentsdb/client.rb, line 47 def query_url "http://#{host}:#{port}/api/query" end