traceview 3.6.0 → 3.7.0

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.
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
-