Module: Raygun::Apm::Blacklist

Defined in:
lib/raygun/apm/blacklist.rb,
lib/raygun/apm/blacklist/parser.rb,
lib/raygun/apm/blacklist/translator.rb

Defined Under Namespace

Classes: Parser, Translator

Constant Summary collapse

PROFILER =
%w{
  Raygun
  Raygun::Apm::
}
DEFAULT_RUBY =

From ruby-doc.org/core-2.6.3/ , to automate

%w{
  #<refinement:
  #<Module:
  #<Class:
  #<#<Class:
  ARGF#
  ArgumentError#
  Array#
  Base64#
  BasicObject#
  Binding#
  Class#
  ClosedQueueError#
  Comparable#
  Complex#
  ConditionVariable#
  Continuation#
  Data#
  Dir#
  ENV#
  EOFError#
  Encoding#
  Encoding::
  EncodingError#
  Enumerable#
  Enumerator#
  Enumerator::
  Errno#
  Exception#
  FalseClass#
  Fiber#
  FiberError#
  File#
  File::
  FileTest#
  Float#
  FloatDomainError#
  FrozenError#
  GC#
  GC::Profiler#
  Hash#
  IO#
  IO::
  IOError#
  IndexError#
  Integer#
  Interrupt#
  JSON#
  Kernel#
  KeyError#
  LoadError#
  LocalJumpError#
  Marshal#
  MatchData#
  Math#
  Math::
  Method#
  Module#
  Mutex#
  NameError#
  NilClass#
  NoMemoryError#
  NoMethodError#
  NotImplementedError#
  Numeric#
  Object#
  ObjectSpace#
  ObjectSpace::
  Proc#
  Process#
  Process::
  Psych#
  Queue#
  Random#
  Random::
  Range#
  RangeError#
  Rational#
  Regexp#
  RegexpError#
  RubyVM#
  RubyVM::
  RuntimeError#
  ScriptError#
  SecurityError#
  Set#
  SimpleDelegator#
  Signal#
  SignalException#
  SizedQueue#
  Socket#
  StandardError#
  StopIteration#
  String#
  Struct#
  Symbol#
  SyntaxError#
  SystemCallError#
  SystemExit#
  SystemStackError#
  Thread#
  Thread::
  ThreadError#
  ThreadGroup#
  Timeout
  Time#
  TracePoint#
  TrueClass#
  TypeError#
  UnboundMethod#
  UncaughtThrowError#
  UnicodeNormalize#
  Warning#
  ZeroDivisionError#
  IPAddr#
  Net::
  OpenSSL#
  OpenSSL::
  BasicSocket#
  Forwardable#
  Gem#
  FFI#
  Addrinfo#
  Open3#
  Shellwords#
  WeakRef#
  RbConfig#
  Singleton#
  OpenStruct#
  Bundler#
  Delegator#
  PrettyPrint#
  PP#
  PP::
  PrettyPrint#
  PrettyPrint::
  Minitest
  Psych
  Mutex_m#
  ERB#
  ERB::
  Gem#
  Gem::
  FileUtils#
  FileUtils::
  TempFile#
  TempFile::
}
INTERNALS =
%w{
  +Object#sleep
  +Object#exec
  +Object#fork
  +Object#system
  +Object#spawn
  +Continuation#callcc
  +IO#syscall
  +IO#open
  +IO#puts
  +IO#gets
  +IO#readline
  +IO#readlines
  +Random#srand
  +Random#rand
  +Signal#trap
}
HTTP_OUT =
%w{
  #Faraday
  URI
  MonitorMixin
  Faraday
  +Faraday::Connection#get
  +Faraday::Connection#head
  +Faraday::Connection#delete
  +Faraday::Connection#trace
  +Faraday::Connection#post
  +Faraday::Connection#put
  +Faraday::Connection#patch
  #multipart-post
  Multipartable
  SecureRandom
  Parts
  CompositeReadIO
  +Multipartable#initialize
  #rest-client
  RestClient
  Netrc
  HTTP::CookieJar
  DomainName
  HTTP::Accept
  +RestClient.get
  +RestClient.head
  +RestClient.delete
  +RestClient.trace
  +RestClient.post
  +RestClient.put
  +RestClient.patch
  #excon
  Excon
  +Excon.get
  +Excon.head
  +Excon.delete
  +Excon.trace
  +Excon.post
  +Excon.put
  +Excon.patch
  #HTTParty
  HTTParty
  +HTTParty.get
  +HTTParty.head
  +HTTParty.delete
  +HTTParty.trace
  +HTTParty.post
  +HTTParty.put
  +HTTParty.patch
  #httpclient
  HTTPClient
  HTTP::Message
  +HTTPClient#get
  +HTTPClient#head
  +HTTPClient#delete
  +HTTPClient#trace
  +HTTPClient#post
  +HTTPClient#put
  +HTTPClient#patch
  #net-http
  +Net::HTTP.get_response
  +Net::HTTP.get
  +Net::HTTP.head
  +Net::HTTP.delete
  +Net::HTTP.trace
  +Net::HTTP.post
  +Net::HTTP.put
  +Net::HTTP.patch
  +Net::HTTP.post_form
}
QUERIES =
%w{
  #redis
  Redis
  +Redis#auth
  +Redis#select
  +Redis#ping
  +Redis#echo
  +Redis#bgrewriteaof
  +Redis#bgsave
  +Redis#config
  +Redis#dbsize
  +Redis#debug
  +Redis#flushall
  +Redis#flushdb
  +Redis#info
  +Redis#lastsave
  +Redis#monitor
  +Redis#save
  +Redis#shutdown
  +Redis#slave
  +Redis#slowlog
  +Redis#sync
  +Redis#time
  +Redis#persist
  +Redis#expire
  +Redis#expireat
  +Redis#ttl
  +Redis#pexpire
  +Redis#pexpireat
  +Redis#pttl
  +Redis#dump
  +Redis#restore
  +Redis#migrate
  +Redis#del
  +Redis#unlink
  +Redis#exists
  +Redis#keys
  +Redis#move
  +Redis#object
  +Redis#randomkey
  +Redis#rename
  +Redis#renamenx
  +Redis#sort
  +Redis#type
  +Redis#decr
  +Redis#decrby
  +Redis#incr
  +Redis#incrby
  +Redis#incrbyfloat
  +Redis#set
  +Redis#multi
  +Redis#client
  +Redis#set
  +Redis#setex
  +Redis#psetex
  +Redis#setnx
  +Redis#mset
  +Redis#mapped_mset
  +Redis#msetnx
  +Redis#mapped_msetnx
  +Redis#get
  +Redis#mget
  +Redis#mapped_mget
  +Redis#setrange
  +Redis#getrange
  +Redis#setbit
  +Redis#getbit
  +Redis#append
  +Redis#bitcount
  +Redis#bitop
  +Redis#bitpos
  +Redis#getset
  +Redis#strlen
  +Redis#llen
  +Redis#lpush
  +Redis#lpushx
  +Redis#rpush
  +Redis#rpushx
  +Redis#lpop
  +Redis#rpop
  +Redis#rpoplpush
  +Redis#blpop
  +Redis#brpop
  +Redis#brpoplpush
  +Redis#lindex
  +Redis#linsert
  +Redis#lrange
  +Redis#lrem
  +Redis#lset
  +Redis#ltrim
  +Redis#scard
  +Redis#sadd
  +Redis#srem
  +Redis#spop
  +Redis#srandmember
  +Redis#smove
  +Redis#sismember
  +Redis#smembers
  +Redis#sdiff
  +Redis#sdiffstore
  +Redis#sinter
  +Redis#sinterstore
  +Redis#sunion
  +Redis#sunionstore
  +Redis#zcard
  +Redis#zadd
  +Redis#zincrby
  +Redis#zrem
  +Redis#zpopmax
  +Redis#zpopmin
  +Redis#bzpopmax
  +Redis#bzpopmin
  +Redis#zscore
  +Redis#zrange
  +Redis#zrevrange
  +Redis#zrank
  +Redis#zrevrank
  +Redis#zremrangebyrank
  +Redis#zlexcount
  +Redis#zrangebylex
  +Redis#zrevrangebylex
  +Redis#zrangebyscore
  +Redis#zrevrangebyscore
  +Redis#zremrangebyscore
  +Redis#zcount
  +Redis#zinterstore
  +Redis#zunionstore
  +Redis#hlen
  +Redis#hset
  +Redis#hsetnx
  +Redis#hmset
  +Redis#mapped_hmset
  +Redis#hget
  +Redis#hmget
  +Redis#mapped_hmget
  +Redis#hdel
  +Redis#hexists
  +Redis#hincrby
  +Redis#hincrbyfloat
  +Redis#hkeys
  +Redis#hvals
  +Redis#hgetall
  +Redis#publish
  +Redis#subscribe
  +Redis#subscribe_with_timeout
  +Redis#unsubscribe
  +Redis#psubscribe
  +Redis#psubscribe_with_timeout
  +Redis#punsubscribe
  +Redis#pubsub
  +Redis#watch
  +Redis#unwatch
  +Redis#pipelined
  +Redis#multi
  +Redis#exec
  +Redis#discard
  +Redis#script
  +Redis#eval
  +Redis#evalsha
  +Redis#scan
  +Redis#hscan
  +Redis#zscan
  +Redis#sscan
  +Redis#pfadd
  +Redis#pfcount
  +Redis#pfmerge
  +Redis#geoadd
  +Redis#geohash
  +Redis#georadiusbymember
  +Redis#geopos
  +Redis#geodist
  +Redis#xinfo
  +Redis#xadd
  +Redis#xtrim
  +Redis#xdel
  +Redis#xrange
  +Redis#xrevrange
  +Redis#xlen
  +Redis#xread
  +Redis#xgroup
  +Redis#xreadgroup
  +Redis#xack
  +Redis#xclaim
  +Redis#xpending
  +Redis#sentinel
  +Redis#cluster
  +Redis#asking
}
RAYGUN4RUBY =
%w{
  Raygun::Breadcrumbs
  Raygun::Configuration
  Raygun.config
  Raygun.log
  Raygun.should_report?
  Raygun::Client
  +Raygun.track_exception
}

Class Method Summary collapse

Class Method Details

.extend_with(list) ⇒ Object



447
448
449
# File 'lib/raygun/apm/blacklist.rb', line 447

def self.extend_with(list)
  self.extended_blacklist << list
end

.extended_blacklistObject



451
452
453
# File 'lib/raygun/apm/blacklist.rb', line 451

def self.extended_blacklist
  @@extended_blacklist ||= []
end

.resolve_entriesObject



455
456
457
# File 'lib/raygun/apm/blacklist.rb', line 455

def self.resolve_entries
  DEFAULT_RUBY + PROFILER + INTERNALS + HTTP_OUT + QUERIES + RAYGUN4RUBY + self.extended_blacklist.flatten
end