traceview 3.6.0 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +12 -1
  3. data/CHANGELOG.md +11 -0
  4. data/CONFIG.md +22 -5
  5. data/Rakefile +2 -2
  6. data/gemfiles/delayed_job.gemfile +1 -1
  7. data/gemfiles/frameworks.gemfile +1 -1
  8. data/gemfiles/libraries.gemfile +4 -3
  9. data/gemfiles/rails31.gemfile +2 -0
  10. data/gemfiles/rails32.gemfile +5 -2
  11. data/gemfiles/rails40.gemfile +5 -3
  12. data/gemfiles/rails41.gemfile +6 -4
  13. data/gemfiles/rails42.gemfile +3 -1
  14. data/gemfiles/rails50.gemfile +43 -0
  15. data/lib/rails/generators/traceview/templates/traceview_initializer.rb +56 -32
  16. data/lib/traceview/base.rb +1 -1
  17. data/lib/traceview/frameworks/rails.rb +6 -9
  18. data/lib/traceview/frameworks/rails/inst/action_controller.rb +2 -135
  19. data/lib/traceview/frameworks/rails/inst/action_controller2.rb +59 -0
  20. data/lib/traceview/frameworks/rails/inst/action_controller3.rb +49 -0
  21. data/lib/traceview/frameworks/rails/inst/action_controller4.rb +40 -0
  22. data/lib/traceview/frameworks/rails/inst/action_controller5.rb +39 -0
  23. data/lib/traceview/frameworks/rails/inst/action_view.rb +1 -1
  24. data/lib/traceview/frameworks/rails/inst/active_record.rb +6 -3
  25. data/lib/traceview/frameworks/rails/inst/connection_adapters/postgresql.rb +1 -1
  26. data/lib/traceview/frameworks/rails/inst/connection_adapters/utils.rb +30 -36
  27. data/lib/traceview/frameworks/rails/inst/connection_adapters/utils5x.rb +100 -0
  28. data/lib/traceview/test.rb +39 -0
  29. data/lib/traceview/version.rb +1 -1
  30. data/test/frameworks/rails3x_test.rb +163 -7
  31. data/test/frameworks/rails4x_test.rb +162 -13
  32. data/test/frameworks/rails5x_test.rb +213 -0
  33. data/test/instrumentation/excon_test.rb +3 -0
  34. data/test/instrumentation/sequel_mysql2_test.rb +2 -5
  35. data/test/instrumentation/sequel_mysql_test.rb +2 -5
  36. data/test/instrumentation/sequel_pg_test.rb +2 -5
  37. data/test/minitest_helper.rb +25 -21
  38. data/test/servers/delayed_job.rb +2 -6
  39. data/test/servers/rails3x_8140.rb +16 -6
  40. data/test/servers/rails4x_8140.rb +20 -9
  41. data/test/servers/rails5x_8140.rb +112 -0
  42. metadata +13 -4
  43. data/lib/traceview/frameworks/rails/inst/connection_adapters/oracle.rb +0 -18
@@ -0,0 +1,112 @@
1
+ # Taken from: https://www.amberbit.com/blog/2014/2/14/putting-ruby-on-rails-on-a-diet/
2
+ # Port of https://gist.github.com/josevalim/1942658 to Rails 4
3
+ # Original author: Jose Valim
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
+ #
20
+
21
+ # Set the database. Default is postgresql.
22
+ if ENV['DBTYPE'] == 'mysql2'
23
+ TraceView::Test.set_mysql2_env
24
+ elsif ENV['DBTYPE'] == 'postgresql'
25
+ TraceView::Test.set_postgresql_env
26
+ else
27
+ TV.logger.warn "Unidentified DBTYPE: #{ENV['DBTYPE']}" unless ENV['DBTYPE'] == "postgresql"
28
+ TV.logger.debug "Defaulting to postgres DB for background Rails server."
29
+ TraceView::Test.set_postgresql_env
30
+ end
31
+
32
+ require "rails/all"
33
+ require "action_controller/railtie" # require more if needed
34
+ require 'rack/handler/puma'
35
+ require File.expand_path(File.dirname(__FILE__) + '/../models/widget')
36
+
37
+ TraceView.logger.info "[traceview/info] Starting background utility rails app on localhost:8140."
38
+
39
+ ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'])
40
+
41
+ unless ActiveRecord::Base.connection.table_exists? 'widgets'
42
+ ActiveRecord::Migration.run(CreateWidgets)
43
+ end
44
+
45
+ class Rails50MetalStack < Rails::Application
46
+ routes.append do
47
+ get "/hello/world" => "hello#world"
48
+ get "/hello/metal" => "ferro#world"
49
+ get "/hello/db" => "hello#db"
50
+ end
51
+
52
+ # Enable cache classes. Production style.
53
+ config.cache_classes = true
54
+ config.eager_load = false
55
+
56
+ # uncomment below to display errors
57
+ # config.consider_all_requests_local = true
58
+
59
+ 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
+ config.middleware.delete Rack::Lock
67
+ config.middleware.delete ActionDispatch::Flash
68
+
69
+ # We need a secret token for session, cookies, etc.
70
+ config.secret_token = "49837489qkuweoiuoqwehisuakshdjksadhaisdy78o34y138974xyqp9rmye8yrpiokeuioqwzyoiuxftoyqiuxrhm3iou1hrzmjk"
71
+ config.secret_key_base = "2048671-96803948"
72
+ end
73
+
74
+ #################################################
75
+ # Controllers
76
+ #################################################
77
+
78
+ class HelloController < ActionController::Base
79
+ def world
80
+ render :plain => "Hello world!"
81
+ end
82
+
83
+ def db
84
+ # Create a widget
85
+ w1 = Widget.new(:name => 'blah', :description => 'This is an amazing widget.')
86
+ w1.save
87
+
88
+ # query for that widget
89
+ w2 = Widget.where(:name => 'blah').first
90
+ w2.delete
91
+
92
+ render :plain => "Hello database!"
93
+ end
94
+ end
95
+
96
+ class FerroController < ActionController::Metal
97
+ include AbstractController::Rendering
98
+
99
+ def world
100
+ render :plain => "Hello world!"
101
+ end
102
+ end
103
+
104
+ TraceView::API.profile_method(FerroController, :world)
105
+
106
+ Rails50MetalStack.initialize!
107
+
108
+ Thread.new do
109
+ Rack::Handler::Puma.run(Rails50MetalStack.to_app, {:Host => '127.0.0.1', :Port => 8140})
110
+ end
111
+
112
+ sleep(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.6.0
4
+ version: 3.7.0
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-03-02 00:00:00.000000000 Z
12
+ date: 2016-03-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -125,6 +125,7 @@ files:
125
125
  - gemfiles/rails40.gemfile
126
126
  - gemfiles/rails41.gemfile
127
127
  - gemfiles/rails42.gemfile
128
+ - gemfiles/rails50.gemfile
128
129
  - get_version.rb
129
130
  - init.rb
130
131
  - lib/joboe_metal.rb
@@ -153,15 +154,19 @@ files:
153
154
  - lib/traceview/frameworks/rails/helpers/rum/rum_footer.js.erb
154
155
  - lib/traceview/frameworks/rails/helpers/rum/rum_header.js.erb
155
156
  - lib/traceview/frameworks/rails/inst/action_controller.rb
157
+ - lib/traceview/frameworks/rails/inst/action_controller2.rb
158
+ - lib/traceview/frameworks/rails/inst/action_controller3.rb
159
+ - lib/traceview/frameworks/rails/inst/action_controller4.rb
160
+ - lib/traceview/frameworks/rails/inst/action_controller5.rb
156
161
  - lib/traceview/frameworks/rails/inst/action_view.rb
157
162
  - lib/traceview/frameworks/rails/inst/action_view_2x.rb
158
163
  - lib/traceview/frameworks/rails/inst/action_view_30.rb
159
164
  - lib/traceview/frameworks/rails/inst/active_record.rb
160
165
  - lib/traceview/frameworks/rails/inst/connection_adapters/mysql.rb
161
166
  - lib/traceview/frameworks/rails/inst/connection_adapters/mysql2.rb
162
- - lib/traceview/frameworks/rails/inst/connection_adapters/oracle.rb
163
167
  - lib/traceview/frameworks/rails/inst/connection_adapters/postgresql.rb
164
168
  - lib/traceview/frameworks/rails/inst/connection_adapters/utils.rb
169
+ - lib/traceview/frameworks/rails/inst/connection_adapters/utils5x.rb
165
170
  - lib/traceview/frameworks/sinatra.rb
166
171
  - lib/traceview/frameworks/sinatra/templates.rb
167
172
  - lib/traceview/inst/bunny-client.rb
@@ -207,6 +212,7 @@ files:
207
212
  - test/frameworks/padrino_test.rb
208
213
  - test/frameworks/rails3x_test.rb
209
214
  - test/frameworks/rails4x_test.rb
215
+ - test/frameworks/rails5x_test.rb
210
216
  - test/frameworks/sinatra_test.rb
211
217
  - test/instrumentation/bunny_client_test.rb
212
218
  - test/instrumentation/bunny_consumer_test.rb
@@ -258,6 +264,7 @@ files:
258
264
  - test/servers/rackapp_8101.rb
259
265
  - test/servers/rails3x_8140.rb
260
266
  - test/servers/rails4x_8140.rb
267
+ - test/servers/rails5x_8140.rb
261
268
  - test/servers/sidekiq.rb
262
269
  - test/servers/sidekiq.yml
263
270
  - test/servers/sidekiq_initializer.rb
@@ -293,7 +300,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
293
300
  version: '0'
294
301
  requirements: []
295
302
  rubyforge_project:
296
- rubygems_version: 2.5.1
303
+ rubygems_version: 2.6.1
297
304
  signing_key:
298
305
  specification_version: 4
299
306
  summary: AppNeta TraceView performance instrumentation gem for Ruby
@@ -301,6 +308,7 @@ test_files:
301
308
  - test/servers/sidekiq_initializer.rb
302
309
  - test/servers/rails4x_8140.rb
303
310
  - test/servers/rails3x_8140.rb
311
+ - test/servers/rails5x_8140.rb
304
312
  - test/servers/delayed_job.rb
305
313
  - test/servers/sidekiq.rb
306
314
  - test/servers/rackapp_8101.rb
@@ -343,6 +351,7 @@ test_files:
343
351
  - test/frameworks/apps/padrino_simple.rb
344
352
  - test/frameworks/apps/grape_nested.rb
345
353
  - test/frameworks/sinatra_test.rb
354
+ - test/frameworks/rails5x_test.rb
346
355
  - test/frameworks/grape_test.rb
347
356
  - test/frameworks/rails3x_test.rb
348
357
  - test/frameworks/padrino_test.rb
@@ -1,18 +0,0 @@
1
- # Copyright (c) 2013 AppNeta, Inc.
2
- # All rights reserved.
3
-
4
- module TraceView
5
- module Inst
6
- module ConnectionAdapters
7
- module FlavorInitializers
8
- def self.oracle
9
- TraceView.logger.info '[traceview/loading] Instrumenting activerecord oracleenhancedadapter' if TraceView::Config[:verbose]
10
- ::ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.module_eval do
11
- include TraceView::Inst::ConnectionAdapters
12
- end if defined?(::ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter)
13
- end
14
- end
15
- end
16
- end
17
- end
18
-