class RequestLogAnalyzer::Filter::Anonymize

Filter to anonymize parsed values Options

Public Instance Methods

anonymize_url(value) click to toggle source
   # File lib/request_log_analyzer/filter/anonymize.rb
12 def anonymize_url(value)
13   value.sub(/^https?\:\/\/[A-Za-z0-9\.-]+\//, 'http://example.com/')
14 end
filter(request) click to toggle source
   # File lib/request_log_analyzer/filter/anonymize.rb
20 def filter(request)
21   # TODO: request.attributes is bad practice
22   request.attributes.each do |key, value|
23     if key == :ip
24       request.attributes[key] = generate_random_ip
25     elsif key == :url
26       request.attributes[key] = anonymize_url(value)
27     elsif [:duration, :view, :db, :type, :after_filters_time, :before_filters_time,
28            :action_time].include?(key)
29       request.attributes[key] = fuzz(value)
30     end
31   end
32 
33   request
34 end
fuzz(value) click to toggle source
   # File lib/request_log_analyzer/filter/anonymize.rb
16 def fuzz(value)
17   value * ((75 + rand(50)) / 100.0)
18 end
generate_random_ip() click to toggle source
   # File lib/request_log_analyzer/filter/anonymize.rb
 8 def generate_random_ip
 9   "#{rand(256)}.#{rand(256)}.#{rand(256)}.#{rand(256)}"
10 end