Sha256: 6b9866b6c64ab69c33abc0bb5572364c8020294db77c9c21e796968c5bba5db8

Contents?: true

Size: 1000 Bytes

Versions: 1

Compression:

Stored size: 1000 Bytes

Contents

require "open-uri"
require "cgi"

class Monitr

	def initialize(account_id)
		@account_id = account_id
		@monitr_request_start = Time.now.to_f
	end

	def log(controller, params = {})
    env_fields = %W( HTTP_USER_AGENT REQUEST_PATH CONTROLLER_NAME PATH_INFO REMOTE_ADDR ACCOUNT_ID REQUEST_PROCESS_TIME REQUEST_URI)
    env_fields.each do |label|
      params[label] = controller.request.env[label]
    end

		if @monitr_request_start 
			params["REQUEST_PROCESS_TIME"] = Time.now.to_f - @monitr_request_start
		end

		params["CONTROLLER_NAME"] = controller.controller_name
		params["ACTION_NAME"] = controller.action_name
		params["ACCOUNT_ID"] = @account_id

    begin
	  	params = data_to_cgi(params)
	  	url = "http://monitr/cgi-bin/monitr?" + params
	  	fp = open(url)
	  	data = fp.read
	  	fp.close
    rescue
    end
	end

private

	def data_to_cgi(data)
		params = ""
		data.each do |label, value|
			params += "#{CGI.escape(label.to_s)}=#{CGI.escape(value.to_s)}&"
		end
		params
	end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
monitr-rails-1.2.1 lib/monitr-rails.rb