module Pusher

Public Class Methods

activate(topic, endpoint) click to toggle source
# File lib/harvester/pusher.rb, line 10
def self.activate topic, endpoint
  listener = EZMQ::Subscriber.new :connect, port: 6060, topic: topic, decode: -> m { Oj.load m }
  listener.listen do |message, topic|
    puts write message
  end
end
use_or_create(db_name) click to toggle source
# File lib/harvester/pusher.rb, line 25
def self.use_or_create(db_name)
  dbs = @connection.get_database_list.map { |db| db["name"] }
  @connection.create_database db_name unless dbs.include? db_name
  @connection = InfluxDB::Client.new db_name, host: Settings.influx_host, 
                                            username: Settings.influx_user, 
                                            password: Settings.influx_pass
end
write(data) click to toggle source
# File lib/harvester/pusher.rb, line 17
def self.write data
  series = data.delete :series_name
  db = data.delete :database_name
  use_or_create db
  @connection.write_point(series, data)
  data.length
end