traceview 3.8.2 → 3.8.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -1
- data/gemfiles/frameworks.gemfile +12 -8
- data/gemfiles/libraries.gemfile +17 -3
- data/lib/traceview/api/layerinit.rb +2 -4
- data/lib/traceview/inst/curb.rb +5 -6
- data/lib/traceview/inst/sequel.rb +9 -1
- data/lib/traceview/inst/sidekiq-client.rb +1 -1
- data/lib/traceview/version.rb +1 -1
- data/test/benchmarks/allocations_test.rb +14 -0
- data/test/benchmarks/tracing_api_test.rb +15 -0
- data/test/instrumentation/excon_test.rb +3 -3
- data/test/instrumentation/rest-client_test.rb +1 -1
- data/test/instrumentation/sequel_mysql2_test.rb +25 -6
- data/test/instrumentation/sidekiq-client_test.rb +1 -1
- data/test/servers/delayed_job.rb +4 -14
- data/test/servers/rackapp_8101.rb +3 -0
- data/test/servers/rails3x_8140.rb +8 -33
- data/test/servers/rails4x_8140.rb +8 -35
- data/test/servers/rails5x_8140.rb +6 -33
- data/test/servers/rails5x_api_8150.rb +7 -38
- data/test/servers/sidekiq.rb +3 -1
- data/test/servers/sidekiq_initializer.rb +3 -0
- data/test/support/noop_test.rb +3 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32b865d51e3fb70e212c5fb02f043c1af940dff1
|
4
|
+
data.tar.gz: 37f29c3fc9cb2caf79a5e872e39e5f058e622f2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2415dbcc5597523fae2e474c6f2c1c90900a9b6f800e35fc6b23fb8c63b8139fdcba2ab27c690b6dd674a1cb9d87fc9e5dababb6fe6f9aa6ecaea4e6562a09fd
|
7
|
+
data.tar.gz: b362aa442657b6b8161e7fc82fc01b5cf7a3834d3780a0a44f9f63927a10c0cfdf9e4d5e1ed35987d97c2030ba298dbe6259a142670ba9ba674b8a99d5b8acda
|
data/CHANGELOG.md
CHANGED
@@ -4,7 +4,20 @@ https://github.com/appneta/ruby-traceview/releases
|
|
4
4
|
|
5
5
|
Dates in this file are in the format MM/DD/YYYY.
|
6
6
|
|
7
|
-
# traceview 3.8.
|
7
|
+
# traceview 3.8.3 (08/29/2016)
|
8
|
+
|
9
|
+
This patch release includes the following fixes:
|
10
|
+
|
11
|
+
* Updates to test suite: Rails servers and Curb instrumentation
|
12
|
+
* Updated Sequel instrumentation to follow latest gem changes: bc2b715b6fd6575de2969e25705ec1fd8e51c236
|
13
|
+
* Updated Excon instrumentation to follow latest gem changes: c35ac53d6fd614e86d388e3f6c0f050341cc4f37
|
14
|
+
|
15
|
+
Pushed to Rubygems:
|
16
|
+
|
17
|
+
https://rubygems.org/gems/traceview/versions/3.8.3
|
18
|
+
https://rubygems.org/gems/traceview/versions/3.8.3-java
|
19
|
+
|
20
|
+
# traceview 3.8.2 (06/09/2016)
|
8
21
|
|
9
22
|
This patch release includes the following fixes:
|
10
23
|
|
data/gemfiles/frameworks.gemfile
CHANGED
@@ -16,7 +16,8 @@ end
|
|
16
16
|
|
17
17
|
# New mime-types/mime-types-data requires ruby 2.0
|
18
18
|
if RUBY_VERSION < '2.0'
|
19
|
-
|
19
|
+
# these gems dropped suport for < ruby version 2.0
|
20
|
+
gem 'json', '< 2.0.0'
|
20
21
|
end
|
21
22
|
|
22
23
|
if defined?(JRUBY_VERSION)
|
@@ -25,15 +26,18 @@ else
|
|
25
26
|
gem 'sinatra'
|
26
27
|
end
|
27
28
|
|
28
|
-
|
29
|
+
if RUBY_VERSION > '1.9.3'
|
30
|
+
gem "grape"
|
29
31
|
|
30
|
-
if defined?(JRUBY_VERSION)
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
else
|
35
|
-
|
32
|
+
if defined?(JRUBY_VERSION)
|
33
|
+
# Limit padrino gem under JRuby as version 0.13.0 throws
|
34
|
+
# a bundler load error
|
35
|
+
gem "padrino", '< 0.13.0'
|
36
|
+
else
|
37
|
+
gem 'padrino'
|
38
|
+
end
|
36
39
|
end
|
37
40
|
|
41
|
+
|
38
42
|
gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
|
39
43
|
# vim:syntax=ruby
|
data/gemfiles/libraries.gemfile
CHANGED
@@ -1,15 +1,21 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
|
3
|
+
|
3
4
|
if RUBY_VERSION >= '1.9.3'
|
4
|
-
# rest-client depends on mime-types gem which only supports
|
5
|
-
# ruby 1.9.3 and up
|
6
|
-
gem 'rest-client'
|
7
5
|
gem 'moped'
|
8
6
|
gem 'eventmachine', '< 1.2.0'
|
9
7
|
gem 'em-synchrony'
|
10
8
|
gem 'em-http-request'
|
11
9
|
end
|
12
10
|
|
11
|
+
if RUBY_VERSION >= '2.0.0'
|
12
|
+
# rest-client depends on mime-types gem which only supports
|
13
|
+
# ruby 1.9.3 and up. Latest rest-client only
|
14
|
+
# supports Ruby 2.0+
|
15
|
+
gem 'rest-client'
|
16
|
+
end
|
17
|
+
|
18
|
+
|
13
19
|
group :development, :test do
|
14
20
|
gem 'minitest'
|
15
21
|
gem 'minitest-reporters', '< 1.0.18'
|
@@ -32,8 +38,16 @@ else
|
|
32
38
|
gem 'sinatra'
|
33
39
|
end
|
34
40
|
|
41
|
+
if RUBY_VERSION.between?('1.8.7', '1.9.3')
|
42
|
+
# Nothing
|
43
|
+
elsif RUBY_VERSION == '1.9.3'
|
44
|
+
gem 'mime-types', '< 3.0'
|
45
|
+
end
|
46
|
+
|
35
47
|
if RUBY_VERSION < '2.0.0'
|
36
48
|
gem 'bunny', '< 2.0.0'
|
49
|
+
# these gems dropped suport for < ruby version 2.0
|
50
|
+
gem 'json', '< 2.0.0'
|
37
51
|
else
|
38
52
|
gem 'bunny'
|
39
53
|
end
|
@@ -11,11 +11,9 @@ module TraceView
|
|
11
11
|
# layer.
|
12
12
|
#
|
13
13
|
def report_init(layer = :rack)
|
14
|
-
# Don't send __Init in
|
14
|
+
# Don't send __Init in test or if we're
|
15
15
|
# isn't fully loaded (e.g. missing c-extension)
|
16
|
-
return if
|
17
|
-
ENV.key?('TRACEVIEW_GEM_TEST') ||
|
18
|
-
!TraceView.loaded
|
16
|
+
return if ENV.key?('TRACEVIEW_GEM_TEST') || !TraceView.loaded
|
19
17
|
|
20
18
|
platform_info = TraceView::Util.build_init_report
|
21
19
|
|
data/lib/traceview/inst/curb.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c)
|
1
|
+
# Copyright (c) 2016 AppNeta, Inc.
|
2
2
|
# All rights reserved.
|
3
3
|
|
4
4
|
module TraceView
|
@@ -38,7 +38,10 @@ module TraceView
|
|
38
38
|
kvs
|
39
39
|
rescue => e
|
40
40
|
TraceView.logger.debug "[traceview/debug] Error capturing curb KVs: #{e.message}"
|
41
|
-
|
41
|
+
if TraceView::Config[:verbose]
|
42
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}"
|
43
|
+
TraceView.logger.debug e.backtrace.join('\n')
|
44
|
+
end
|
42
45
|
ensure
|
43
46
|
return kvs
|
44
47
|
end
|
@@ -78,9 +81,6 @@ module TraceView
|
|
78
81
|
kvs[:Location] = headers["Location"]
|
79
82
|
end
|
80
83
|
|
81
|
-
# Curb only provides a single long string of all response headers (yuck!). So we are forced
|
82
|
-
# to process that string to pull out the response X-Trace value.
|
83
|
-
# Taken from https://stackoverflow.com/questions/14345805/curb-get-response-headers
|
84
84
|
_, *response_headers = header_str.split(/[\r\n]+/).map(&:strip)
|
85
85
|
response_headers = Hash[response_headers.flat_map{ |s| s.scan(/^(\S+): (.+)/) }]
|
86
86
|
|
@@ -97,7 +97,6 @@ module TraceView
|
|
97
97
|
ensure
|
98
98
|
TraceView::API.log_exit(:curb, kvs)
|
99
99
|
end
|
100
|
-
|
101
100
|
end
|
102
101
|
end # CurlUtility
|
103
102
|
|
@@ -19,6 +19,15 @@ module TraceView
|
|
19
19
|
def extract_trace_details(sql, opts)
|
20
20
|
kvs = {}
|
21
21
|
|
22
|
+
if !sql.is_a?(String)
|
23
|
+
kvs[:IsPreparedStatement] = true
|
24
|
+
end
|
25
|
+
|
26
|
+
if ::Sequel::VERSION > '4.36.0' && !sql.is_a?(String)
|
27
|
+
# In 4.37.0, sql was converted to a prepared statement object
|
28
|
+
sql = sql.prepared_sql unless sql.is_a?(Symbol)
|
29
|
+
end
|
30
|
+
|
22
31
|
if TraceView::Config[:sanitize_sql]
|
23
32
|
# Sanitize SQL and don't report binds
|
24
33
|
if sql.is_a?(Symbol)
|
@@ -31,7 +40,6 @@ module TraceView
|
|
31
40
|
kvs[:Query] = sql.to_s
|
32
41
|
kvs[:QueryArgs] = opts[:arguments] if opts.is_a?(Hash) && opts.key?(:arguments)
|
33
42
|
end
|
34
|
-
kvs[:IsPreparedStatement] = true if sql.is_a?(Symbol)
|
35
43
|
|
36
44
|
kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:sequel][:collect_backtraces]
|
37
45
|
|
data/lib/traceview/version.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Copyright (c) 2015 AppNeta, Inc.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
require 'minitest_helper'
|
5
|
+
|
6
|
+
class BenchAllocations < Minitest::Test
|
7
|
+
def test_trace_api
|
8
|
+
assert_allocations 42 do
|
9
|
+
TraceView::API.start_trace('bench') do
|
10
|
+
nil
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Copyright (c) 2015 AppNeta, Inc.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
require 'minitest_helper'
|
5
|
+
|
6
|
+
class BenchTracingAPI < MiniTest::Benchmark
|
7
|
+
def bench_api
|
8
|
+
skip
|
9
|
+
assert_performance_linear 0.99 do |input|
|
10
|
+
TraceView::API.start_trace('bench') do
|
11
|
+
nil
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -169,9 +169,9 @@ class ExconTest < Minitest::Test
|
|
169
169
|
assert_equal 'GET', traces[1]['HTTPMethod']
|
170
170
|
assert traces[1].key?('Backtrace')
|
171
171
|
|
172
|
-
assert_equal 'excon',
|
173
|
-
assert_equal 'error',
|
174
|
-
assert_equal "Excon::
|
172
|
+
assert_equal 'excon', traces[2]['Layer']
|
173
|
+
assert_equal 'error', traces[2]['Label']
|
174
|
+
assert_equal "Excon::Error::Socket", traces[2]['ErrorClass']
|
175
175
|
assert traces[2].key?('ErrorMsg')
|
176
176
|
assert traces[2].key?('Backtrace')
|
177
177
|
|
@@ -269,10 +269,17 @@ if defined?(::Sequel) && !defined?(JRUBY_VERSION)
|
|
269
269
|
validate_outer_layers(traces, 'sequel_test')
|
270
270
|
|
271
271
|
validate_event_keys(traces[1], @entry_kvs)
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
272
|
+
if ::Sequel::VERSION > '4.36.0'
|
273
|
+
traces[1]['Query'].must_equal "SELECT * FROM `items` WHERE (`name` = ?)"
|
274
|
+
traces[1].has_key?('Backtrace').must_equal TraceView::Config[:sequel][:collect_backtraces]
|
275
|
+
traces[3]['Query'].must_equal "DELETE FROM `items` WHERE (`name` = ?)"
|
276
|
+
traces[3].has_key?('Backtrace').must_equal TraceView::Config[:sequel][:collect_backtraces]
|
277
|
+
else
|
278
|
+
traces[1]['Query'].must_equal "SELECT * FROM `items` WHERE (`name` = 'abc')"
|
279
|
+
traces[1].has_key?('Backtrace').must_equal TraceView::Config[:sequel][:collect_backtraces]
|
280
|
+
traces[3]['Query'].must_equal "DELETE FROM `items` WHERE (`name` = 'cba')"
|
281
|
+
traces[3].has_key?('Backtrace').must_equal TraceView::Config[:sequel][:collect_backtraces]
|
282
|
+
end
|
276
283
|
validate_event_keys(traces[2], @exit_kvs)
|
277
284
|
end
|
278
285
|
|
@@ -290,7 +297,13 @@ if defined?(::Sequel) && !defined?(JRUBY_VERSION)
|
|
290
297
|
validate_outer_layers(traces, 'sequel_test')
|
291
298
|
|
292
299
|
validate_event_keys(traces[1], @entry_kvs)
|
293
|
-
|
300
|
+
|
301
|
+
if ::Sequel::VERSION > '4.36.0'
|
302
|
+
traces[1]['Query'].must_equal "SELECT * FROM `items` WHERE (`name` = ?)"
|
303
|
+
else
|
304
|
+
traces[1]['Query'].must_equal "select_by_name"
|
305
|
+
end
|
306
|
+
|
294
307
|
if RUBY_VERSION < "1.9"
|
295
308
|
traces[1]['QueryArgs'].must_equal "abc"
|
296
309
|
else
|
@@ -316,7 +329,13 @@ if defined?(::Sequel) && !defined?(JRUBY_VERSION)
|
|
316
329
|
validate_outer_layers(traces, 'sequel_test')
|
317
330
|
|
318
331
|
validate_event_keys(traces[1], @entry_kvs)
|
319
|
-
|
332
|
+
|
333
|
+
if ::Sequel::VERSION > '4.36.0'
|
334
|
+
traces[1]['Query'].must_equal "SELECT * FROM `items` WHERE (`name` = ?)"
|
335
|
+
else
|
336
|
+
traces[1]['Query'].must_equal "select_by_name"
|
337
|
+
end
|
338
|
+
|
320
339
|
traces[1]['QueryArgs'].must_equal nil
|
321
340
|
traces[1]['IsPreparedStatement'].must_equal "true"
|
322
341
|
traces[1].has_key?('Backtrace').must_equal TraceView::Config[:sequel][:collect_backtraces]
|
@@ -36,7 +36,7 @@ if RUBY_VERSION >= '2.0' && !defined?(JRUBY_VERSION)
|
|
36
36
|
assert_equal 'sidekiq-client', traces[1]['Layer']
|
37
37
|
assert_equal 'entry', traces[1]['Label']
|
38
38
|
|
39
|
-
assert_equal '
|
39
|
+
assert_equal 'pushq', traces[1]['Spec']
|
40
40
|
assert_equal 'sidekiq', traces[1]['Flavor']
|
41
41
|
assert_equal 'critical', traces[1]['Queue']
|
42
42
|
assert_equal jid, traces[1]['MsgID']
|
data/test/servers/delayed_job.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
# Copyright (c) 2015 AppNeta, Inc.
|
2
2
|
# All rights reserved.
|
3
3
|
|
4
|
+
# This is a Rails app that launches a DelayedJob worker
|
5
|
+
# in a background thread.
|
6
|
+
#
|
4
7
|
require "rails/all"
|
5
8
|
require "delayed_job"
|
6
|
-
require "action_controller/railtie"
|
9
|
+
require "action_controller/railtie"
|
7
10
|
require 'rack/handler/puma'
|
8
11
|
require File.expand_path(File.dirname(__FILE__) + '/../models/widget')
|
9
12
|
|
@@ -30,25 +33,12 @@ class Rails40MetalStack < Rails::Application
|
|
30
33
|
get "/hello/metal" => "ferro#world"
|
31
34
|
end
|
32
35
|
|
33
|
-
# Enable cache classes. Production style.
|
34
36
|
config.cache_classes = true
|
35
37
|
config.eager_load = false
|
36
|
-
|
37
|
-
# uncomment below to display errors
|
38
|
-
# config.consider_all_requests_local = true
|
39
|
-
|
40
38
|
config.active_support.deprecation = :stderr
|
41
|
-
|
42
|
-
# Here you could remove some middlewares, for example
|
43
|
-
# Rack::Lock, ActionDispatch::Flash and ActionDispatch::BestStandardsSupport below.
|
44
|
-
# The remaining stack is printed on rackup (for fun!).
|
45
|
-
# Rails API has config.middleware.api_only! to get
|
46
|
-
# rid of browser related middleware.
|
47
39
|
config.middleware.delete "Rack::Lock"
|
48
40
|
config.middleware.delete "ActionDispatch::Flash"
|
49
41
|
config.middleware.delete "ActionDispatch::BestStandardsSupport"
|
50
|
-
|
51
|
-
# We need a secret token for session, cookies, etc.
|
52
42
|
config.secret_token = "49837489qkuweoiuoqwehisuakshdjksadhaisdy78o34y138974xyqp9rmye8yrpiokeuioqwzyoiuxftoyqiuxrhm3iou1hrzmjk"
|
53
43
|
config.secret_key_base = "2048671-96803948"
|
54
44
|
end
|
@@ -1,29 +1,17 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
#
|
4
|
-
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
# bundle exec RAILS_ENV=production rackup -p 3000 -s thin
|
9
|
-
#
|
10
|
-
# And access:
|
11
|
-
#
|
12
|
-
# http://localhost:3000/hello/world
|
1
|
+
##
|
2
|
+
# Copyright (c) 2016 AppNeta, Inc.
|
3
|
+
# All rights reserved.
|
4
|
+
|
5
|
+
# This is a Rails stack that launches on a background
|
6
|
+
# thread and listens on port 8140.
|
13
7
|
#
|
14
|
-
# The following lines should come as no surprise. Except by
|
15
|
-
# ActionController::Metal, it follows the same structure of
|
16
|
-
# config/application.rb, config/environment.rb and config.ru
|
17
|
-
# existing in any Rails 4 app. Here they are simply in one
|
18
|
-
# file and without the comments.
|
19
8
|
require "rails/all"
|
20
|
-
require "action_controller/railtie"
|
9
|
+
require "action_controller/railtie"
|
21
10
|
require 'rack/handler/puma'
|
22
11
|
require File.expand_path(File.dirname(__FILE__) + '/../models/widget')
|
23
12
|
|
24
13
|
TraceView.logger.info "[traceview/info] Starting background utility rails app on localhost:8140."
|
25
14
|
|
26
|
-
# Set the database. Default is postgresql.
|
27
15
|
if ENV['DBTYPE'] == 'mysql2'
|
28
16
|
TraceView::Test.set_mysql2_env
|
29
17
|
elsif ENV['DBTYPE'] == 'mysql'
|
@@ -47,26 +35,13 @@ class Rails32MetalStack < Rails::Application
|
|
47
35
|
get "/hello/db" => "hello#db"
|
48
36
|
end
|
49
37
|
|
50
|
-
# Enable cache classes. Production style.
|
51
38
|
config.cache_classes = true
|
52
39
|
config.eager_load = false
|
53
|
-
|
54
|
-
# uncomment below to display errors
|
55
|
-
# config.consider_all_requests_local = true
|
56
|
-
|
57
40
|
config.active_support.deprecation = :stderr
|
58
|
-
|
59
|
-
# Here you could remove some middlewares, for example
|
60
|
-
# Rack::Lock, ActionDispatch::Flash and ActionDispatch::BestStandardsSupport below.
|
61
|
-
# The remaining stack is printed on rackup (for fun!).
|
62
|
-
# Rails API has config.middleware.api_only! to get
|
63
|
-
# rid of browser related middleware.
|
64
41
|
config.middleware.delete "Rack::Lock"
|
65
42
|
config.middleware.delete "ActionDispatch::Flash"
|
66
43
|
config.middleware.delete "ActionDispatch::BestStandardsSupport"
|
67
|
-
|
68
|
-
# We need a secret token for session, cookies, etc.
|
69
|
-
config.secret_token = "49837489qkuweoiuoqwehisuakshdjksadhaisdy78o34y138974xyqp9rmye8yrpiokeuioqwzyoiuxftoyqiuxrhm3iou1hrzmjk"
|
44
|
+
config.secret_token = "498374i49qkuweoiuoqwehisuakshdhksadhaisdy78o34y138974xyqu9rmye8yrpiokeuioqwzyo8uxftoyqiuxrhm3iou1hrzmjk"
|
70
45
|
config.secret_key_base = "2048671-96803948"
|
71
46
|
end
|
72
47
|
|
@@ -1,31 +1,17 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
#
|
4
|
-
# Updated by: Peter Giacomo Lombardo
|
5
|
-
#
|
6
|
-
# Run this file with:
|
7
|
-
#
|
8
|
-
# bundle exec RAILS_ENV=production rackup -p 3000 -s thin
|
9
|
-
#
|
10
|
-
# And access:
|
11
|
-
#
|
12
|
-
# http://localhost:3000/hello/world
|
13
|
-
#
|
14
|
-
# The following lines should come as no surprise. Except by
|
15
|
-
# ActionController::Metal, it follows the same structure of
|
16
|
-
# config/application.rb, config/environment.rb and config.ru
|
17
|
-
# existing in any Rails 4 app. Here they are simply in one
|
18
|
-
# file and without the comments.
|
19
|
-
#
|
1
|
+
##
|
2
|
+
# Copyright (c) 2016 AppNeta, Inc.
|
3
|
+
# All rights reserved.
|
20
4
|
|
5
|
+
# This is a Rails stack that launches on a background
|
6
|
+
# thread and listens on port 8140.
|
7
|
+
#
|
21
8
|
require "rails/all"
|
22
|
-
require "action_controller/railtie"
|
9
|
+
require "action_controller/railtie"
|
23
10
|
require 'rack/handler/puma'
|
24
11
|
require File.expand_path(File.dirname(__FILE__) + '/../models/widget')
|
25
12
|
|
26
13
|
TraceView.logger.info "[traceview/info] Starting background utility rails app on localhost:8140."
|
27
14
|
|
28
|
-
# Set the database. Default is postgresql.
|
29
15
|
if ENV['DBTYPE'] == 'mysql2'
|
30
16
|
TraceView::Test.set_mysql2_env
|
31
17
|
elsif ENV['DBTYPE'] == 'mysql'
|
@@ -49,26 +35,13 @@ class Rails40MetalStack < Rails::Application
|
|
49
35
|
get "/hello/db" => "hello#db"
|
50
36
|
end
|
51
37
|
|
52
|
-
# Enable cache classes. Production style.
|
53
38
|
config.cache_classes = true
|
54
39
|
config.eager_load = false
|
55
|
-
|
56
|
-
# uncomment below to display errors
|
57
|
-
# config.consider_all_requests_local = true
|
58
|
-
|
59
40
|
config.active_support.deprecation = :stderr
|
60
|
-
|
61
|
-
# Here you could remove some middlewares, for example
|
62
|
-
# Rack::Lock, ActionDispatch::Flash and ActionDispatch::BestStandardsSupport below.
|
63
|
-
# The remaining stack is printed on rackup (for fun!).
|
64
|
-
# Rails API has config.middleware.api_only! to get
|
65
|
-
# rid of browser related middleware.
|
66
41
|
config.middleware.delete "Rack::Lock"
|
67
42
|
config.middleware.delete "ActionDispatch::Flash"
|
68
43
|
config.middleware.delete "ActionDispatch::BestStandardsSupport"
|
69
|
-
|
70
|
-
# We need a secret token for session, cookies, etc.
|
71
|
-
config.secret_token = "49837489qkuweoiuoqwehisuakshdjksadhaisdy78o34y138974xyqp9rmye8yrpiokeuioqwzyoiuxftoyqiuxrhm3iou1hrzmjk"
|
44
|
+
config.secret_token = "49830489qkuweoiuoqwehisuakshdjksadhaisdy78o34y138974xyqp9rmye8yypiokeuioqwzyoiuxftoyqiuxrhm3iou1hrzmjk"
|
72
45
|
config.secret_key_base = "2048671-96803948"
|
73
46
|
end
|
74
47
|
|
@@ -1,24 +1,10 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
#
|
4
|
-
# Updated by: Peter Giacomo Lombardo
|
5
|
-
#
|
6
|
-
# Run this file with:
|
7
|
-
#
|
8
|
-
# bundle exec RAILS_ENV=production rackup -p 3000 -s thin
|
9
|
-
#
|
10
|
-
# And access:
|
11
|
-
#
|
12
|
-
# http://localhost:3000/hello/world
|
13
|
-
#
|
14
|
-
# The following lines should come as no surprise. Except by
|
15
|
-
# ActionController::Metal, it follows the same structure of
|
16
|
-
# config/application.rb, config/environment.rb and config.ru
|
17
|
-
# existing in any Rails 4 app. Here they are simply in one
|
18
|
-
# file and without the comments.
|
19
|
-
#
|
1
|
+
##
|
2
|
+
# Copyright (c) 2016 AppNeta, Inc.
|
3
|
+
# All rights reserved.
|
20
4
|
|
21
|
-
#
|
5
|
+
# This is a Rails stack that launches on a background
|
6
|
+
# thread and listens on port 8140.
|
7
|
+
#
|
22
8
|
if ENV['DBTYPE'] == 'mysql2'
|
23
9
|
TraceView::Test.set_mysql2_env
|
24
10
|
elsif ENV['DBTYPE'] == 'postgresql'
|
@@ -49,24 +35,11 @@ class Rails50MetalStack < Rails::Application
|
|
49
35
|
get "/hello/db" => "hello#db"
|
50
36
|
end
|
51
37
|
|
52
|
-
# Enable cache classes. Production style.
|
53
38
|
config.cache_classes = true
|
54
39
|
config.eager_load = false
|
55
|
-
|
56
|
-
# uncomment below to display errors
|
57
|
-
# config.consider_all_requests_local = true
|
58
|
-
|
59
40
|
config.active_support.deprecation = :stderr
|
60
|
-
|
61
|
-
# Here you could remove some middlewares, for example
|
62
|
-
# Rack::Lock, ActionDispatch::Flash and ActionDispatch::BestStandardsSupport below.
|
63
|
-
# The remaining stack is printed on rackup (for fun!).
|
64
|
-
# Rails API has config.middleware.api_only! to get
|
65
|
-
# rid of browser related middleware.
|
66
41
|
config.middleware.delete Rack::Lock
|
67
42
|
config.middleware.delete ActionDispatch::Flash
|
68
|
-
|
69
|
-
# We need a secret token for session, cookies, etc.
|
70
43
|
config.secret_token = "49837489qkuweoiuoqwehisuakshdjksadhaisdy78o34y138974xyqp9rmye8yrpiokeuioqwzyoiuxftoyqiuxrhm3iou1hrzmjk"
|
71
44
|
config.secret_key_base = "2048671-96803948"
|
72
45
|
end
|
@@ -1,24 +1,10 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
#
|
4
|
-
# Updated by: Peter Giacomo Lombardo
|
5
|
-
#
|
6
|
-
# Run this file with:
|
7
|
-
#
|
8
|
-
# bundle exec RAILS_ENV=production rackup -p 3000 -s thin
|
9
|
-
#
|
10
|
-
# And access:
|
11
|
-
#
|
12
|
-
# http://localhost:3000/hello/world
|
13
|
-
#
|
14
|
-
# The following lines should come as no surprise. Except by
|
15
|
-
# ActionController::Metal, it follows the same structure of
|
16
|
-
# config/application.rb, config/environment.rb and config.ru
|
17
|
-
# existing in any Rails 4 app. Here they are simply in one
|
18
|
-
# file and without the comments.
|
19
|
-
#
|
1
|
+
##
|
2
|
+
# Copyright (c) 2016 AppNeta, Inc.
|
3
|
+
# All rights reserved.
|
20
4
|
|
21
|
-
#
|
5
|
+
# This is a Rails API stack that launches on a background
|
6
|
+
# thread and listens on port 8150.
|
7
|
+
#
|
22
8
|
if ENV['DBTYPE'] == 'mysql2'
|
23
9
|
TraceView::Test.set_mysql2_env
|
24
10
|
elsif ENV['DBTYPE'] == 'postgresql'
|
@@ -30,7 +16,6 @@ else
|
|
30
16
|
end
|
31
17
|
|
32
18
|
require "rails"
|
33
|
-
# Pick the frameworks you want:
|
34
19
|
require "active_model/railtie"
|
35
20
|
require "active_job/railtie"
|
36
21
|
require "active_record/railtie"
|
@@ -38,7 +23,6 @@ require "action_controller/railtie"
|
|
38
23
|
require "action_mailer/railtie"
|
39
24
|
require "action_view/railtie"
|
40
25
|
require "action_cable/engine"
|
41
|
-
# require "sprockets/railtie"
|
42
26
|
require "rails/test_unit/railtie"
|
43
27
|
|
44
28
|
require 'rack/handler/puma'
|
@@ -61,24 +45,11 @@ module Rails50APIStack
|
|
61
45
|
get "/monkey/error" => "monkey#error"
|
62
46
|
end
|
63
47
|
|
64
|
-
# Enable cache classes. Production style.
|
65
48
|
config.cache_classes = true
|
66
49
|
config.eager_load = false
|
67
|
-
|
68
|
-
# uncomment below to display errors
|
69
|
-
# config.consider_all_requests_local = true
|
70
|
-
|
71
50
|
config.active_support.deprecation = :stderr
|
72
|
-
|
73
|
-
# Here you could remove some middlewares, for example
|
74
|
-
# Rack::Lock, ActionDispatch::Flash and ActionDispatch::BestStandardsSupport below.
|
75
|
-
# The remaining stack is printed on rackup (for fun!).
|
76
|
-
# Rails API has config.middleware.api_only! to get
|
77
|
-
# rid of browser related middleware.
|
78
51
|
config.middleware.delete Rack::Lock
|
79
52
|
config.middleware.delete ActionDispatch::Flash
|
80
|
-
|
81
|
-
# We need a secret token for session, cookies, etc.
|
82
53
|
config.secret_token = "48837489qkuweoiuoqwehisuakshdjksadhaisdy78o34y138974xyqp9rmye8yrpiokeuioqwzyoiuxftoyqiuxrhm3iou1hrzmjk"
|
83
54
|
config.secret_key_base = "2049671-96803948"
|
84
55
|
end
|
@@ -90,9 +61,7 @@ end
|
|
90
61
|
|
91
62
|
class MonkeyController < ActionController::API
|
92
63
|
def hello
|
93
|
-
|
94
|
-
# Work around for Rails beta issue with rendering json
|
95
|
-
render :plain => { :Response => "Hello API!"}.to_json, content_type: 'application/json'
|
64
|
+
render :plain => {:Response => "Hello API!"}.to_json, content_type: 'application/json'
|
96
65
|
end
|
97
66
|
|
98
67
|
def error
|
data/test/servers/sidekiq.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
# Copyright (c) 2015 AppNeta, Inc.
|
2
2
|
# All rights reserved.
|
3
3
|
|
4
|
+
# We configure and launch Sidekiq in a background
|
5
|
+
# thread here.
|
6
|
+
#
|
4
7
|
require 'sidekiq/cli'
|
5
8
|
|
6
9
|
TraceView.logger.info "[traceview/servers] Starting up background Sidekiq."
|
@@ -18,7 +21,6 @@ end
|
|
18
21
|
|
19
22
|
TraceView.logger.debug "[traceview/servers] sidekiq #{arguments}"
|
20
23
|
|
21
|
-
# Boot Sidekiq in a new thread
|
22
24
|
Thread.new do
|
23
25
|
system("OBOE_GEM_TEST=true sidekiq #{arguments}")
|
24
26
|
end
|
data/test/support/noop_test.rb
CHANGED
@@ -56,6 +56,9 @@ class NoopTest < Minitest::Test
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def test_method_profiling_doesnt_barf
|
59
|
+
# FIXME: Skip this because it screws up tests that follow this one
|
60
|
+
# We should put in a way to remove custom instrumentation from a running process.
|
61
|
+
skip
|
59
62
|
TraceView::API.profile_method(Array, :sort)
|
60
63
|
|
61
64
|
x = [1, 3, 2]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: traceview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.8.
|
4
|
+
version: 3.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Giacomo Lombardo
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-08-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -207,6 +207,8 @@ files:
|
|
207
207
|
- lib/traceview/util.rb
|
208
208
|
- lib/traceview/version.rb
|
209
209
|
- lib/traceview/xtrace.rb
|
210
|
+
- test/benchmarks/allocations_test.rb
|
211
|
+
- test/benchmarks/tracing_api_test.rb
|
210
212
|
- test/frameworks/apps/grape_nested.rb
|
211
213
|
- test/frameworks/apps/grape_simple.rb
|
212
214
|
- test/frameworks/apps/padrino_simple.rb
|
@@ -358,6 +360,8 @@ test_files:
|
|
358
360
|
- test/instrumentation/mongo_v1_test.rb
|
359
361
|
- test/reporter/reporter_test.rb
|
360
362
|
- test/models/widget.rb
|
363
|
+
- test/benchmarks/tracing_api_test.rb
|
364
|
+
- test/benchmarks/allocations_test.rb
|
361
365
|
- test/profiling/method_profiling_test.rb
|
362
366
|
- test/profiling/legacy_method_profiling_test.rb
|
363
367
|
- test/frameworks/apps/grape_simple.rb
|