alexb-raygun-apm 1.0.57-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.rdoc +117 -0
- data/bin/console +14 -0
- data/bin/diagnostics +7 -0
- data/bin/setup +8 -0
- data/ext/raygun/extconf.rb +49 -0
- data/lib/raygun/2.5/raygun_ext.so +0 -0
- data/lib/raygun/2.6/raygun_ext.so +0 -0
- data/lib/raygun/2.7/raygun_ext.so +0 -0
- data/lib/raygun/alexb-raygun-apm.rb +25 -0
- data/lib/raygun/apm/blacklist.rb +460 -0
- data/lib/raygun/apm/blacklist/parser.rb +47 -0
- data/lib/raygun/apm/blacklist/translator.rb +73 -0
- data/lib/raygun/apm/config.rb +88 -0
- data/lib/raygun/apm/diagnostics.rb +52 -0
- data/lib/raygun/apm/event.rb +39 -0
- data/lib/raygun/apm/hooks/excon.rb +36 -0
- data/lib/raygun/apm/hooks/httpclient.rb +36 -0
- data/lib/raygun/apm/hooks/internals.rb +74 -0
- data/lib/raygun/apm/hooks/net_http.rb +44 -0
- data/lib/raygun/apm/hooks/redis.rb +46 -0
- data/lib/raygun/apm/tracer.rb +85 -0
- data/lib/raygun/apm/version.rb +6 -0
- data/raygun-apm.gemspec +39 -0
- metadata +253 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ec84a542eadb55adcc254442078e77bf577ab0e37c032c185fad26907b26e734
|
4
|
+
data.tar.gz: 3c664031cb341e4fc9e953b9d7fdc914534591d974bed614ea3f2982f011f483
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4783c4cc34df23541e05a112190620e40b8c3fd16d27cccd4090e6167788b637e35ad3e5d0e6a7672deece6932a4a06e33fd179b1f18d206703eda68aa89cc63
|
7
|
+
data.tar.gz: 6caee69b3b7cdc250160a5df911f5ebc336bd8a7adebbf5de75988131c629eefb0ae1a3fc73ce3b61f8265ea7deb3f8c884eab1d9085cffae0b8f4ce37f0de6f
|
data/README.rdoc
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
= Raygun Application Performance Monitoring
|
2
|
+
|
3
|
+
Ruby Profiler for {Raygun Application Performance Monitoring}[https://raygun.com/documentation/language-guides/ruby/apm/installation/].
|
4
|
+
|
5
|
+
Distributed as a precompiled native gem.
|
6
|
+
|
7
|
+
== Supported platforms
|
8
|
+
|
9
|
+
* x86-mingw32
|
10
|
+
* x64-mingw32
|
11
|
+
* x86-linux
|
12
|
+
* x86_64-linux
|
13
|
+
* universal-darwin
|
14
|
+
|
15
|
+
{Contact us}[https://raygun.com/about/contact] to support other platforms.
|
16
|
+
|
17
|
+
== Supported Ruby versions
|
18
|
+
|
19
|
+
The profiler only supports CRuby, also known as Matz's Ruby Interpreter (MRI).
|
20
|
+
|
21
|
+
* 2.5.x
|
22
|
+
* 2.6.x
|
23
|
+
* 2.7.x
|
24
|
+
|
25
|
+
{Contact us}[https://raygun.com/about/contact] to support other Ruby versions.
|
26
|
+
|
27
|
+
== Agent Setup
|
28
|
+
|
29
|
+
The Profiler needs to be able to access the Raygun Agent over UDP.
|
30
|
+
|
31
|
+
=== Dockerized Agent
|
32
|
+
|
33
|
+
The {Dockerized Agent}[https://raygun.com/documentation/product-guides/apm/agent/installation] is supported on all Ruby profiler platforms. We recommend
|
34
|
+
this deployment model if your production infrastructure already depends on Docker.
|
35
|
+
|
36
|
+
Also a great way to explore on your Mac.
|
37
|
+
|
38
|
+
The <code>RAYGUN_AGENT_TOKEN</code> needs to be supplied as an argument and is available under "Application Settings" within the {Raygun Application Performance Monitoring}[https://raygun.com/platform/apm] UI
|
39
|
+
|
40
|
+
To launch Raygun Agent using docker
|
41
|
+
docker pull raygunowner/raygun-apm
|
42
|
+
docker run -v raygun-agent:/usr/share/Raygun -e "RAYGUN_AGENT_TOKEN=<token>" -p 2790:2790 -p 2788:2788 -p 2799:2799/udp -it raygunowner/raygun-apm:latest
|
43
|
+
|
44
|
+
=== Linux Agent
|
45
|
+
|
46
|
+
The Linux version can be installed either using {systemd}[https://raygun.com/documentation/product-guides/apm/agent/installation/#installing-on-linux-using-systemd] or via {terminal}[https://raygun.com/documentation/product-guides/apm/agent/installation/#installing-on-linux-using-terminal]
|
47
|
+
|
48
|
+
=== Windows Agent
|
49
|
+
|
50
|
+
On windows the agent can be installed either via {MSI installer}[https://raygun.com/documentation/product-guides/apm/agent/installation/#installing-on-linux-using-terminal] or on {.NET core}[https://raygun.com/documentation/product-guides/apm/agent/installation/#installing-on-windows-net-core]
|
51
|
+
|
52
|
+
== Ruby on Rails
|
53
|
+
|
54
|
+
For Rails support see {documentation}[https://www.rubydoc.info/gems/raygun-apm-rails/0.1.0] of the railgun-apm-rails gem.
|
55
|
+
|
56
|
+
== Profiler Setup
|
57
|
+
|
58
|
+
Include the gem in your Gemfile
|
59
|
+
|
60
|
+
gem 'raygun-apm'
|
61
|
+
|
62
|
+
Run <code>bundle</code> to install the gem.
|
63
|
+
|
64
|
+
Alternatively install using rubygems <code>gem install raygun-apm</code>.
|
65
|
+
|
66
|
+
=== Profiler configration
|
67
|
+
|
68
|
+
==== Multiple applications, one Agent
|
69
|
+
|
70
|
+
Set the `PROTON_API_KEY` environment variable to your API key, which is available under "Application Settings" within the {Raygun Application Performance Monitoring}[https://raygun.com/platform/apm] UI.
|
71
|
+
|
72
|
+
=== Standalone ruby script / custom framework
|
73
|
+
|
74
|
+
For standalone scripts, context start-end needs to be marked specifically and optionally extended events can be called.
|
75
|
+
|
76
|
+
#!/usr/bin/env ruby
|
77
|
+
require 'raygun/apm'
|
78
|
+
|
79
|
+
class Hello
|
80
|
+
def rdoc
|
81
|
+
sleep 0.5
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
tracer = Raygun::Apm::Tracer.new
|
86
|
+
tracer.udp_sink!
|
87
|
+
tracer.start_trace
|
88
|
+
Hello.new.rdoc
|
89
|
+
tracer.end_trace
|
90
|
+
tracer.process_ended
|
91
|
+
|
92
|
+
Extended events can be sent where appropiate
|
93
|
+
|
94
|
+
<code>HTTP incoming event</code>
|
95
|
+
|
96
|
+
event = Raygun::Apm::Event::HttpIn.new
|
97
|
+
event[:pid] = Process.pid
|
98
|
+
event[:tid] = 0
|
99
|
+
event[:timestamp] = tracer.now
|
100
|
+
event[:url] = 'https://google.com/'
|
101
|
+
event[:verb] = 'GET'
|
102
|
+
event[:status] = 200
|
103
|
+
event[:duration] = 1000
|
104
|
+
tracer.emit(event)
|
105
|
+
|
106
|
+
<code>SQL query</code>
|
107
|
+
|
108
|
+
event = Raygun::Apm::Event::Sql.new
|
109
|
+
event[:pid] = Process.pid
|
110
|
+
event[:tid] = 0
|
111
|
+
event[:timestamp] = tracer.now
|
112
|
+
event[:provider] = 'postgres'
|
113
|
+
event[:host] = 'localhost'
|
114
|
+
event[:database] = 'rails'
|
115
|
+
event[:query] = 'SELECT * from FOO;'
|
116
|
+
event[:duration] = 1000
|
117
|
+
tracer.emit(event)
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "raygun/apm"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/diagnostics
ADDED
data/bin/setup
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'mkmf'
|
4
|
+
require 'debase/ruby_core_source'
|
5
|
+
|
6
|
+
headers = proc do
|
7
|
+
have_header('ruby.h') &&
|
8
|
+
have_header('ruby/debug.h') &&
|
9
|
+
have_header("vm_core.h")
|
10
|
+
end
|
11
|
+
|
12
|
+
dir_config('raygun')
|
13
|
+
|
14
|
+
RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC']
|
15
|
+
|
16
|
+
append_cflags '-pedantic'
|
17
|
+
append_cflags '-Wall'
|
18
|
+
append_cflags '-Werror=switch'
|
19
|
+
append_cflags '-std=c99'
|
20
|
+
if ENV['DEBUG']
|
21
|
+
have_library 'ssp'
|
22
|
+
have_func '__stack_chk_guard'
|
23
|
+
have_func '__stack_chk_fail'
|
24
|
+
append_cflags '-ggdb3'
|
25
|
+
# Needed reduced -On levels for SSP to do its job.
|
26
|
+
# Used to be -O0 but switched to -Og since -O0 disables
|
27
|
+
# some optimizations that debug tools need.
|
28
|
+
# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
|
29
|
+
append_cflags '-Og'
|
30
|
+
append_cflags '-fstack-protector-all'
|
31
|
+
append_cflags '-DRB_RG_DEBUG'
|
32
|
+
else
|
33
|
+
append_cflags '-O3'
|
34
|
+
end
|
35
|
+
|
36
|
+
if ENV['DEBUG_SHADOW_STACK']
|
37
|
+
append_cflags '-DRB_RG_DEBUG_SHADOW_STACK'
|
38
|
+
end
|
39
|
+
|
40
|
+
unless create_header
|
41
|
+
STDERR.print("extconf.h creation failed\n")
|
42
|
+
exit(1)
|
43
|
+
end
|
44
|
+
|
45
|
+
unless Debase::RubyCoreSource.create_makefile_with_core(headers, 'raygun_ext')
|
46
|
+
STDERR.print("Makefile creation failed\n")
|
47
|
+
STDERR.print("One or more ruby headers not found\n")
|
48
|
+
exit(1)
|
49
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "raygun/apm/version"
|
2
|
+
|
3
|
+
begin
|
4
|
+
# Attempt to load a precompiled shared object (released gem)
|
5
|
+
RUBY_VERSION =~ /(\d+\.\d+)/
|
6
|
+
require "raygun/#{$1}/raygun_ext"
|
7
|
+
rescue LoadError
|
8
|
+
# Attempt to load the development specific extension (non-released gem, local dev)
|
9
|
+
require "raygun/raygun_ext"
|
10
|
+
end
|
11
|
+
|
12
|
+
require "raygun/apm/config"
|
13
|
+
require "raygun/apm/diagnostics"
|
14
|
+
require "raygun/apm/blacklist/parser"
|
15
|
+
require "raygun/apm/blacklist/translator"
|
16
|
+
require "raygun/apm/tracer"
|
17
|
+
require "raygun/apm/event"
|
18
|
+
require "raygun/apm/hooks/internals"
|
19
|
+
require "raygun/apm/hooks/net_http"
|
20
|
+
# conditionally required - may not be bundled
|
21
|
+
begin
|
22
|
+
require "raygun/apm/hooks/httpclient"
|
23
|
+
require "raygun/apm/hooks/excon"
|
24
|
+
rescue LoadError
|
25
|
+
end
|
@@ -0,0 +1,460 @@
|
|
1
|
+
module Raygun
|
2
|
+
module Apm
|
3
|
+
module Blacklist
|
4
|
+
PROFILER = %w{
|
5
|
+
Raygun
|
6
|
+
Raygun::Apm::
|
7
|
+
}
|
8
|
+
|
9
|
+
# From https://ruby-doc.org/core-2.6.3/ , to automate
|
10
|
+
DEFAULT_RUBY = %w{
|
11
|
+
#<refinement:
|
12
|
+
#<Module:
|
13
|
+
#<Class:
|
14
|
+
#<#<Class:
|
15
|
+
ARGF#
|
16
|
+
ArgumentError#
|
17
|
+
Array#
|
18
|
+
Base64#
|
19
|
+
BasicObject#
|
20
|
+
Binding#
|
21
|
+
Class#
|
22
|
+
ClosedQueueError#
|
23
|
+
Comparable#
|
24
|
+
Complex#
|
25
|
+
ConditionVariable#
|
26
|
+
Continuation#
|
27
|
+
Data#
|
28
|
+
Dir#
|
29
|
+
ENV#
|
30
|
+
EOFError#
|
31
|
+
Encoding#
|
32
|
+
Encoding::
|
33
|
+
EncodingError#
|
34
|
+
Enumerable#
|
35
|
+
Enumerator#
|
36
|
+
Enumerator::
|
37
|
+
Errno#
|
38
|
+
Exception#
|
39
|
+
FalseClass#
|
40
|
+
Fiber#
|
41
|
+
FiberError#
|
42
|
+
File#
|
43
|
+
File::
|
44
|
+
FileTest#
|
45
|
+
Float#
|
46
|
+
FloatDomainError#
|
47
|
+
FrozenError#
|
48
|
+
GC#
|
49
|
+
GC::Profiler#
|
50
|
+
Hash#
|
51
|
+
IO#
|
52
|
+
IO::
|
53
|
+
IOError#
|
54
|
+
IndexError#
|
55
|
+
Integer#
|
56
|
+
Interrupt#
|
57
|
+
JSON#
|
58
|
+
Kernel#
|
59
|
+
KeyError#
|
60
|
+
LoadError#
|
61
|
+
LocalJumpError#
|
62
|
+
Marshal#
|
63
|
+
MatchData#
|
64
|
+
Math#
|
65
|
+
Math::
|
66
|
+
Method#
|
67
|
+
Module#
|
68
|
+
Mutex#
|
69
|
+
NameError#
|
70
|
+
NilClass#
|
71
|
+
NoMemoryError#
|
72
|
+
NoMethodError#
|
73
|
+
NotImplementedError#
|
74
|
+
Numeric#
|
75
|
+
Object#
|
76
|
+
ObjectSpace#
|
77
|
+
ObjectSpace::
|
78
|
+
Proc#
|
79
|
+
Process#
|
80
|
+
Process::
|
81
|
+
Psych#
|
82
|
+
Queue#
|
83
|
+
Random#
|
84
|
+
Random::
|
85
|
+
Range#
|
86
|
+
RangeError#
|
87
|
+
Rational#
|
88
|
+
Regexp#
|
89
|
+
RegexpError#
|
90
|
+
RubyVM#
|
91
|
+
RubyVM::
|
92
|
+
RuntimeError#
|
93
|
+
ScriptError#
|
94
|
+
SecurityError#
|
95
|
+
Set#
|
96
|
+
SimpleDelegator#
|
97
|
+
Signal#
|
98
|
+
SignalException#
|
99
|
+
SizedQueue#
|
100
|
+
Socket#
|
101
|
+
StandardError#
|
102
|
+
StopIteration#
|
103
|
+
String#
|
104
|
+
Struct#
|
105
|
+
Symbol#
|
106
|
+
SyntaxError#
|
107
|
+
SystemCallError#
|
108
|
+
SystemExit#
|
109
|
+
SystemStackError#
|
110
|
+
Thread#
|
111
|
+
Thread::
|
112
|
+
ThreadError#
|
113
|
+
ThreadGroup#
|
114
|
+
Timeout
|
115
|
+
Time#
|
116
|
+
TracePoint#
|
117
|
+
TrueClass#
|
118
|
+
TypeError#
|
119
|
+
UnboundMethod#
|
120
|
+
UncaughtThrowError#
|
121
|
+
UnicodeNormalize#
|
122
|
+
Warning#
|
123
|
+
ZeroDivisionError#
|
124
|
+
IPAddr#
|
125
|
+
Net::
|
126
|
+
OpenSSL#
|
127
|
+
OpenSSL::
|
128
|
+
BasicSocket#
|
129
|
+
Forwardable#
|
130
|
+
Gem#
|
131
|
+
FFI#
|
132
|
+
Addrinfo#
|
133
|
+
Open3#
|
134
|
+
Shellwords#
|
135
|
+
WeakRef#
|
136
|
+
RbConfig#
|
137
|
+
Singleton#
|
138
|
+
OpenStruct#
|
139
|
+
Bundler#
|
140
|
+
Delegator#
|
141
|
+
PrettyPrint#
|
142
|
+
PP#
|
143
|
+
PP::
|
144
|
+
PrettyPrint#
|
145
|
+
PrettyPrint::
|
146
|
+
Minitest
|
147
|
+
Psych
|
148
|
+
Mutex_m#
|
149
|
+
ERB#
|
150
|
+
ERB::
|
151
|
+
Gem#
|
152
|
+
Gem::
|
153
|
+
FileUtils#
|
154
|
+
FileUtils::
|
155
|
+
TempFile#
|
156
|
+
TempFile::
|
157
|
+
}
|
158
|
+
|
159
|
+
INTERNALS = %w{
|
160
|
+
+Object#sleep
|
161
|
+
+Object#exec
|
162
|
+
+Object#fork
|
163
|
+
+Object#system
|
164
|
+
+Object#spawn
|
165
|
+
+Continuation#callcc
|
166
|
+
+IO#syscall
|
167
|
+
+IO#open
|
168
|
+
+IO#puts
|
169
|
+
+IO#gets
|
170
|
+
+IO#readline
|
171
|
+
+IO#readlines
|
172
|
+
+Random#srand
|
173
|
+
+Random#rand
|
174
|
+
+Signal#trap
|
175
|
+
}
|
176
|
+
|
177
|
+
HTTP_OUT = %w{
|
178
|
+
#Faraday
|
179
|
+
URI
|
180
|
+
MonitorMixin
|
181
|
+
Faraday
|
182
|
+
+Faraday::Connection#get
|
183
|
+
+Faraday::Connection#head
|
184
|
+
+Faraday::Connection#delete
|
185
|
+
+Faraday::Connection#trace
|
186
|
+
+Faraday::Connection#post
|
187
|
+
+Faraday::Connection#put
|
188
|
+
+Faraday::Connection#patch
|
189
|
+
#multipart-post
|
190
|
+
Multipartable
|
191
|
+
SecureRandom
|
192
|
+
Parts
|
193
|
+
CompositeReadIO
|
194
|
+
+Multipartable#initialize
|
195
|
+
#rest-client
|
196
|
+
RestClient
|
197
|
+
Netrc
|
198
|
+
HTTP::CookieJar
|
199
|
+
DomainName
|
200
|
+
HTTP::Accept
|
201
|
+
+RestClient.get
|
202
|
+
+RestClient.head
|
203
|
+
+RestClient.delete
|
204
|
+
+RestClient.trace
|
205
|
+
+RestClient.post
|
206
|
+
+RestClient.put
|
207
|
+
+RestClient.patch
|
208
|
+
#excon
|
209
|
+
Excon
|
210
|
+
+Excon.get
|
211
|
+
+Excon.head
|
212
|
+
+Excon.delete
|
213
|
+
+Excon.trace
|
214
|
+
+Excon.post
|
215
|
+
+Excon.put
|
216
|
+
+Excon.patch
|
217
|
+
#HTTParty
|
218
|
+
HTTParty
|
219
|
+
+HTTParty.get
|
220
|
+
+HTTParty.head
|
221
|
+
+HTTParty.delete
|
222
|
+
+HTTParty.trace
|
223
|
+
+HTTParty.post
|
224
|
+
+HTTParty.put
|
225
|
+
+HTTParty.patch
|
226
|
+
#httpclient
|
227
|
+
HTTPClient
|
228
|
+
HTTP::Message
|
229
|
+
+HTTPClient#get
|
230
|
+
+HTTPClient#head
|
231
|
+
+HTTPClient#delete
|
232
|
+
+HTTPClient#trace
|
233
|
+
+HTTPClient#post
|
234
|
+
+HTTPClient#put
|
235
|
+
+HTTPClient#patch
|
236
|
+
#net-http
|
237
|
+
+Net::HTTP.get_response
|
238
|
+
+Net::HTTP.get
|
239
|
+
+Net::HTTP.head
|
240
|
+
+Net::HTTP.delete
|
241
|
+
+Net::HTTP.trace
|
242
|
+
+Net::HTTP.post
|
243
|
+
+Net::HTTP.put
|
244
|
+
+Net::HTTP.patch
|
245
|
+
+Net::HTTP.post_form
|
246
|
+
}
|
247
|
+
|
248
|
+
QUERIES = %w{
|
249
|
+
#redis
|
250
|
+
Redis
|
251
|
+
+Redis#auth
|
252
|
+
+Redis#select
|
253
|
+
+Redis#ping
|
254
|
+
+Redis#echo
|
255
|
+
+Redis#bgrewriteaof
|
256
|
+
+Redis#bgsave
|
257
|
+
+Redis#config
|
258
|
+
+Redis#dbsize
|
259
|
+
+Redis#debug
|
260
|
+
+Redis#flushall
|
261
|
+
+Redis#flushdb
|
262
|
+
+Redis#info
|
263
|
+
+Redis#lastsave
|
264
|
+
+Redis#monitor
|
265
|
+
+Redis#save
|
266
|
+
+Redis#shutdown
|
267
|
+
+Redis#slave
|
268
|
+
+Redis#slowlog
|
269
|
+
+Redis#sync
|
270
|
+
+Redis#time
|
271
|
+
+Redis#persist
|
272
|
+
+Redis#expire
|
273
|
+
+Redis#expireat
|
274
|
+
+Redis#ttl
|
275
|
+
+Redis#pexpire
|
276
|
+
+Redis#pexpireat
|
277
|
+
+Redis#pttl
|
278
|
+
+Redis#dump
|
279
|
+
+Redis#restore
|
280
|
+
+Redis#migrate
|
281
|
+
+Redis#del
|
282
|
+
+Redis#unlink
|
283
|
+
+Redis#exists
|
284
|
+
+Redis#keys
|
285
|
+
+Redis#move
|
286
|
+
+Redis#object
|
287
|
+
+Redis#randomkey
|
288
|
+
+Redis#rename
|
289
|
+
+Redis#renamenx
|
290
|
+
+Redis#sort
|
291
|
+
+Redis#type
|
292
|
+
+Redis#decr
|
293
|
+
+Redis#decrby
|
294
|
+
+Redis#incr
|
295
|
+
+Redis#incrby
|
296
|
+
+Redis#incrbyfloat
|
297
|
+
+Redis#set
|
298
|
+
+Redis#multi
|
299
|
+
+Redis#client
|
300
|
+
+Redis#set
|
301
|
+
+Redis#setex
|
302
|
+
+Redis#psetex
|
303
|
+
+Redis#setnx
|
304
|
+
+Redis#mset
|
305
|
+
+Redis#mapped_mset
|
306
|
+
+Redis#msetnx
|
307
|
+
+Redis#mapped_msetnx
|
308
|
+
+Redis#get
|
309
|
+
+Redis#mget
|
310
|
+
+Redis#mapped_mget
|
311
|
+
+Redis#setrange
|
312
|
+
+Redis#getrange
|
313
|
+
+Redis#setbit
|
314
|
+
+Redis#getbit
|
315
|
+
+Redis#append
|
316
|
+
+Redis#bitcount
|
317
|
+
+Redis#bitop
|
318
|
+
+Redis#bitpos
|
319
|
+
+Redis#getset
|
320
|
+
+Redis#strlen
|
321
|
+
+Redis#llen
|
322
|
+
+Redis#lpush
|
323
|
+
+Redis#lpushx
|
324
|
+
+Redis#rpush
|
325
|
+
+Redis#rpushx
|
326
|
+
+Redis#lpop
|
327
|
+
+Redis#rpop
|
328
|
+
+Redis#rpoplpush
|
329
|
+
+Redis#blpop
|
330
|
+
+Redis#brpop
|
331
|
+
+Redis#brpoplpush
|
332
|
+
+Redis#lindex
|
333
|
+
+Redis#linsert
|
334
|
+
+Redis#lrange
|
335
|
+
+Redis#lrem
|
336
|
+
+Redis#lset
|
337
|
+
+Redis#ltrim
|
338
|
+
+Redis#scard
|
339
|
+
+Redis#sadd
|
340
|
+
+Redis#srem
|
341
|
+
+Redis#spop
|
342
|
+
+Redis#srandmember
|
343
|
+
+Redis#smove
|
344
|
+
+Redis#sismember
|
345
|
+
+Redis#smembers
|
346
|
+
+Redis#sdiff
|
347
|
+
+Redis#sdiffstore
|
348
|
+
+Redis#sinter
|
349
|
+
+Redis#sinterstore
|
350
|
+
+Redis#sunion
|
351
|
+
+Redis#sunionstore
|
352
|
+
+Redis#zcard
|
353
|
+
+Redis#zadd
|
354
|
+
+Redis#zincrby
|
355
|
+
+Redis#zrem
|
356
|
+
+Redis#zpopmax
|
357
|
+
+Redis#zpopmin
|
358
|
+
+Redis#bzpopmax
|
359
|
+
+Redis#bzpopmin
|
360
|
+
+Redis#zscore
|
361
|
+
+Redis#zrange
|
362
|
+
+Redis#zrevrange
|
363
|
+
+Redis#zrank
|
364
|
+
+Redis#zrevrank
|
365
|
+
+Redis#zremrangebyrank
|
366
|
+
+Redis#zlexcount
|
367
|
+
+Redis#zrangebylex
|
368
|
+
+Redis#zrevrangebylex
|
369
|
+
+Redis#zrangebyscore
|
370
|
+
+Redis#zrevrangebyscore
|
371
|
+
+Redis#zremrangebyscore
|
372
|
+
+Redis#zcount
|
373
|
+
+Redis#zinterstore
|
374
|
+
+Redis#zunionstore
|
375
|
+
+Redis#hlen
|
376
|
+
+Redis#hset
|
377
|
+
+Redis#hsetnx
|
378
|
+
+Redis#hmset
|
379
|
+
+Redis#mapped_hmset
|
380
|
+
+Redis#hget
|
381
|
+
+Redis#hmget
|
382
|
+
+Redis#mapped_hmget
|
383
|
+
+Redis#hdel
|
384
|
+
+Redis#hexists
|
385
|
+
+Redis#hincrby
|
386
|
+
+Redis#hincrbyfloat
|
387
|
+
+Redis#hkeys
|
388
|
+
+Redis#hvals
|
389
|
+
+Redis#hgetall
|
390
|
+
+Redis#publish
|
391
|
+
+Redis#subscribe
|
392
|
+
+Redis#subscribe_with_timeout
|
393
|
+
+Redis#unsubscribe
|
394
|
+
+Redis#psubscribe
|
395
|
+
+Redis#psubscribe_with_timeout
|
396
|
+
+Redis#punsubscribe
|
397
|
+
+Redis#pubsub
|
398
|
+
+Redis#watch
|
399
|
+
+Redis#unwatch
|
400
|
+
+Redis#pipelined
|
401
|
+
+Redis#multi
|
402
|
+
+Redis#exec
|
403
|
+
+Redis#discard
|
404
|
+
+Redis#script
|
405
|
+
+Redis#eval
|
406
|
+
+Redis#evalsha
|
407
|
+
+Redis#scan
|
408
|
+
+Redis#hscan
|
409
|
+
+Redis#zscan
|
410
|
+
+Redis#sscan
|
411
|
+
+Redis#pfadd
|
412
|
+
+Redis#pfcount
|
413
|
+
+Redis#pfmerge
|
414
|
+
+Redis#geoadd
|
415
|
+
+Redis#geohash
|
416
|
+
+Redis#georadiusbymember
|
417
|
+
+Redis#geopos
|
418
|
+
+Redis#geodist
|
419
|
+
+Redis#xinfo
|
420
|
+
+Redis#xadd
|
421
|
+
+Redis#xtrim
|
422
|
+
+Redis#xdel
|
423
|
+
+Redis#xrange
|
424
|
+
+Redis#xrevrange
|
425
|
+
+Redis#xlen
|
426
|
+
+Redis#xread
|
427
|
+
+Redis#xgroup
|
428
|
+
+Redis#xreadgroup
|
429
|
+
+Redis#xack
|
430
|
+
+Redis#xclaim
|
431
|
+
+Redis#xpending
|
432
|
+
+Redis#sentinel
|
433
|
+
+Redis#cluster
|
434
|
+
+Redis#asking
|
435
|
+
}
|
436
|
+
|
437
|
+
RAYGUN4RUBY = %w{
|
438
|
+
Raygun::Breadcrumbs
|
439
|
+
Raygun::Configuration
|
440
|
+
Raygun.config
|
441
|
+
Raygun.log
|
442
|
+
Raygun.should_report?
|
443
|
+
Raygun::Client
|
444
|
+
+Raygun.track_exception
|
445
|
+
}
|
446
|
+
|
447
|
+
def self.extend_with(list)
|
448
|
+
self.extended_blacklist << list
|
449
|
+
end
|
450
|
+
|
451
|
+
def self.extended_blacklist
|
452
|
+
@@extended_blacklist ||= []
|
453
|
+
end
|
454
|
+
|
455
|
+
def self.resolve_entries
|
456
|
+
DEFAULT_RUBY + PROFILER + INTERNALS + HTTP_OUT + QUERIES + RAYGUN4RUBY + self.extended_blacklist.flatten
|
457
|
+
end
|
458
|
+
end
|
459
|
+
end
|
460
|
+
end
|