module Fflux
Constants
- VERSION
Public Class Methods
host=(host)
click to toggle source
# File lib/fflux.rb, line 31 def host=(host) @@host = host end
port=(port)
click to toggle source
# File lib/fflux.rb, line 27 def port=(port) @@port = port end
setup() { |self| ... }
click to toggle source
# File lib/fflux.rb, line 23 def setup yield self end
write(measurement, values = {}, tags = {})
click to toggle source
# File lib/fflux.rb, line 11 def write(measurement, values = {}, tags = {}) Thread.new do socket = UDPSocket.new socket.send( payload(measurement, values, tags), 0, @@host, @@port ) end end
Private Class Methods
escape(value)
click to toggle source
# File lib/fflux.rb, line 66 def escape(value) value .to_s .gsub(",", "\,") .gsub(" ", "\ ") .gsub(/(.)"(.)/, '\1\"\2') end
fields(values)
click to toggle source
# File lib/fflux.rb, line 44 def fields(values) format(values, :format_value) end
format(tags, processor = :escape)
click to toggle source
# File lib/fflux.rb, line 74 def format(tags, processor = :escape) return unless tags.any? tags.map { |k,v| "#{escape(k)}=#{send(processor, v)}" }.join(",") end
format_value(value)
click to toggle source
# File lib/fflux.rb, line 48 def format_value(value) case value when String "\"#{value}\"" when Fixnum "#{value}i" else value.to_s end end
key(measurement, tags)
click to toggle source
# File lib/fflux.rb, line 59 def key(measurement, tags) [ escape(measurement), format(tags) ].compact.join(",") end
payload(measurement, values, tags)
click to toggle source
# File lib/fflux.rb, line 37 def payload(measurement, values, tags) [ key(measurement, tags), fields(values), ].compact.join(" ") + "\n" end