traceview 3.3.3-java → 3.4.0-java
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 +4 -4
- data/.travis.yml +18 -18
- data/CHANGELOG.md +13 -0
- data/README.md +3 -1
- data/Rakefile +18 -9
- data/gemfiles/delayed_job.gemfile +38 -0
- data/gemfiles/frameworks.gemfile +1 -2
- data/gemfiles/libraries.gemfile +1 -2
- data/gemfiles/rails23.gemfile +1 -2
- data/gemfiles/rails30.gemfile +4 -2
- data/gemfiles/rails31.gemfile +4 -2
- data/gemfiles/rails32.gemfile +4 -2
- data/gemfiles/rails40.gemfile +4 -2
- data/gemfiles/rails41.gemfile +4 -2
- data/gemfiles/rails42.gemfile +4 -2
- data/lib/traceview/api/layerinit.rb +3 -5
- data/lib/traceview/api/logging.rb +63 -50
- data/lib/traceview/api/memcache.rb +10 -9
- data/lib/traceview/api/profiling.rb +6 -7
- data/lib/traceview/api/util.rb +1 -1
- data/lib/traceview/base.rb +21 -7
- data/lib/traceview/config.rb +8 -4
- data/lib/traceview/frameworks/padrino.rb +2 -2
- data/lib/traceview/frameworks/rails/inst/action_controller.rb +3 -3
- data/lib/traceview/frameworks/rails/inst/action_view.rb +4 -2
- data/lib/traceview/frameworks/rails/inst/action_view_2x.rb +4 -2
- data/lib/traceview/frameworks/rails/inst/action_view_30.rb +4 -2
- data/lib/traceview/frameworks/rails/inst/connection_adapters/utils.rb +3 -3
- data/lib/traceview/frameworks/rails.rb +26 -32
- data/lib/traceview/frameworks/sinatra/templates.rb +1 -1
- data/lib/traceview/frameworks/sinatra.rb +1 -1
- data/lib/traceview/inst/dalli.rb +4 -5
- data/lib/traceview/inst/delayed_job.rb +92 -0
- data/lib/traceview/inst/em-http-request.rb +3 -0
- data/lib/traceview/inst/excon.rb +3 -3
- data/lib/traceview/inst/faraday.rb +4 -1
- data/lib/traceview/inst/mongo.rb +10 -5
- data/lib/traceview/inst/moped.rb +4 -4
- data/lib/traceview/inst/redis.rb +5 -7
- data/lib/traceview/inst/resque.rb +3 -3
- data/lib/traceview/inst/rest-client.rb +2 -2
- data/lib/traceview/inst/sidekiq-client.rb +3 -0
- data/lib/traceview/inst/sidekiq-worker.rb +3 -0
- data/lib/traceview/inst/twitter-cassandra.rb +8 -4
- data/lib/traceview/test.rb +30 -1
- data/lib/traceview/util.rb +7 -0
- data/lib/traceview/version.rb +2 -2
- data/test/frameworks/rails3x_test.rb +12 -2
- data/test/frameworks/rails4x_test.rb +12 -2
- data/test/instrumentation/curb_test.rb +2 -2
- data/test/instrumentation/dalli_test.rb +121 -118
- data/test/instrumentation/httpclient_test.rb +0 -1
- data/test/jobs/delayed_job/db_worker_job.rb +29 -0
- data/test/jobs/delayed_job/error_worker_job.rb +10 -0
- data/test/jobs/delayed_job/remote_call_worker_job.rb +20 -0
- data/test/minitest_helper.rb +8 -3
- data/test/models/widget.rb +19 -0
- data/test/queues/delayed_job-client_test.rb +95 -0
- data/test/queues/delayed_job-worker_test.rb +91 -0
- data/test/servers/delayed_job.rb +102 -0
- data/test/servers/rails3x_8140.rb +17 -1
- data/test/servers/rails4x_8140.rb +18 -1
- data/test/support/auto_tracing.rb +40 -0
- data/test/support/config_test.rb +5 -1
- data/traceview.gemspec +1 -0
- metadata +34 -6
- data/test/instrumentation/delayed_job-client_test.rb +0 -128
- data/test/instrumentation/delayed_job-worker_test.rb +0 -177
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79f990d586021911ee937f498d590b569da91445
|
4
|
+
data.tar.gz: 803519418a7cb2bb09cdcd915d436afaaa434222
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f3ad43392f02407f593ed2170fb053a16e7a77c30e30b1ffc1aa62972877373d395f10cf104901a64e6a314df4299405e33714edf5cce111a30acabba16ee5f
|
7
|
+
data.tar.gz: 87606a310e7cd5964ab73d6d57cbd9379e00f49ebcf75c80510c790ebea18132618950352eb933c8f4fc89b6990cb293953db786607c9df4c084c824fa9f6b43
|
data/.travis.yml
CHANGED
@@ -6,42 +6,42 @@ cache:
|
|
6
6
|
- vendor/bundle
|
7
7
|
|
8
8
|
rvm:
|
9
|
-
- 2.2.
|
9
|
+
- 2.2.4
|
10
10
|
- 1.9.3
|
11
11
|
- 1.8.7
|
12
|
-
- jruby-9.0.
|
12
|
+
- jruby-9.0.4.0
|
13
13
|
|
14
14
|
gemfile:
|
15
15
|
- gemfiles/libraries.gemfile
|
16
16
|
- gemfiles/frameworks.gemfile
|
17
|
-
- gemfiles/rails30.gemfile
|
18
|
-
- gemfiles/rails31.gemfile
|
19
17
|
- gemfiles/rails32.gemfile
|
20
|
-
- gemfiles/rails40.gemfile
|
21
|
-
- gemfiles/rails41.gemfile
|
22
18
|
- gemfiles/rails42.gemfile
|
19
|
+
- gemfiles/delayed_job.gemfile
|
23
20
|
|
24
21
|
matrix:
|
25
22
|
exclude:
|
26
23
|
# Rails 4.0+ requires Ruby 1.9.3 or higher
|
27
24
|
- rvm: 1.8.7
|
28
|
-
gemfile: gemfiles/rails40.gemfile
|
29
|
-
- rvm: 1.8.7
|
30
|
-
gemfile: gemfiles/rails41.gemfile
|
31
|
-
- rvm: 1.8.7
|
32
|
-
gemfile: gemfiles/rails42.gemfile
|
33
|
-
- rvm: ree
|
34
|
-
gemfile: gemfiles/rails40.gemfile
|
35
|
-
- rvm: ree
|
36
|
-
gemfile: gemfiles/rails41.gemfile
|
37
|
-
- rvm: ree
|
38
25
|
gemfile: gemfiles/rails42.gemfile
|
39
26
|
|
27
|
+
# Don't test DelayedJob under MRI 1.8 and JRuby
|
28
|
+
- rvm: 1.8.7
|
29
|
+
gemfile: gemfiles/delayed_job.gemfile
|
30
|
+
|
31
|
+
- rvm: jruby-9.0.4.0
|
32
|
+
gemfile: gemfiles/delayed_job.gemfile
|
33
|
+
|
40
34
|
# Other frameworks tested on Ruby 1.9.3 or higher
|
41
35
|
- rvm: 1.8.7
|
42
36
|
gemfile: gemfiles/frameworks.gemfile
|
43
|
-
|
44
|
-
|
37
|
+
|
38
|
+
allow_failures:
|
39
|
+
- rvm: jruby-9.0.4.0
|
40
|
+
gemfile: gemfiles/rails32.gemfile
|
41
|
+
|
42
|
+
- rvm: jruby-9.0.4.0
|
43
|
+
gemfile: gemfiles/rails42.gemfile
|
44
|
+
|
45
45
|
|
46
46
|
# Attempt Travis/Cassandra fix re: https://github.com/travis-ci/travis-ci/issues/1484
|
47
47
|
# Updated Cassandra: https://github.com/travis-ci/travis-ci/issues/1650
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,19 @@ https://github.com/appneta/oboe-ruby/releases
|
|
4
4
|
|
5
5
|
Dates in this file are in the format MM/DD/YYYY.
|
6
6
|
|
7
|
+
# traceview 3.4.0
|
8
|
+
|
9
|
+
This minor release includes the following features & fixes:
|
10
|
+
|
11
|
+
* New [DelayedJob](https://github.com/collectiveidea/delayed_job/) instrumentation: #151
|
12
|
+
* Limit BSON gem dependency to < 4.0: #152
|
13
|
+
* Code refactoring & improvements: #148
|
14
|
+
|
15
|
+
Pushed to Rubygems:
|
16
|
+
|
17
|
+
https://rubygems.org/gems/traceview/versions/3.4.0
|
18
|
+
https://rubygems.org/gems/traceview/versions/3.4.0-java
|
19
|
+
|
7
20
|
# traceview 3.3.3
|
8
21
|
|
9
22
|
This patch release includes the following fixes:
|
data/README.md
CHANGED
@@ -16,6 +16,8 @@ _Note: The repository name has been changed to ruby-traceview. Please update yo
|
|
16
16
|
|
17
17
|
# Installation
|
18
18
|
|
19
|
+
_Before installing the gem below, make sure that you have the [base packages](http://docs.appneta.com/installation-overview#1-install-base-packages) installed on your host first._
|
20
|
+
|
19
21
|
The traceview gem is [available on Rubygems](https://rubygems.org/gems/traceview) and can be installed with:
|
20
22
|
|
21
23
|
```bash
|
@@ -199,7 +201,7 @@ class Engine
|
|
199
201
|
end
|
200
202
|
```
|
201
203
|
|
202
|
-
This example demonstrates method profiling of instance methods. Class methods are profiled slightly differently. See the TraceView [documentation portal](https://docs.appneta.com/
|
204
|
+
This example demonstrates method profiling of instance methods. Class methods are profiled slightly differently. See the TraceView [documentation portal](https://docs.appneta.com/ruby#customizing-ruby-instrumentation) for full details.
|
203
205
|
|
204
206
|
# Support
|
205
207
|
|
data/Rakefile
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'bundler/setup'
|
5
5
|
require 'rake/testtask'
|
6
|
+
require 'traceview/test'
|
6
7
|
|
7
8
|
Rake::TestTask.new do |t|
|
8
9
|
t.verbose = true
|
@@ -16,7 +17,10 @@ Rake::TestTask.new do |t|
|
|
16
17
|
# Here we detect the Gemfile the tests are being run against
|
17
18
|
# and load the appropriate tests.
|
18
19
|
#
|
19
|
-
case
|
20
|
+
case TraceView::Test.gemfile
|
21
|
+
when /delayed_job/
|
22
|
+
require 'delayed/tasks'
|
23
|
+
t.test_files = FileList["test/queues/delayed_job*_test.rb"]
|
20
24
|
when /rails/
|
21
25
|
# Pre-load rails to get the major version number
|
22
26
|
require 'rails'
|
@@ -114,22 +118,27 @@ end
|
|
114
118
|
desc "Rebuild the gem's c extension"
|
115
119
|
task :recompile => [ :distclean, :compile ]
|
116
120
|
|
117
|
-
task :
|
118
|
-
require 'traceview/test'
|
121
|
+
task :environment do
|
119
122
|
ENV['TRACEVIEW_GEM_VERBOSE'] = 'true'
|
123
|
+
|
120
124
|
Bundler.require(:default, :development)
|
121
125
|
TraceView::Config[:tracing_mode] = :always
|
122
126
|
TV::Test.load_extras
|
127
|
+
|
128
|
+
if TV::Test.gemfile?(:delayed_job)
|
129
|
+
require 'delayed/tasks'
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
task :console => :environment do
|
123
134
|
ARGV.clear
|
135
|
+
if TV::Test.gemfile?(:delayed_job)
|
136
|
+
require './test/servers/delayed_job'
|
137
|
+
end
|
124
138
|
Pry.start
|
125
139
|
end
|
126
140
|
|
127
141
|
# Used when testing Resque locally
|
128
|
-
task "resque:setup" do
|
142
|
+
task "resque:setup" => :environment do
|
129
143
|
require 'resque/tasks'
|
130
|
-
require 'traceview/test'
|
131
|
-
ENV['TRACEVIEW_GEM_VERBOSE'] = 'true'
|
132
|
-
Bundler.require(:default, :development)
|
133
|
-
TraceView::Config[:tracing_mode] = :always
|
134
|
-
TV::Test.load_extras
|
135
144
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
group :development, :test do
|
4
|
+
gem 'rake'
|
5
|
+
gem 'minitest'
|
6
|
+
gem 'minitest-reporters', '< 1.0.18'
|
7
|
+
gem 'minitest-debugger', :require => false
|
8
|
+
gem 'rack-test'
|
9
|
+
gem 'puma'
|
10
|
+
gem 'bson'
|
11
|
+
end
|
12
|
+
|
13
|
+
group :development do
|
14
|
+
gem 'ruby-debug', :platforms => [ :mri_18, :jruby ]
|
15
|
+
gem 'debugger', :platform => :mri_19
|
16
|
+
gem 'byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
17
|
+
if RUBY_VERSION > '1.8.7'
|
18
|
+
gem 'pry'
|
19
|
+
gem 'pry-byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
20
|
+
else
|
21
|
+
gem 'pry', '0.9.12.4'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
if defined?(JRUBY_VERSION)
|
26
|
+
gem 'sinatra', :require => false
|
27
|
+
gem 'activerecord-jdbc-adapter'
|
28
|
+
gem 'jdbc-postgresql'
|
29
|
+
else
|
30
|
+
gem 'sinatra'
|
31
|
+
gem 'pg'
|
32
|
+
gem "delayed_job_active_record"
|
33
|
+
end
|
34
|
+
|
35
|
+
gem "rails", "~> 4.2.5"
|
36
|
+
|
37
|
+
gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
|
38
|
+
# vim:syntax=ruby
|
data/gemfiles/frameworks.gemfile
CHANGED
@@ -18,7 +18,6 @@ group :development do
|
|
18
18
|
gem 'ruby-debug', :platforms => [ :mri_18, :jruby ]
|
19
19
|
gem 'debugger', :platform => :mri_19
|
20
20
|
gem 'byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
21
|
-
# gem 'perftools.rb', :platforms => [ :mri_20, :mri_21 ], :require => 'perftools'
|
22
21
|
if RUBY_VERSION > '1.8.7'
|
23
22
|
gem 'pry'
|
24
23
|
gem 'pry-byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
@@ -33,7 +32,7 @@ else
|
|
33
32
|
gem 'sinatra'
|
34
33
|
end
|
35
34
|
|
36
|
-
gem "grape"
|
35
|
+
gem "grape", "< 0.14"
|
37
36
|
gem "padrino", '< 0.13'
|
38
37
|
|
39
38
|
gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
|
data/gemfiles/libraries.gemfile
CHANGED
@@ -28,7 +28,6 @@ group :development do
|
|
28
28
|
gem 'ruby-debug', :platforms => [ :mri_18, :jruby ]
|
29
29
|
gem 'debugger', :platform => :mri_19
|
30
30
|
gem 'byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
31
|
-
# gem 'perftools.rb', :platforms => [ :mri_20, :mri_21 ], :require => 'perftools'
|
32
31
|
if RUBY_VERSION > '1.8.7'
|
33
32
|
gem 'pry'
|
34
33
|
gem 'pry-byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
@@ -45,7 +44,7 @@ end
|
|
45
44
|
|
46
45
|
gem 'cassandra'
|
47
46
|
gem 'curb' unless defined?(JRUBY_VERSION)
|
48
|
-
gem 'dalli'
|
47
|
+
gem 'dalli' if RUBY_VERSION > '1.8.7'
|
49
48
|
gem 'excon'
|
50
49
|
gem 'faraday'
|
51
50
|
gem 'httpclient'
|
data/gemfiles/rails23.gemfile
CHANGED
@@ -31,7 +31,6 @@ group :development do
|
|
31
31
|
gem 'ruby-debug', :platforms => [ :mri_18, :jruby ]
|
32
32
|
gem 'debugger', :platform => :mri_19
|
33
33
|
gem 'byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
34
|
-
# gem 'perftools.rb', :platforms => [ :mri_20, :mri_21 ], :require => 'perftools'
|
35
34
|
if RUBY_VERSION > '1.8.7'
|
36
35
|
gem 'pry'
|
37
36
|
gem 'pry-byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
@@ -46,7 +45,7 @@ else
|
|
46
45
|
gem 'sinatra'
|
47
46
|
end
|
48
47
|
|
49
|
-
gem "rails", "~>2.3"
|
48
|
+
gem "rails", "~> 2.3.18"
|
50
49
|
|
51
50
|
gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
|
52
51
|
# vim:syntax=ruby
|
data/gemfiles/rails30.gemfile
CHANGED
@@ -31,7 +31,6 @@ group :development do
|
|
31
31
|
gem 'ruby-debug', :platforms => [ :mri_18, :jruby ]
|
32
32
|
gem 'debugger', :platform => :mri_19
|
33
33
|
gem 'byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
34
|
-
# gem 'perftools.rb', :platforms => [ :mri_20, :mri_21 ], :require => 'perftools'
|
35
34
|
if RUBY_VERSION > '1.8.7'
|
36
35
|
gem 'pry'
|
37
36
|
gem 'pry-byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
@@ -42,11 +41,14 @@ end
|
|
42
41
|
|
43
42
|
if defined?(JRUBY_VERSION)
|
44
43
|
gem 'sinatra', :require => false
|
44
|
+
gem 'activerecord-jdbc-adapter'
|
45
|
+
gem 'jdbc-postgresql'
|
45
46
|
else
|
46
47
|
gem 'sinatra'
|
48
|
+
gem 'pg', '< 0.17'
|
47
49
|
end
|
48
50
|
|
49
|
-
gem "rails", "~>3.0"
|
51
|
+
gem "rails", "~> 3.0.20"
|
50
52
|
|
51
53
|
gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
|
52
54
|
# vim:syntax=ruby
|
data/gemfiles/rails31.gemfile
CHANGED
@@ -31,7 +31,6 @@ group :development do
|
|
31
31
|
gem 'ruby-debug', :platforms => [ :mri_18, :jruby ]
|
32
32
|
gem 'debugger', :platform => :mri_19
|
33
33
|
gem 'byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
34
|
-
# gem 'perftools.rb', :platforms => [ :mri_20, :mri_21 ], :require => 'perftools'
|
35
34
|
if RUBY_VERSION > '1.8.7'
|
36
35
|
gem 'pry'
|
37
36
|
gem 'pry-byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
@@ -42,11 +41,14 @@ end
|
|
42
41
|
|
43
42
|
if defined?(JRUBY_VERSION)
|
44
43
|
gem 'sinatra', :require => false
|
44
|
+
gem 'activerecord-jdbc-adapter'
|
45
|
+
gem 'jdbc-postgresql'
|
45
46
|
else
|
46
47
|
gem 'sinatra'
|
48
|
+
gem 'pg', '< 0.17'
|
47
49
|
end
|
48
50
|
|
49
|
-
gem "rails", "~>3.1"
|
51
|
+
gem "rails", "~> 3.1.12"
|
50
52
|
|
51
53
|
gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
|
52
54
|
# vim:syntax=ruby
|
data/gemfiles/rails32.gemfile
CHANGED
@@ -31,7 +31,6 @@ group :development do
|
|
31
31
|
gem 'ruby-debug', :platforms => [ :mri_18, :jruby ]
|
32
32
|
gem 'debugger', :platform => :mri_19
|
33
33
|
gem 'byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
34
|
-
# gem 'perftools.rb', :platforms => [ :mri_20, :mri_21 ], :require => 'perftools'
|
35
34
|
if RUBY_VERSION > '1.8.7'
|
36
35
|
gem 'pry'
|
37
36
|
gem 'pry-byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
@@ -42,11 +41,14 @@ end
|
|
42
41
|
|
43
42
|
if defined?(JRUBY_VERSION)
|
44
43
|
gem 'sinatra', :require => false
|
44
|
+
gem 'activerecord-jdbc-adapter'
|
45
|
+
gem 'jdbc-postgresql'
|
45
46
|
else
|
46
47
|
gem 'sinatra'
|
48
|
+
gem 'pg', '< 0.17'
|
47
49
|
end
|
48
50
|
|
49
|
-
gem "rails", "~>3.2"
|
51
|
+
gem "rails", "~> 3.2.22"
|
50
52
|
|
51
53
|
gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
|
52
54
|
# vim:syntax=ruby
|
data/gemfiles/rails40.gemfile
CHANGED
@@ -14,7 +14,6 @@ group :development do
|
|
14
14
|
gem 'ruby-debug', :platforms => [ :mri_18, :jruby ]
|
15
15
|
gem 'debugger', :platform => :mri_19
|
16
16
|
gem 'byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
17
|
-
# gem 'perftools.rb', :platforms => [ :mri_20, :mri_21 ], :require => 'perftools'
|
18
17
|
if RUBY_VERSION > '1.8.7'
|
19
18
|
gem 'pry'
|
20
19
|
gem 'pry-byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
@@ -25,11 +24,14 @@ end
|
|
25
24
|
|
26
25
|
if defined?(JRUBY_VERSION)
|
27
26
|
gem 'sinatra', :require => false
|
27
|
+
gem 'activerecord-jdbc-adapter'
|
28
|
+
gem 'jdbc-postgresql'
|
28
29
|
else
|
29
30
|
gem 'sinatra'
|
31
|
+
gem 'pg', '< 0.17'
|
30
32
|
end
|
31
33
|
|
32
|
-
gem "rails", "~>4.0"
|
34
|
+
gem "rails", "~> 4.0.13"
|
33
35
|
|
34
36
|
gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
|
35
37
|
# vim:syntax=ruby
|
data/gemfiles/rails41.gemfile
CHANGED
@@ -14,7 +14,6 @@ group :development do
|
|
14
14
|
gem 'ruby-debug', :platforms => [ :mri_18, :jruby ]
|
15
15
|
gem 'debugger', :platform => :mri_19
|
16
16
|
gem 'byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
17
|
-
# gem 'perftools.rb', :platforms => [ :mri_20, :mri_21 ], :require => 'perftools'
|
18
17
|
if RUBY_VERSION > '1.8.7'
|
19
18
|
gem 'pry'
|
20
19
|
gem 'pry-byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
@@ -25,11 +24,14 @@ end
|
|
25
24
|
|
26
25
|
if defined?(JRUBY_VERSION)
|
27
26
|
gem 'sinatra', :require => false
|
27
|
+
gem 'activerecord-jdbc-adapter'
|
28
|
+
gem 'jdbc-postgresql'
|
28
29
|
else
|
29
30
|
gem 'sinatra'
|
31
|
+
gem 'pg', '< 0.17'
|
30
32
|
end
|
31
33
|
|
32
|
-
gem "rails", "~>4.1"
|
34
|
+
gem "rails", "~> 4.1.14"
|
33
35
|
|
34
36
|
gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
|
35
37
|
# vim:syntax=ruby
|
data/gemfiles/rails42.gemfile
CHANGED
@@ -14,7 +14,6 @@ group :development do
|
|
14
14
|
gem 'ruby-debug', :platforms => [ :mri_18, :jruby ]
|
15
15
|
gem 'debugger', :platform => :mri_19
|
16
16
|
gem 'byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
17
|
-
# gem 'perftools.rb', :platforms => [ :mri_20, :mri_21 ], :require => 'perftools'
|
18
17
|
if RUBY_VERSION > '1.8.7'
|
19
18
|
gem 'pry'
|
20
19
|
gem 'pry-byebug', :platforms => [ :mri_20, :mri_21, :mri_22 ]
|
@@ -25,11 +24,14 @@ end
|
|
25
24
|
|
26
25
|
if defined?(JRUBY_VERSION)
|
27
26
|
gem 'sinatra', :require => false
|
27
|
+
gem 'activerecord-jdbc-adapter'
|
28
|
+
gem 'jdbc-postgresql'
|
28
29
|
else
|
29
30
|
gem 'sinatra'
|
31
|
+
gem 'pg'
|
30
32
|
end
|
31
33
|
|
32
|
-
gem "rails", "~>4.2"
|
34
|
+
gem "rails", "~> 4.2.5"
|
33
35
|
|
34
36
|
gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
|
35
37
|
# vim:syntax=ruby
|
@@ -13,11 +13,9 @@ module TraceView
|
|
13
13
|
def report_init(layer = 'rack')
|
14
14
|
# Don't send __Init in development, test or if the gem
|
15
15
|
# isn't fully loaded (e.g. missing c-extension)
|
16
|
-
if %w(development test).include?
|
17
|
-
|
18
|
-
|
19
|
-
return
|
20
|
-
end
|
16
|
+
return if %w(development test).include?(ENV['RACK_ENV']) ||
|
17
|
+
ENV.key?('TRACEVIEW_GEM_TEST') ||
|
18
|
+
!TraceView.loaded
|
21
19
|
|
22
20
|
platform_info = TraceView::Util.build_init_report
|
23
21
|
|
@@ -31,9 +31,9 @@ module TraceView
|
|
31
31
|
#
|
32
32
|
# Returns nothing.
|
33
33
|
def log(layer, label, opts = {})
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
return unless TraceView.loaded
|
35
|
+
|
36
|
+
log_event(layer, label, TraceView::Context.createEvent, opts)
|
37
37
|
end
|
38
38
|
|
39
39
|
##
|
@@ -58,6 +58,11 @@ module TraceView
|
|
58
58
|
def log_exception(layer, exn, kvs = {})
|
59
59
|
return if !TraceView.loaded || exn.instance_variable_get(:@oboe_logged)
|
60
60
|
|
61
|
+
unless exn
|
62
|
+
TV.logger.debug '[traceview/debug] log_exception called with nil exception'
|
63
|
+
return
|
64
|
+
end
|
65
|
+
|
61
66
|
kvs.merge!(:ErrorClass => exn.class.name,
|
62
67
|
:ErrorMsg => exn.message,
|
63
68
|
:Backtrace => exn.backtrace.join("\r\n"))
|
@@ -84,6 +89,14 @@ module TraceView
|
|
84
89
|
return if !TraceView.loaded || TraceView.never? ||
|
85
90
|
(opts.key?(:URL) && ::TraceView::Util.static_asset?(opts[:URL]))
|
86
91
|
|
92
|
+
# For entry only layers (DelayedJob workers, Sidekiq workers), auto-set the tracing mode
|
93
|
+
# Don't do this if tracing mode is already :always or :never
|
94
|
+
if TraceView.through? && TraceView.entry_layer?(layer)
|
95
|
+
TraceView.logger.debug "[traceview/debug] Detected #{layer}: auto-configuring tracing mode"
|
96
|
+
TraceView::Config[:tracing_mode] = :always
|
97
|
+
end
|
98
|
+
|
99
|
+
# Used by JRuby/Java webservers such as Tomcat
|
87
100
|
TraceView::Context.fromString(xtrace) if TraceView.pickup_context?(xtrace)
|
88
101
|
|
89
102
|
if TraceView.tracing?
|
@@ -132,12 +145,12 @@ module TraceView
|
|
132
145
|
#
|
133
146
|
# Returns an xtrace metadata string
|
134
147
|
def log_end(layer, opts = {})
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
148
|
+
return unless TraceView.loaded
|
149
|
+
|
150
|
+
log_event(layer, 'exit', TraceView::Context.createEvent, opts)
|
151
|
+
xtrace = TraceView::Context.toString
|
152
|
+
TraceView::Context.clear unless TraceView.has_incoming_context?
|
153
|
+
xtrace
|
141
154
|
end
|
142
155
|
|
143
156
|
##
|
@@ -157,10 +170,10 @@ module TraceView
|
|
157
170
|
#
|
158
171
|
# Returns an xtrace metadata string
|
159
172
|
def log_entry(layer, kvs = {}, op = nil)
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
173
|
+
return unless TraceView.loaded
|
174
|
+
|
175
|
+
TraceView.layer_op = op if op
|
176
|
+
log_event(layer, 'entry', TraceView::Context.createEvent, kvs)
|
164
177
|
end
|
165
178
|
|
166
179
|
##
|
@@ -179,9 +192,9 @@ module TraceView
|
|
179
192
|
#
|
180
193
|
# Returns an xtrace metadata string
|
181
194
|
def log_info(layer, kvs = {})
|
182
|
-
|
183
|
-
|
184
|
-
|
195
|
+
return unless TraceView.loaded
|
196
|
+
|
197
|
+
log_event(layer, 'info', TraceView::Context.createEvent, kvs)
|
185
198
|
end
|
186
199
|
|
187
200
|
##
|
@@ -201,10 +214,10 @@ module TraceView
|
|
201
214
|
#
|
202
215
|
# Returns an xtrace metadata string
|
203
216
|
def log_exit(layer, kvs = {}, op = nil)
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
217
|
+
return unless TraceView.loaded
|
218
|
+
|
219
|
+
TraceView.layer_op = nil if op
|
220
|
+
log_event(layer, 'exit', TraceView::Context.createEvent, kvs)
|
208
221
|
end
|
209
222
|
|
210
223
|
##
|
@@ -227,36 +240,36 @@ module TraceView
|
|
227
240
|
# TraceView::API.log_event(:layer_name, 'exit', exit_event, { :id => @user.id })
|
228
241
|
#
|
229
242
|
def log_event(layer, label, event, opts = {})
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
end
|
257
|
-
|
258
|
-
|
259
|
-
|
243
|
+
return unless TraceView.loaded
|
244
|
+
|
245
|
+
event.addInfo('Layer', layer.to_s) if layer
|
246
|
+
event.addInfo('Label', label.to_s)
|
247
|
+
|
248
|
+
TraceView.layer = layer if label == 'entry'
|
249
|
+
TraceView.layer = nil if label == 'exit'
|
250
|
+
|
251
|
+
opts.each do |k, v|
|
252
|
+
value = nil
|
253
|
+
|
254
|
+
next unless valid_key? k
|
255
|
+
|
256
|
+
if [Integer, Float, Fixnum, NilClass, String].include?(v.class)
|
257
|
+
value = v
|
258
|
+
elsif v.class == Set
|
259
|
+
value = v.to_a.to_s
|
260
|
+
else
|
261
|
+
value = v.to_s if v.respond_to?(:to_s)
|
262
|
+
end
|
263
|
+
|
264
|
+
begin
|
265
|
+
event.addInfo(k.to_s, value)
|
266
|
+
rescue ArgumentError => e
|
267
|
+
TraceView.logger.debug "[TraceView/debug] Couldn't add event KV: #{k} => #{v.class}"
|
268
|
+
TraceView.logger.debug "[TraceView/debug] #{e.message}"
|
269
|
+
end
|
270
|
+
end if !opts.nil? && opts.any?
|
271
|
+
|
272
|
+
TraceView::Reporter.sendReport(event)
|
260
273
|
end
|
261
274
|
end
|
262
275
|
end
|
@@ -13,17 +13,18 @@ module TraceView
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def remote_host(key)
|
16
|
-
return unless defined?(Lib.memcached_server_by_key)
|
17
|
-
|
16
|
+
return unless defined?(Lib.memcached_server_by_key) &&
|
17
|
+
defined?(@struct) && defined?(is_unix_socket?)
|
18
18
|
|
19
19
|
server_as_array = Lib.memcached_server_by_key(@struct, key.to_s)
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
20
|
+
|
21
|
+
return unless server_as_array.is_a?(Array)
|
22
|
+
|
23
|
+
server = server_as_array.first
|
24
|
+
if is_unix_socket?(server)
|
25
|
+
'localhost'
|
26
|
+
elsif defined?(server.hostname)
|
27
|
+
server.hostname
|
27
28
|
end
|
28
29
|
end
|
29
30
|
end
|
@@ -69,13 +69,12 @@ module TraceView
|
|
69
69
|
# TraceView::API.profile_method(Array, :sort, opts)
|
70
70
|
#
|
71
71
|
def profile_method(klass, method, opts = {}, extra_kvs = {})
|
72
|
-
|
73
72
|
# If we're on an unsupported platform (ahem Mac), just act
|
74
73
|
# like we did something to nicely play the no-op part.
|
75
74
|
return true unless TraceView.loaded
|
76
75
|
|
77
76
|
if RUBY_VERSION < '1.9.3'
|
78
|
-
TraceView.logger.warn
|
77
|
+
TraceView.logger.warn '[traceview/error] profile_method: Use the legacy method profiling for Ruby versions before 1.9.3'
|
79
78
|
return false
|
80
79
|
|
81
80
|
elsif !klass.is_a?(Module)
|
@@ -110,7 +109,7 @@ module TraceView
|
|
110
109
|
|
111
110
|
# Check if already profiled
|
112
111
|
if klass.instance_methods.include?(with_traceview.to_sym) ||
|
113
|
-
|
112
|
+
klass.singleton_methods.include?(with_traceview.to_sym)
|
114
113
|
TraceView.logger.warn "[traceview/error] profile_method: #{klass}::#{method} already profiled."
|
115
114
|
TraceView.logger.warn "[traceview/error] profile_method: #{__FILE__}:#{__LINE__}"
|
116
115
|
return false
|
@@ -130,17 +129,17 @@ module TraceView
|
|
130
129
|
|
131
130
|
if instance_method
|
132
131
|
klass.class_eval do
|
133
|
-
define_method(with_traceview)
|
132
|
+
define_method(with_traceview) do |*args, &block|
|
134
133
|
profile_wrapper(without_traceview, report_kvs, opts, *args, &block)
|
135
|
-
|
134
|
+
end
|
136
135
|
|
137
136
|
alias_method without_traceview, "#{method}"
|
138
137
|
alias_method "#{method}", with_traceview
|
139
138
|
end
|
140
139
|
elsif class_method
|
141
|
-
klass.define_singleton_method(with_traceview)
|
140
|
+
klass.define_singleton_method(with_traceview) do |*args, &block|
|
142
141
|
profile_wrapper(without_traceview, report_kvs, opts, *args, &block)
|
143
|
-
|
142
|
+
end
|
144
143
|
|
145
144
|
klass.singleton_class.class_eval do
|
146
145
|
alias_method without_traceview, "#{method}"
|