Sha256: bf383347d94a61367a0601d3098e11c1e6383c14fc1ed96c38f3d12a9153a9b9
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
module GraphiteRb # # @example: # # in initialize, perhaps # self.sender = GraphiteSender # # # ... somewhere else ... # sender.send( ['webserver.pages', pages_this_hour], ['webserver.errors', errors_this_hour] ) # class GraphiteSender attr_accessor :socket def initialize open! end def open! begin warn "Connecting to server #{Settings.carbon_server} port #{Settings.carbon_port}" self.socket = TCPSocket.new(Settings.carbon_server, Settings.carbon_port) rescue StandardError => e Log.warn "Couldn't connect to server #{Settings.carbon_server} port #{Settings.carbon_port}: #{e.class} #{e}" raise e end end def safely &block begin block.call rescue StandardError => e Log.warn "Sleeping #{Settings.on_error_delay}: #{e.class} #{e}" sleep Settings.on_error_delay return nil end end def timestamp Time.now.to_i end def send *metrics now = timestamp message = metrics.map{|metric, val| [metric, val, now].join(" ") }.join("\n") safely do socket.puts(message) Log.debug "Sent:\n#{message}\n#{'-'*80}" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
graphiterb-0.0.1 | lib/graphiterb/graphite_sender.rb |