xray 1.1
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.
- data/README +65 -0
- data/bin/install_dtrace_on_ubuntu +30 -0
- data/bin/xray_profile_ruby_function_calls.d +54 -0
- data/bin/xray_top_10_busiest_code_path_for_process.d +12 -0
- data/bin/xray_top_10_busiest_code_path_on_system.d +35 -0
- data/bin/xray_trace_all_custom_ruby_probes.d +25 -0
- data/bin/xray_trace_all_ruby_probes.d +20 -0
- data/bin/xray_trace_memcached.d +20 -0
- data/bin/xray_trace_mysql.d +30 -0
- data/bin/xray_trace_rails_response_times.d +114 -0
- data/lib/xray.rb +2 -0
- data/lib/xray/dtrace/rails/action_controller_tracing_extension.rb +22 -0
- data/lib/xray/dtrace/rails/active_record_connection_tracing_extension.rb +15 -0
- data/lib/xray/dtrace/rails/enable_tracing.rb +25 -0
- data/lib/xray/dtrace/tracer.rb +86 -0
- data/lib/xray/dtrace/tracer/joyent.rb +25 -0
- data/lib/xray/dtrace/tracer/leopard.rb +28 -0
- data/lib/xray/dtrace/usdt/provider_extensions.rb +45 -0
- data/lib/xray/thread_dump_signal_handler.rb +31 -0
- data/patches_for_mri/caller_for_all_threads_patch_for_MRI_1.8.6.diff +229 -0
- data/patches_for_mri/caller_for_all_threads_patch_for_MRI_1.8.7.diff +229 -0
- data/patches_for_mri/patch-for-dtrace-instrumentation-of-matz-1.8.6-p114.diff +522 -0
- data/patches_for_mri/patch-for-joyent-mri-1.8.6-on-mac-os-x-leopard.diff +20645 -0
- data/rails/init.rb +2 -0
- data/test/all_tests.rb +1 -0
- data/test/functional/dtrace/tracer_test.rb +54 -0
- data/test/functional/tracer_script.rb +18 -0
- data/test/test_helper.rb +9 -0
- data/test/unit/xray/dtrace/tracer_test.rb +54 -0
- metadata +84 -0
data/rails/init.rb
ADDED
data/test/all_tests.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Dir["#{File.dirname __FILE__}/**/*_test.rb"].each { |test_case| require test_case }
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require File.expand_path(__FILE__ + '/../../../test_helper')
|
2
|
+
|
3
|
+
functional_tests do
|
4
|
+
|
5
|
+
test "fire a probe with no data and no block" do
|
6
|
+
aClass = Class.new do
|
7
|
+
include XRay::DTrace::Tracer
|
8
|
+
end
|
9
|
+
|
10
|
+
aClass.new.fire "a name"
|
11
|
+
end
|
12
|
+
|
13
|
+
test "fire a probe with data and no block" do
|
14
|
+
aClass = Class.new do
|
15
|
+
include XRay::DTrace::Tracer
|
16
|
+
end
|
17
|
+
|
18
|
+
aClass.new.fire "a name", "some data"
|
19
|
+
end
|
20
|
+
|
21
|
+
test "Can check whether ruby-probe is enabled" do
|
22
|
+
aClass = Class.new do
|
23
|
+
include XRay::DTrace::Tracer
|
24
|
+
end
|
25
|
+
|
26
|
+
assert [true, false].include?(aClass.new.enabled?)
|
27
|
+
end
|
28
|
+
|
29
|
+
test "fire a probe with block and no data" do
|
30
|
+
anObject = Class.new do
|
31
|
+
include XRay::DTrace::Tracer
|
32
|
+
end.new
|
33
|
+
|
34
|
+
result = anObject.firing("a-name") do
|
35
|
+
:expected_result
|
36
|
+
end
|
37
|
+
|
38
|
+
assert_equal :expected_result, result
|
39
|
+
end
|
40
|
+
|
41
|
+
test "fire a probe with block and data" do
|
42
|
+
anObject = Class.new do
|
43
|
+
include XRay::DTrace::Tracer
|
44
|
+
end.new
|
45
|
+
|
46
|
+
result = anObject.firing("a-name", "some data") do
|
47
|
+
:expected_result
|
48
|
+
end
|
49
|
+
|
50
|
+
assert_equal :expected_result, result
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
$: << File.dirname(__FILE__) + '/../../lib'
|
2
|
+
require 'xray/dtrace/tracer'
|
3
|
+
|
4
|
+
class Service
|
5
|
+
include XRay::DTrace::Tracer
|
6
|
+
|
7
|
+
def process
|
8
|
+
puts "Processing new request"
|
9
|
+
firing "my-service", "a sql query" do
|
10
|
+
sleep 2
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
loop do
|
17
|
+
Service.new.process
|
18
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
require File.expand_path(__FILE__ + '/../../../../test_helper')
|
2
|
+
|
3
|
+
unit_tests do
|
4
|
+
|
5
|
+
test "fire a probe with no data and no block" do
|
6
|
+
aClass = Class.new do
|
7
|
+
include XRay::DTrace::Tracer
|
8
|
+
end
|
9
|
+
|
10
|
+
aClass.new.fire "a name"
|
11
|
+
end
|
12
|
+
|
13
|
+
test "fire a probe with data and no block" do
|
14
|
+
aClass = Class.new do
|
15
|
+
include XRay::DTrace::Tracer
|
16
|
+
end
|
17
|
+
|
18
|
+
aClass.new.fire "a name", "some data"
|
19
|
+
end
|
20
|
+
|
21
|
+
test "Can check whether ruby-probe is enabled" do
|
22
|
+
aClass = Class.new do
|
23
|
+
include XRay::DTrace::Tracer
|
24
|
+
end
|
25
|
+
|
26
|
+
assert [true, false].include?(aClass.new.enabled?)
|
27
|
+
end
|
28
|
+
|
29
|
+
test "fire a probe with block and no data" do
|
30
|
+
anObject = Class.new do
|
31
|
+
include XRay::DTrace::Tracer
|
32
|
+
end.new
|
33
|
+
|
34
|
+
result = anObject.firing("a-name") do
|
35
|
+
:expected_result
|
36
|
+
end
|
37
|
+
|
38
|
+
assert_equal :expected_result, result
|
39
|
+
end
|
40
|
+
|
41
|
+
test "fire a probe with block and data" do
|
42
|
+
anObject = Class.new do
|
43
|
+
include XRay::DTrace::Tracer
|
44
|
+
end.new
|
45
|
+
|
46
|
+
result = anObject.firing("a-name", "some data") do
|
47
|
+
:expected_result
|
48
|
+
end
|
49
|
+
|
50
|
+
assert_equal :expected_result, result
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
metadata
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: xray
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: "1.1"
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Philippe Hanrigou
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-11-17 00:00:00 -05:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description:
|
17
|
+
email: xray-developer@rubyforge.org
|
18
|
+
executables:
|
19
|
+
- install_dtrace_on_ubuntu
|
20
|
+
- xray_profile_ruby_function_calls.d
|
21
|
+
- xray_top_10_busiest_code_path_for_process.d
|
22
|
+
- xray_top_10_busiest_code_path_on_system.d
|
23
|
+
- xray_trace_all_custom_ruby_probes.d
|
24
|
+
- xray_trace_all_ruby_probes.d
|
25
|
+
- xray_trace_memcached.d
|
26
|
+
- xray_trace_mysql.d
|
27
|
+
- xray_trace_rails_response_times.d
|
28
|
+
extensions: []
|
29
|
+
|
30
|
+
extra_rdoc_files:
|
31
|
+
- README
|
32
|
+
files:
|
33
|
+
- lib/xray/dtrace/rails/action_controller_tracing_extension.rb
|
34
|
+
- lib/xray/dtrace/rails/active_record_connection_tracing_extension.rb
|
35
|
+
- lib/xray/dtrace/rails/enable_tracing.rb
|
36
|
+
- lib/xray/dtrace/tracer/joyent.rb
|
37
|
+
- lib/xray/dtrace/tracer/leopard.rb
|
38
|
+
- lib/xray/dtrace/tracer.rb
|
39
|
+
- lib/xray/dtrace/usdt/provider_extensions.rb
|
40
|
+
- lib/xray/thread_dump_signal_handler.rb
|
41
|
+
- lib/xray.rb
|
42
|
+
- test/all_tests.rb
|
43
|
+
- test/functional/dtrace/tracer_test.rb
|
44
|
+
- test/functional/tracer_script.rb
|
45
|
+
- test/test_helper.rb
|
46
|
+
- test/unit/xray/dtrace/tracer_test.rb
|
47
|
+
- patches_for_mri/caller_for_all_threads_patch_for_MRI_1.8.6.diff
|
48
|
+
- patches_for_mri/caller_for_all_threads_patch_for_MRI_1.8.7.diff
|
49
|
+
- patches_for_mri/patch-for-dtrace-instrumentation-of-matz-1.8.6-p114.diff
|
50
|
+
- patches_for_mri/patch-for-joyent-mri-1.8.6-on-mac-os-x-leopard.diff
|
51
|
+
- rails/init.rb
|
52
|
+
- README
|
53
|
+
has_rdoc: true
|
54
|
+
homepage: http://xray.rubyforge.com
|
55
|
+
post_install_message:
|
56
|
+
rdoc_options:
|
57
|
+
- --title
|
58
|
+
- XRay
|
59
|
+
- --main
|
60
|
+
- README
|
61
|
+
- --line-numbers
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: "0"
|
69
|
+
version:
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: "0"
|
75
|
+
version:
|
76
|
+
requirements: []
|
77
|
+
|
78
|
+
rubyforge_project: xray
|
79
|
+
rubygems_version: 1.2.0
|
80
|
+
signing_key:
|
81
|
+
specification_version: 2
|
82
|
+
summary: Dump backtrace for all threads.
|
83
|
+
test_files:
|
84
|
+
- test/all_tests.rb
|