Methods
Attributes
[R] | txn_id |
Public Class methods
[ show source ]
# File lib/phusion_passenger/analytics_logger.rb, line 41 41: def initialize(shared_data = nil, txn_id = nil) 42: if shared_data 43: @shared_data = shared_data 44: @txn_id = txn_id 45: shared_data.ref 46: end 47: end
Public Instance methods
[ show source ]
# File lib/phusion_passenger/analytics_logger.rb, line 61 61: def begin_measure(name, extra_info = nil) 62: if extra_info 63: extra_info_base64 = [extra_info].pack("m") 64: extra_info_base64.gsub!("\n", "") 65: extra_info_base64.strip! 66: else 67: extra_info_base64 = nil 68: end 69: times = NativeSupport.process_times 70: message "BEGIN: #{name} (#{current_timestamp.to_s(36)},#{times.utime.to_s(36)},#{times.stime.to_s(36)}) #{extra_info_base64}" 71: end
[ show source ]
# File lib/phusion_passenger/analytics_logger.rb, line 108 108: def close(flush_to_disk = false) 109: @shared_data.synchronize do 110: @shared_data.client.write("closeTransaction", @txn_id, 111: AnalyticsLogger.timestamp_string) 112: if flush_to_disk 113: @shared_data.client.write("flush") 114: result = @shared_data.client.read 115: if result != ["ok"] 116: raise "Invalid logging server response #{result.inspect} to the 'flush' command" 117: end 118: end 119: @shared_data.unref 120: @shared_data = nil 121: end if @shared_data 122: end
[ show source ]
# File lib/phusion_passenger/analytics_logger.rb, line 73 73: def end_measure(name, error_encountered = false) 74: times = NativeSupport.process_times 75: if error_encountered 76: message "FAIL: #{name} (#{current_timestamp.to_s(36)},#{times.utime.to_s(36)},#{times.stime.to_s(36)})" 77: else 78: message "END: #{name} (#{current_timestamp.to_s(36)},#{times.utime.to_s(36)},#{times.stime.to_s(36)})" 79: end 80: end
[ show source ]
# File lib/phusion_passenger/analytics_logger.rb, line 82 82: def measure(name, extra_info = nil) 83: begin_measure(name, extra_info) 84: begin 85: yield 86: rescue Exception 87: error = true 88: raise 89: ensure 90: end_measure(name, error) 91: end 92: end
[ show source ]
# File lib/phusion_passenger/analytics_logger.rb, line 94 94: def measured_time_points(name, begin_time, end_time, extra_info = nil) 95: if extra_info 96: extra_info_base64 = [extra_info].pack("m") 97: extra_info_base64.gsub!("\n", "") 98: extra_info_base64.strip! 99: else 100: extra_info_base64 = nil 101: end 102: begin_timestamp = begin_time.to_i * 1_000_000 + begin_time.usec 103: end_timestamp = end_time.to_i * 1_000_000 + end_time.usec 104: message "BEGIN: #{name} (#{begin_timestamp.to_s(36)}) #{extra_info_base64}" 105: message "END: #{name} (#{end_timestamp.to_s(36)})" 106: end
[ show source ]
# File lib/phusion_passenger/analytics_logger.rb, line 53 53: def message(text) 54: @shared_data.synchronize do 55: @shared_data.client.write("log", @txn_id, 56: AnalyticsLogger.timestamp_string) 57: @shared_data.client.write_scalar(text) 58: end if @shared_data 59: end
[ show source ]
# File lib/phusion_passenger/analytics_logger.rb, line 49 49: def null? 50: return !@shared_data 51: end