Module: NewRelic::CollectionHelper

Included in:
Agent::ErrorCollector, Agent::TransactionSampleBuilder, NoticedError
Defined in:
lib/new_relic/collection_helper.rb

Constant Summary collapse

DEFAULT_TRUNCATION_SIZE =
256
DEFAULT_ARRAY_TRUNCATION_SIZE =
1024

Instance Method Summary collapse

Instance Method Details

#normalize_params(params) ⇒ Object

Transform parameter hash into a hash whose values are strictly strings



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/new_relic/collection_helper.rb', line 7

def normalize_params(params)
  case params
    when Symbol, FalseClass, TrueClass, nil
      params
    when Numeric
      truncate(params.to_s)
    when String
      truncate(params)
    when Hash
      new_params = {}
      params.each do | key, value |
        new_params[truncate(normalize_params(key),32)] = normalize_params(value)
      end
      new_params
    when Array
      params.first(DEFAULT_ARRAY_TRUNCATION_SIZE).map{|item| normalize_params(item)}
  else
    truncate(flatten(params))
  end
end

#strip_nr_from_backtrace(backtrace) ⇒ Object

Return an array of strings (backtrace), cleaned up for readability Return nil if there is no backtrace



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/new_relic/collection_helper.rb', line 31

def strip_nr_from_backtrace(backtrace)
  if backtrace
    # this is for 1.9.1, where strings no longer have Enumerable
    backtrace = backtrace.split("\n") if String === backtrace
    # strip newrelic from the trace
    backtrace = backtrace.reject {|line| line =~ /new_relic\/agent\// }
    # rename methods back to their original state
    # GJV - 4/6/10 - adding .to_s call since we were seeing line as a Fixnum in some cases
    backtrace = backtrace.collect {|line| line.to_s.gsub(/_without_(newrelic|trace)/, "")}
  end
  backtrace
end