Sha256: 22628f683a1c08179630ccb558ed1ad17d14486698210a74ad546504edb23446
Contents?: true
Size: 1.47 KB
Versions: 2
Compression:
Stored size: 1.47 KB
Contents
require 'rubygems' require 'socket' require 'resourceful' require 'pp' require File.dirname(__FILE__) + '/collectd_server/packet' require File.dirname(__FILE__) + '/collectd_server/ssbe_authenticator' PREVIOUS_VALUES = {} module CollectdServer class Runner attr_accessor :port def initialize(port = 1981, services = 'http://auth.v6.localhost/services') @port = port @services = services end def run! @socket = UDPSocket.new @socket.bind(nil, port) @connection = Connection.new(@services) loop do data = @socket.recvfrom(65535) @connection.receive_data(data.first) end end end class Connection def initialize(service_uri) @http = Resourceful::HttpAccessor.new @http.add_authenticator(Resourceful::SSBEAuthenticator.new('admin', 'admin')) resp = @http.resource(service_uri).get(:accept => 'application/csv') bulk_datapoint_href = nil FasterCSV.parse(resp.body, :headers => true) do |row| if row['name'] == 'BulkCreateDatapoints' bulk_datapoint_href = row['resource_href'] end end @datapoint_resource = @http.resource(bulk_datapoint_href) end def receive_data(data) packet = Packet.new(data) dps = packet.to_datapoints csv = FasterCSV.generate do |csv| dps.each do |dp| csv << dp.to_a end end @datapoint_resource.post(csv, :content_type => 'text/csv') end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
absperf-collectd_server-0.1.0 | lib/collectd_server.rb |
absperf-collectd_server-0.1.1 | lib/collectd_server.rb |