Module: LogjamAgent
- Extended by:
- RequestHandling
- Defined in:
- lib/logjam_agent.rb,
lib/logjam_agent.rb,
lib/logjam_agent/util.rb,
lib/logjam_agent/railtie.rb,
lib/logjam_agent/request.rb,
lib/logjam_agent/version.rb,
lib/logjam_agent/forwarders.rb,
lib/logjam_agent/middleware.rb,
lib/logjam_agent/rack/logger.rb,
lib/logjam_agent/zmq_forwarder.rb,
lib/logjam_agent/amqp_forwarder.rb,
lib/logjam_agent/syslog_like_formatter.rb,
lib/logjam_agent/buffered_logger.rb
Defined Under Namespace
Modules: Forwarders, Rack, RequestHandling, Util
Classes: AMQPForwarder, BufferedLogger, CallerTimeoutExceeded, ConsoleFormatter, ForwardingError, Middleware, NegativeWaitTime, Railtie, Request, SyslogLikeFormatter, ZMQForwarder
Constant Summary
collapse
- VERSION =
"0.13.1"
Class Method Summary
collapse
finish_request, request, request=, start_request
Class Method Details
.add_forwarder(type, *args) ⇒ Object
196
197
198
199
200
201
202
|
# File 'lib/logjam_agent.rb', line 196
def self.add_forwarder(type, *args)
case type
when :zmq then Forwarders.add(ZMQForwarder.new(*args))
when :amqp then Forwarders.add(AMQPForwarder.new(*args))
else raise ArgumentError.new("unkown logjam transport: '#{type}'")
end
end
|
.auto_detect_exception(exception_class) ⇒ Object
132
133
134
135
136
137
|
# File 'lib/logjam_agent.rb', line 132
def self.auto_detect_exception(exception_class)
if (class_name = exception_class.to_s) =~ /^[\w:]+$/
exception_classes << class_name unless exception_classes.include?(class_name)
end
end
|
.auto_detect_logged_exceptions ⇒ Object
150
151
152
153
154
155
156
157
158
159
160
|
# File 'lib/logjam_agent.rb', line 150
def self.auto_detect_logged_exceptions
return if @_exception_auto_detection_initialized
determine_loaded_exception_classes
Exception.class_eval <<-"EOS"
def self.inherited(subclass)
::LogjamAgent.auto_detect_exception(subclass)
::LogjamAgent.reset_exception_matcher
end
EOS
@_exception_auto_detection_initialized = true
end
|
.cookie_obfuscator ⇒ Object
102
103
104
|
# File 'lib/logjam_agent.rb', line 102
def self.cookie_obfuscator
@cookie_obfuscator ||= ActionDispatch::Http::ParameterFilter.new(obfuscated_cookies)
end
|
.determine_loaded_exception_classes ⇒ Object
143
144
145
146
147
148
|
# File 'lib/logjam_agent.rb', line 143
def self.determine_loaded_exception_classes
ObjectSpace.each_object(Class) do |klass|
auto_detect_exception(klass) if klass != Exception && klass.ancestors.include?(Exception)
end
reset_exception_matcher
end
|
.disable! ⇒ Object
80
81
82
|
# File 'lib/logjam_agent.rb', line 80
def self.disable!
self.disabled = true
end
|
.enable! ⇒ Object
84
85
86
|
# File 'lib/logjam_agent.rb', line 84
def self.enable!
self.disabled = false
end
|
.event(label, extra_fields = {}) ⇒ Object
186
187
188
189
190
191
192
193
194
|
# File 'lib/logjam_agent.rb', line 186
def self.event(label, = {})
fields = {
:label => label,
:started_at => Time.now.iso8601,
:host => hostname
}
fields.merge!()
forwarder.forward(encode_payload(fields), :routing_key => events_routing_key)
end
|
.get_hostname ⇒ Object
68
69
70
71
72
73
74
75
|
# File 'lib/logjam_agent.rb', line 68
def self.get_hostname
n = Socket.gethostname
if n.split('.').size > 1
n
else
Socket.gethostbyname(n).first rescue n
end
end
|
.ip_obfuscator(ip) ⇒ Object
95
96
97
|
# File 'lib/logjam_agent.rb', line 95
def self.ip_obfuscator(ip)
obfuscate_ips ? ip.to_s.sub(/\d+\z/, 'XXX') : ip
end
|
.log_to_log_device?(msg) ⇒ Boolean
126
127
128
129
130
|
# File 'lib/logjam_agent.rb', line 126
def self.log_to_log_device?(msg)
!(log_device_ignored_lines && msg =~ log_device_ignored_lines)
rescue
true
end
|
.reset_exception_matcher ⇒ Object
139
140
141
|
# File 'lib/logjam_agent.rb', line 139
def self.reset_exception_matcher
self.exception_matcher = Regexp.new(self.exception_classes.map{|e| Regexp.escape(e)}.join("|"))
end
|