class OpenTsdb::Server

Attributes

port[RW]
server_url[RW]

Public Class Methods

new(server_url,port = 4242) click to toggle source
# File lib/psc/opentsdb.rb, line 10
def initialize(server_url,port = 4242)
  @server_url = server_url
  @port = port
  self.class.base_uri @server_url + ":" + @port.to_s
end

Public Instance Methods

create_metric(metric) click to toggle source
# File lib/psc/opentsdb.rb, line 32
def create_metric(metric)
  data = Hash.new
  data['metric'] = [metric]
  response = self.class.post('/api/uid/assign',body: data.to_json)
  puts '***'
  puts response.parsed_response.to_s
  if response.code == 400
    raise MetricCreationError , metric + " could not be created. " + response.parsed_response['metric_errors'][metric].to_s
    return
  elsif response.code != 200
    raise MetricCreationError , metric + " could not be created.  Unknown Error"
    return
  end
  response
end
put(data_points) click to toggle source
# File lib/psc/opentsdb.rb, line 48
def put(data_points)
  # data_points = array of data point objects
  data = Array.new
  data_points.each do |dp|
    data.push(dp.to_hash)
  end
  response = self.class.post('/api/put', body: data.to_json)

end
suggest(type,query=nil,max=1000) click to toggle source
# File lib/psc/opentsdb.rb, line 16
def suggest(type,query=nil,max=1000)

  # type must be one of metrics, tagk, tagv
  # query matches entire strings to front of stored data
  # max is max results returned

  data = Hash.new
  data['type'] = type
  unless query.nil?
    data['q'] = query
  end
  data['max'] = max
  response = self.class.post('/api/suggest',body: data.to_json)
  return response.parsed_response
end