class Imprint::Tracer
Constants
- RAILS_REQUEST_ID
- TRACER_HEADER
- TRACER_KEY
- TRACER_TIMESTAMP
- TRACE_ID_DEFAULT
Public Class Methods
get_pid()
click to toggle source
# File lib/imprint/tracer.rb, line 30 def self.get_pid "#{$$}" end
get_trace_id()
click to toggle source
# File lib/imprint/tracer.rb, line 18 def self.get_trace_id if Thread.current.key?(TRACER_KEY) Thread.current[TRACER_KEY] else TRACE_ID_DEFAULT end end
get_trace_timestamp()
click to toggle source
# File lib/imprint/tracer.rb, line 26 def self.get_trace_timestamp Time.now.utc.strftime("%Y-%m-%dT%H:%M:%S.%6N") end
insert_trace_id_in_message(message, severity = nil)
click to toggle source
# File lib/imprint/tracer.rb, line 34 def self.insert_trace_id_in_message(message, severity = nil) if message && message.is_a?(String) && message.length > 1 && !message.include?('trace_id=') trace_id = get_trace_id if trace_id && trace_id != TRACE_ID_DEFAULT message.insert 0, "#{get_trace_timestamp} #{severity} " message.gsub!("\n"," process_pid=#{get_pid} trace_id=#{trace_id}\n") end end end
rand_trace_id()
click to toggle source
# File lib/imprint/tracer.rb, line 45 def self.rand_trace_id SecureRandom.uuid end
set_trace_id(id, rack_env = {})
click to toggle source
# File lib/imprint/tracer.rb, line 11 def self.set_trace_id(id, rack_env = {}) Thread.current[TRACER_TIMESTAMP] = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%S.%6N") Thread.current[TRACER_KEY] = id # setting to the rack_env, gives error tracking support in some systems rack_env[TRACER_KEY] = id end