traceview 3.0.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.
Files changed (137) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rubocop.yml +5 -0
  4. data/.travis.yml +58 -0
  5. data/Appraisals +10 -0
  6. data/CHANGELOG.md +490 -0
  7. data/CONFIG.md +16 -0
  8. data/Gemfile +95 -0
  9. data/LICENSE +199 -0
  10. data/README.md +380 -0
  11. data/Rakefile +109 -0
  12. data/examples/DNT.md +35 -0
  13. data/examples/carrying_context.rb +225 -0
  14. data/examples/instrumenting_metal_controller.rb +8 -0
  15. data/examples/puma_on_heroku_config.rb +17 -0
  16. data/examples/tracing_async_threads.rb +125 -0
  17. data/examples/tracing_background_jobs.rb +52 -0
  18. data/examples/tracing_forked_processes.rb +100 -0
  19. data/examples/unicorn_on_heroku_config.rb +28 -0
  20. data/ext/oboe_metal/extconf.rb +61 -0
  21. data/ext/oboe_metal/noop/noop.c +7 -0
  22. data/ext/oboe_metal/src/bson/bson.h +221 -0
  23. data/ext/oboe_metal/src/bson/platform_hacks.h +91 -0
  24. data/ext/oboe_metal/src/oboe.h +275 -0
  25. data/ext/oboe_metal/src/oboe.hpp +352 -0
  26. data/ext/oboe_metal/src/oboe_wrap.cxx +3886 -0
  27. data/ext/oboe_metal/tests/test.rb +11 -0
  28. data/gemfiles/mongo.gemfile +33 -0
  29. data/gemfiles/moped.gemfile +33 -0
  30. data/get_version.rb +5 -0
  31. data/init.rb +4 -0
  32. data/lib/joboe_metal.rb +206 -0
  33. data/lib/oboe/README +2 -0
  34. data/lib/oboe/backward_compatibility.rb +59 -0
  35. data/lib/oboe/inst/rack.rb +11 -0
  36. data/lib/oboe.rb +7 -0
  37. data/lib/oboe_metal.rb +151 -0
  38. data/lib/rails/generators/traceview/install_generator.rb +76 -0
  39. data/lib/rails/generators/traceview/templates/traceview_initializer.rb +159 -0
  40. data/lib/traceview/api/layerinit.rb +51 -0
  41. data/lib/traceview/api/logging.rb +209 -0
  42. data/lib/traceview/api/memcache.rb +31 -0
  43. data/lib/traceview/api/profiling.rb +50 -0
  44. data/lib/traceview/api/tracing.rb +135 -0
  45. data/lib/traceview/api/util.rb +121 -0
  46. data/lib/traceview/api.rb +18 -0
  47. data/lib/traceview/base.rb +225 -0
  48. data/lib/traceview/config.rb +238 -0
  49. data/lib/traceview/frameworks/grape.rb +97 -0
  50. data/lib/traceview/frameworks/padrino/templates.rb +58 -0
  51. data/lib/traceview/frameworks/padrino.rb +64 -0
  52. data/lib/traceview/frameworks/rails/helpers/rum/rum_ajax_header.js.erb +5 -0
  53. data/lib/traceview/frameworks/rails/helpers/rum/rum_footer.js.erb +1 -0
  54. data/lib/traceview/frameworks/rails/helpers/rum/rum_header.js.erb +3 -0
  55. data/lib/traceview/frameworks/rails/inst/action_controller.rb +216 -0
  56. data/lib/traceview/frameworks/rails/inst/action_view.rb +56 -0
  57. data/lib/traceview/frameworks/rails/inst/action_view_2x.rb +54 -0
  58. data/lib/traceview/frameworks/rails/inst/action_view_30.rb +48 -0
  59. data/lib/traceview/frameworks/rails/inst/active_record.rb +24 -0
  60. data/lib/traceview/frameworks/rails/inst/connection_adapters/mysql.rb +43 -0
  61. data/lib/traceview/frameworks/rails/inst/connection_adapters/mysql2.rb +28 -0
  62. data/lib/traceview/frameworks/rails/inst/connection_adapters/oracle.rb +18 -0
  63. data/lib/traceview/frameworks/rails/inst/connection_adapters/postgresql.rb +30 -0
  64. data/lib/traceview/frameworks/rails/inst/connection_adapters/utils.rb +117 -0
  65. data/lib/traceview/frameworks/rails.rb +145 -0
  66. data/lib/traceview/frameworks/sinatra/templates.rb +56 -0
  67. data/lib/traceview/frameworks/sinatra.rb +95 -0
  68. data/lib/traceview/inst/cassandra.rb +279 -0
  69. data/lib/traceview/inst/dalli.rb +86 -0
  70. data/lib/traceview/inst/em-http-request.rb +99 -0
  71. data/lib/traceview/inst/excon.rb +111 -0
  72. data/lib/traceview/inst/faraday.rb +73 -0
  73. data/lib/traceview/inst/http.rb +87 -0
  74. data/lib/traceview/inst/httpclient.rb +173 -0
  75. data/lib/traceview/inst/memcache.rb +102 -0
  76. data/lib/traceview/inst/memcached.rb +94 -0
  77. data/lib/traceview/inst/mongo.rb +238 -0
  78. data/lib/traceview/inst/moped.rb +474 -0
  79. data/lib/traceview/inst/rack.rb +122 -0
  80. data/lib/traceview/inst/redis.rb +271 -0
  81. data/lib/traceview/inst/resque.rb +192 -0
  82. data/lib/traceview/inst/rest-client.rb +38 -0
  83. data/lib/traceview/inst/sequel.rb +162 -0
  84. data/lib/traceview/inst/typhoeus.rb +102 -0
  85. data/lib/traceview/instrumentation.rb +21 -0
  86. data/lib/traceview/loading.rb +94 -0
  87. data/lib/traceview/logger.rb +41 -0
  88. data/lib/traceview/method_profiling.rb +84 -0
  89. data/lib/traceview/ruby.rb +36 -0
  90. data/lib/traceview/support.rb +113 -0
  91. data/lib/traceview/thread_local.rb +26 -0
  92. data/lib/traceview/util.rb +250 -0
  93. data/lib/traceview/version.rb +16 -0
  94. data/lib/traceview/xtrace.rb +90 -0
  95. data/lib/traceview.rb +62 -0
  96. data/test/frameworks/apps/grape_nested.rb +30 -0
  97. data/test/frameworks/apps/grape_simple.rb +24 -0
  98. data/test/frameworks/apps/padrino_simple.rb +45 -0
  99. data/test/frameworks/apps/sinatra_simple.rb +24 -0
  100. data/test/frameworks/grape_test.rb +142 -0
  101. data/test/frameworks/padrino_test.rb +30 -0
  102. data/test/frameworks/sinatra_test.rb +30 -0
  103. data/test/instrumentation/cassandra_test.rb +380 -0
  104. data/test/instrumentation/dalli_test.rb +171 -0
  105. data/test/instrumentation/em_http_request_test.rb +86 -0
  106. data/test/instrumentation/excon_test.rb +207 -0
  107. data/test/instrumentation/faraday_test.rb +235 -0
  108. data/test/instrumentation/http_test.rb +140 -0
  109. data/test/instrumentation/httpclient_test.rb +296 -0
  110. data/test/instrumentation/memcache_test.rb +251 -0
  111. data/test/instrumentation/memcached_test.rb +226 -0
  112. data/test/instrumentation/mongo_test.rb +462 -0
  113. data/test/instrumentation/moped_test.rb +496 -0
  114. data/test/instrumentation/rack_test.rb +116 -0
  115. data/test/instrumentation/redis_hashes_test.rb +265 -0
  116. data/test/instrumentation/redis_keys_test.rb +318 -0
  117. data/test/instrumentation/redis_lists_test.rb +310 -0
  118. data/test/instrumentation/redis_misc_test.rb +160 -0
  119. data/test/instrumentation/redis_sets_test.rb +293 -0
  120. data/test/instrumentation/redis_sortedsets_test.rb +325 -0
  121. data/test/instrumentation/redis_strings_test.rb +333 -0
  122. data/test/instrumentation/resque_test.rb +62 -0
  123. data/test/instrumentation/rest-client_test.rb +294 -0
  124. data/test/instrumentation/sequel_mysql2_test.rb +326 -0
  125. data/test/instrumentation/sequel_mysql_test.rb +326 -0
  126. data/test/instrumentation/sequel_pg_test.rb +330 -0
  127. data/test/instrumentation/typhoeus_test.rb +285 -0
  128. data/test/minitest_helper.rb +187 -0
  129. data/test/profiling/method_test.rb +198 -0
  130. data/test/servers/rackapp_8101.rb +22 -0
  131. data/test/support/backcompat_test.rb +269 -0
  132. data/test/support/config_test.rb +128 -0
  133. data/test/support/dnt_test.rb +73 -0
  134. data/test/support/liboboe_settings_test.rb +104 -0
  135. data/test/support/xtrace_test.rb +35 -0
  136. data/traceview.gemspec +29 -0
  137. metadata +248 -0
@@ -0,0 +1,128 @@
1
+ require 'minitest_helper'
2
+
3
+ describe "TraceView::Config" do
4
+ after do
5
+ # Set back to always trace mode
6
+ TraceView::Config[:tracing_mode] = "always"
7
+ TraceView::Config[:sample_rate] = 1000000
8
+ end
9
+
10
+ it 'should have the correct default values' do
11
+ # Reset TraceView::Config to defaults
12
+ TraceView::Config.initialize
13
+
14
+ # FIXME: We set the TRACEVIEW_GEM_VERBOSE env for the
15
+ # test suite so this assertion is not going to fly
16
+ #
17
+ # TraceView::Config[:verbose].must_equal false
18
+
19
+ TraceView::Config[:tracing_mode].must_equal "through"
20
+ TraceView::Config[:reporter_host].must_equal "127.0.0.1"
21
+ end
22
+
23
+ it 'should have the correct instrumentation defaults' do
24
+ # Reset TraceView::Config to defaults
25
+ TraceView::Config.initialize
26
+
27
+ instrumentation = TraceView::Config.instrumentation
28
+
29
+ # Verify the number of individual instrumentations
30
+ instrumentation.count.must_equal 21
31
+
32
+ TraceView::Config[:action_controller][:enabled].must_equal true
33
+ TraceView::Config[:action_view][:enabled].must_equal true
34
+ TraceView::Config[:active_record][:enabled].must_equal true
35
+ TraceView::Config[:cassandra][:enabled].must_equal true
36
+ TraceView::Config[:dalli][:enabled].must_equal true
37
+ TraceView::Config[:em_http_request][:enabled].must_equal false
38
+ TraceView::Config[:excon][:enabled].must_equal true
39
+ TraceView::Config[:faraday][:enabled].must_equal true
40
+ TraceView::Config[:grape][:enabled].must_equal true
41
+ TraceView::Config[:httpclient][:enabled].must_equal true
42
+ TraceView::Config[:nethttp][:enabled].must_equal true
43
+ TraceView::Config[:memcached][:enabled].must_equal true
44
+ TraceView::Config[:memcache][:enabled].must_equal true
45
+ TraceView::Config[:mongo][:enabled].must_equal true
46
+ TraceView::Config[:moped][:enabled].must_equal true
47
+ TraceView::Config[:rack][:enabled].must_equal true
48
+ TraceView::Config[:redis][:enabled].must_equal true
49
+ TraceView::Config[:resque][:enabled].must_equal true
50
+ TraceView::Config[:rest_client][:enabled].must_equal true
51
+ TraceView::Config[:sequel][:enabled].must_equal true
52
+ TraceView::Config[:typhoeus][:enabled].must_equal true
53
+
54
+ TraceView::Config[:action_controller][:log_args].must_equal true
55
+ TraceView::Config[:action_view][:log_args].must_equal true
56
+ TraceView::Config[:active_record][:log_args].must_equal true
57
+ TraceView::Config[:cassandra][:log_args].must_equal true
58
+ TraceView::Config[:dalli][:log_args].must_equal true
59
+ TraceView::Config[:em_http_request][:log_args].must_equal true
60
+ TraceView::Config[:excon][:log_args].must_equal true
61
+ TraceView::Config[:faraday][:log_args].must_equal true
62
+ TraceView::Config[:grape][:log_args].must_equal true
63
+ TraceView::Config[:httpclient][:log_args].must_equal true
64
+ TraceView::Config[:nethttp][:log_args].must_equal true
65
+ TraceView::Config[:memcached][:log_args].must_equal true
66
+ TraceView::Config[:memcache][:log_args].must_equal true
67
+ TraceView::Config[:mongo][:log_args].must_equal true
68
+ TraceView::Config[:moped][:log_args].must_equal true
69
+ TraceView::Config[:rack][:log_args].must_equal true
70
+ TraceView::Config[:redis][:log_args].must_equal true
71
+ TraceView::Config[:resque][:log_args].must_equal true
72
+ TraceView::Config[:rest_client][:log_args].must_equal true
73
+ TraceView::Config[:sequel][:log_args].must_equal true
74
+ TraceView::Config[:typhoeus][:log_args].must_equal true
75
+
76
+ TraceView::Config[:resque][:link_workers].must_equal false
77
+ TraceView::Config[:blacklist].is_a?(Array).must_equal true
78
+
79
+ TraceView::Config[:dnt_regexp].must_equal "\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|ttf|woff|svg|less)$"
80
+ TraceView::Config[:dnt_opts].must_equal Regexp::IGNORECASE
81
+ end
82
+
83
+ def test_should_obey_globals
84
+ # Reset TraceView::Config to defaults
85
+ TraceView::Config.initialize
86
+
87
+ http_clients = TraceView::Config.http_clients
88
+
89
+ # Restore these at the end
90
+ @url_query_params = TraceView::Config[:include_url_query_params]
91
+ @remote_url_params = TraceView::Config[:include_remote_url_params]
92
+
93
+ # After setting global options, the per instrumentation
94
+ # equivalents should follow suit.
95
+
96
+ #
97
+ # :include_url_query_params
98
+ #
99
+
100
+ # Check defaults
101
+ TraceView::Config[:include_url_query_params].must_equal true
102
+ http_clients.each do |i|
103
+ TraceView::Config[i][:log_args].must_equal true
104
+ end
105
+
106
+ # Check obedience
107
+ TraceView::Config[:include_url_query_params] = false
108
+ http_clients.each do |i|
109
+ TraceView::Config[i][:log_args].must_equal false
110
+ end
111
+
112
+ #
113
+ # :include_remote_url_params
114
+ #
115
+
116
+ # Check default
117
+ TraceView::Config[:include_remote_url_params].must_equal true
118
+ TraceView::Config[:rack][:log_args].must_equal true
119
+
120
+ # Check obedience
121
+ TraceView::Config[:include_remote_url_params] = false
122
+ TraceView::Config[:rack][:log_args].must_equal false
123
+
124
+ # Restore the previous values
125
+ TraceView::Config[:include_url_query_params] = @url_query_params
126
+ TraceView::Config[:include_remote_url_params] = @remote_url_params
127
+ end
128
+ end
@@ -0,0 +1,73 @@
1
+ require 'minitest_helper'
2
+ require 'rack/test'
3
+ require 'rack/lobster'
4
+ require 'traceview/inst/rack'
5
+
6
+ class RackTestApp < Minitest::Test
7
+ include Rack::Test::Methods
8
+
9
+ def app
10
+ @app = Rack::Builder.new {
11
+ use Rack::CommonLogger
12
+ use Rack::ShowExceptions
13
+ use TraceView::Rack
14
+ map "/lobster" do
15
+ use Rack::Lint
16
+ run Rack::Lobster.new
17
+ end
18
+ }
19
+ end
20
+
21
+ def test_custom_do_not_trace
22
+ clear_all_traces
23
+
24
+ dnt_original = TraceView::Config[:dnt_regexp]
25
+ TraceView::Config[:dnt_regexp] = "lobster$"
26
+
27
+ get "/lobster"
28
+
29
+ traces = get_all_traces
30
+ assert traces.empty?
31
+
32
+ TraceView::Config[:dnt_regexp] = dnt_original
33
+ end
34
+
35
+ def test_do_not_trace_static_assets
36
+ clear_all_traces
37
+
38
+ get "/assets/static_asset.png"
39
+
40
+ traces = get_all_traces
41
+ assert traces.empty?
42
+
43
+ assert last_response.status == 404
44
+ end
45
+
46
+ def test_complex_do_not_trace
47
+ skip "not supported" if RUBY_VERSION < '1.9'
48
+
49
+ clear_all_traces
50
+
51
+ dnt_original = TraceView::Config[:dnt_regexp]
52
+
53
+ # Do not trace .js files _except for_ show.js
54
+ TraceView::Config[:dnt_regexp] = "(\.js$)(?<!show.js)"
55
+
56
+ # First: We shouldn't trace general .js files
57
+ get "/javascripts/application.js"
58
+
59
+ traces = get_all_traces
60
+ assert traces.empty?
61
+
62
+ # Second: We should trace show.js
63
+ clear_all_traces
64
+
65
+ get "/javascripts/show.js"
66
+
67
+ traces = get_all_traces
68
+ assert !traces.empty?
69
+
70
+ TraceView::Config[:dnt_regexp] = dnt_original
71
+ end
72
+ end
73
+
@@ -0,0 +1,104 @@
1
+ require 'minitest_helper'
2
+ require 'rack/test'
3
+ require 'rack/lobster'
4
+ require 'traceview/inst/rack'
5
+
6
+ unless defined?(JRUBY_VERSION)
7
+ TraceView::Config[:tracing_mode] = 'always'
8
+ TraceView::Config[:sample_rate] = 1e6
9
+
10
+ class RackTestApp < Minitest::Test
11
+ include Rack::Test::Methods
12
+
13
+ def app
14
+ @app = Rack::Builder.new {
15
+ use Rack::CommonLogger
16
+ use Rack::ShowExceptions
17
+ use TraceView::Rack
18
+ map "/lobster" do
19
+ use Rack::Lint
20
+ run Rack::Lobster.new
21
+ end
22
+ }
23
+ end
24
+
25
+ def test_localset_sample_source
26
+ # We make an initial call here which will force the traceview gem to retrieve
27
+ # the sample_rate and sample_source from liboboe (via sample? method)
28
+ get "/lobster"
29
+
30
+ clear_all_traces
31
+
32
+ get "/lobster"
33
+
34
+ traces = get_all_traces
35
+ traces.count.must_equal 3
36
+
37
+ validate_outer_layers(traces, 'rack')
38
+
39
+ kvs = {}
40
+ kvs["SampleRate"] = 1000000
41
+ kvs["SampleSource"] = OBOE_SAMPLE_RATE_SOURCE_FILE
42
+ validate_event_keys(traces[0], kvs)
43
+ end
44
+
45
+ # Test logging of all Ruby datatypes against the SWIG wrapper
46
+ # of addInfo which only has four overloads.
47
+ def test_swig_datatypes_conversion
48
+ event = TraceView::Context.createEvent
49
+ report_kvs = {}
50
+
51
+ # Array
52
+ report_kvs[:TestData] = [0, 1, 2, 5, 7.0]
53
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
54
+
55
+ # Class
56
+ report_kvs[:TestData] = TraceView::Reporter
57
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
58
+
59
+ # FalseClass
60
+ report_kvs[:TestData] = false
61
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
62
+
63
+ # Fixnum
64
+ report_kvs[:TestData] = 1_873_293_293
65
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
66
+
67
+ # Float
68
+ report_kvs[:TestData] = 1.0001
69
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
70
+
71
+ # Hash
72
+ report_kvs[:TestData] = Hash.new
73
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
74
+
75
+ # Integer
76
+ report_kvs[:TestData] = 1
77
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
78
+
79
+ # Module
80
+ report_kvs[:TestData] = TraceView
81
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
82
+
83
+ # NilClass
84
+ report_kvs[:TestData] = nil
85
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
86
+
87
+ # Set
88
+ report_kvs[:TestData] = Set.new(1..10)
89
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
90
+
91
+ # String
92
+ report_kvs[:TestData] = 'test value'
93
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
94
+
95
+ # Symbol
96
+ report_kvs[:TestData] = :TestValue
97
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
98
+
99
+ # TrueClass
100
+ report_kvs[:TestData] = true
101
+ result = TraceView::API.log_event('test_layer', 'entry', event, report_kvs)
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,35 @@
1
+ require 'minitest_helper'
2
+
3
+ describe "XTrace" do
4
+
5
+ it 'should correctly validate X-Trace IDs' do
6
+ # Invalid X-Trace IDs
7
+ TraceView::XTrace.valid?("").must_equal false
8
+ TraceView::XTrace.valid?(nil).must_equal false
9
+ TraceView::XTrace.valid?("1B00000000000000000000000000000000000000000000000000000000").must_equal false
10
+ TraceView::XTrace.valid?("1b").must_equal false
11
+ TraceView::XTrace.valid?("29348209348").must_equal false
12
+
13
+ # Standard X-Trace IDs
14
+ TraceView::XTrace.valid?("1B7435A9FE510AE4533414D425DADF4E180D2B4E3649E60702469DB05F").must_equal true
15
+ TraceView::XTrace.valid?("1BA462ADE6CFE479081764CC476AA983351DC51B1BCB3468DA6F06EEFA").must_equal true
16
+ TraceView::XTrace.valid?("1BADFDFB3DBA36323B2E0975925D0DAE12D10BA5946809504DC4B81FF6").must_equal true
17
+
18
+ # X-Trace IDs with lower-case alpha chars
19
+ TraceView::XTrace.valid?("1bf9861cb12e2a257247a8195654e56d30b2f4e2d4fce67c321ad58495").must_equal true
20
+ TraceView::XTrace.valid?("1b258b2c1d6914f3c6085cb72e7cc93e145b401d4356aa24ef7294b2d6").must_equal true
21
+ end
22
+
23
+ it 'should correctly extract task IDs from X-Trace IDs' do
24
+ task_id = TraceView::XTrace.task_id("1BF86B3D3342FCECAECE33C6411379BB171505DB6A136DFAEBDF742362")
25
+ task_id.is_a?(String).must_equal true
26
+ task_id.must_equal "F86B3D3342FCECAECE33C6411379BB171505DB6A"
27
+ task_id.length.must_equal 40
28
+
29
+ task_id = TraceView::XTrace.task_id("1B77970F82332EE22FF04C249FCBA8F63E8AFA2C6730E209453259B2D6")
30
+ task_id.is_a?(String).must_equal true
31
+ task_id.must_equal "77970F82332EE22FF04C249FCBA8F63E8AFA2C67"
32
+ task_id.length.must_equal 40
33
+ end
34
+
35
+ end
data/traceview.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+ require "traceview/version"
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = %q{traceview}
6
+ s.version = TraceView::Version::STRING
7
+ s.date = Time.now.strftime('%Y-%m-%d')
8
+
9
+ s.license = "AppNeta Open License, Version 1.0"
10
+
11
+ s.authors = ["Peter Giacomo Lombardo", "Spiros Eliopoulos"]
12
+ s.email = %q{traceviewsupport@appneta.com}
13
+ s.homepage = %q{http://www.appneta.com/products/traceview/}
14
+ s.summary = %q{AppNeta TraceView performance instrumentation gem for Ruby}
15
+ s.description = %q{The TraceView gem provides performance instrumentation for MRI Ruby, JRuby and related frameworks.}
16
+
17
+ s.extra_rdoc_files = ["LICENSE"]
18
+ s.files = `git ls-files`.split("\n")
19
+ s.test_files = Dir.glob("{test}/**/*.rb")
20
+
21
+ s.platform = defined?(JRUBY_VERSION) ? 'java' : Gem::Platform::RUBY
22
+ s.extensions = ['ext/oboe_metal/extconf.rb'] unless defined?(JRUBY_VERSION)
23
+
24
+ s.add_runtime_dependency('json', '>= 0')
25
+ s.add_development_dependency('rake', '>= 0')
26
+
27
+ s.required_ruby_version = '>= 1.8.6'
28
+ end
29
+
metadata ADDED
@@ -0,0 +1,248 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: traceview
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.0
5
+ platform: java
6
+ authors:
7
+ - Peter Giacomo Lombardo
8
+ - Spiros Eliopoulos
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-05-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ requirement: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - '>='
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ prerelease: false
27
+ type: :runtime
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ prerelease: false
41
+ type: :development
42
+ description: The TraceView gem provides performance instrumentation for MRI Ruby, JRuby and related frameworks.
43
+ email: traceviewsupport@appneta.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files:
47
+ - LICENSE
48
+ files:
49
+ - .gitignore
50
+ - .rubocop.yml
51
+ - .travis.yml
52
+ - Appraisals
53
+ - CHANGELOG.md
54
+ - CONFIG.md
55
+ - Gemfile
56
+ - LICENSE
57
+ - README.md
58
+ - Rakefile
59
+ - examples/DNT.md
60
+ - examples/carrying_context.rb
61
+ - examples/instrumenting_metal_controller.rb
62
+ - examples/puma_on_heroku_config.rb
63
+ - examples/tracing_async_threads.rb
64
+ - examples/tracing_background_jobs.rb
65
+ - examples/tracing_forked_processes.rb
66
+ - examples/unicorn_on_heroku_config.rb
67
+ - ext/oboe_metal/extconf.rb
68
+ - ext/oboe_metal/noop/noop.c
69
+ - ext/oboe_metal/src/bson/bson.h
70
+ - ext/oboe_metal/src/bson/platform_hacks.h
71
+ - ext/oboe_metal/src/oboe.h
72
+ - ext/oboe_metal/src/oboe.hpp
73
+ - ext/oboe_metal/src/oboe_wrap.cxx
74
+ - ext/oboe_metal/tests/test.rb
75
+ - gemfiles/mongo.gemfile
76
+ - gemfiles/moped.gemfile
77
+ - get_version.rb
78
+ - init.rb
79
+ - lib/joboe_metal.rb
80
+ - lib/oboe.rb
81
+ - lib/oboe/README
82
+ - lib/oboe/backward_compatibility.rb
83
+ - lib/oboe/inst/rack.rb
84
+ - lib/oboe_metal.rb
85
+ - lib/rails/generators/traceview/install_generator.rb
86
+ - lib/rails/generators/traceview/templates/traceview_initializer.rb
87
+ - lib/traceview.rb
88
+ - lib/traceview/api.rb
89
+ - lib/traceview/api/layerinit.rb
90
+ - lib/traceview/api/logging.rb
91
+ - lib/traceview/api/memcache.rb
92
+ - lib/traceview/api/profiling.rb
93
+ - lib/traceview/api/tracing.rb
94
+ - lib/traceview/api/util.rb
95
+ - lib/traceview/base.rb
96
+ - lib/traceview/config.rb
97
+ - lib/traceview/frameworks/grape.rb
98
+ - lib/traceview/frameworks/padrino.rb
99
+ - lib/traceview/frameworks/padrino/templates.rb
100
+ - lib/traceview/frameworks/rails.rb
101
+ - lib/traceview/frameworks/rails/helpers/rum/rum_ajax_header.js.erb
102
+ - lib/traceview/frameworks/rails/helpers/rum/rum_footer.js.erb
103
+ - lib/traceview/frameworks/rails/helpers/rum/rum_header.js.erb
104
+ - lib/traceview/frameworks/rails/inst/action_controller.rb
105
+ - lib/traceview/frameworks/rails/inst/action_view.rb
106
+ - lib/traceview/frameworks/rails/inst/action_view_2x.rb
107
+ - lib/traceview/frameworks/rails/inst/action_view_30.rb
108
+ - lib/traceview/frameworks/rails/inst/active_record.rb
109
+ - lib/traceview/frameworks/rails/inst/connection_adapters/mysql.rb
110
+ - lib/traceview/frameworks/rails/inst/connection_adapters/mysql2.rb
111
+ - lib/traceview/frameworks/rails/inst/connection_adapters/oracle.rb
112
+ - lib/traceview/frameworks/rails/inst/connection_adapters/postgresql.rb
113
+ - lib/traceview/frameworks/rails/inst/connection_adapters/utils.rb
114
+ - lib/traceview/frameworks/sinatra.rb
115
+ - lib/traceview/frameworks/sinatra/templates.rb
116
+ - lib/traceview/inst/cassandra.rb
117
+ - lib/traceview/inst/dalli.rb
118
+ - lib/traceview/inst/em-http-request.rb
119
+ - lib/traceview/inst/excon.rb
120
+ - lib/traceview/inst/faraday.rb
121
+ - lib/traceview/inst/http.rb
122
+ - lib/traceview/inst/httpclient.rb
123
+ - lib/traceview/inst/memcache.rb
124
+ - lib/traceview/inst/memcached.rb
125
+ - lib/traceview/inst/mongo.rb
126
+ - lib/traceview/inst/moped.rb
127
+ - lib/traceview/inst/rack.rb
128
+ - lib/traceview/inst/redis.rb
129
+ - lib/traceview/inst/resque.rb
130
+ - lib/traceview/inst/rest-client.rb
131
+ - lib/traceview/inst/sequel.rb
132
+ - lib/traceview/inst/typhoeus.rb
133
+ - lib/traceview/instrumentation.rb
134
+ - lib/traceview/loading.rb
135
+ - lib/traceview/logger.rb
136
+ - lib/traceview/method_profiling.rb
137
+ - lib/traceview/ruby.rb
138
+ - lib/traceview/support.rb
139
+ - lib/traceview/thread_local.rb
140
+ - lib/traceview/util.rb
141
+ - lib/traceview/version.rb
142
+ - lib/traceview/xtrace.rb
143
+ - test/frameworks/apps/grape_nested.rb
144
+ - test/frameworks/apps/grape_simple.rb
145
+ - test/frameworks/apps/padrino_simple.rb
146
+ - test/frameworks/apps/sinatra_simple.rb
147
+ - test/frameworks/grape_test.rb
148
+ - test/frameworks/padrino_test.rb
149
+ - test/frameworks/sinatra_test.rb
150
+ - test/instrumentation/cassandra_test.rb
151
+ - test/instrumentation/dalli_test.rb
152
+ - test/instrumentation/em_http_request_test.rb
153
+ - test/instrumentation/excon_test.rb
154
+ - test/instrumentation/faraday_test.rb
155
+ - test/instrumentation/http_test.rb
156
+ - test/instrumentation/httpclient_test.rb
157
+ - test/instrumentation/memcache_test.rb
158
+ - test/instrumentation/memcached_test.rb
159
+ - test/instrumentation/mongo_test.rb
160
+ - test/instrumentation/moped_test.rb
161
+ - test/instrumentation/rack_test.rb
162
+ - test/instrumentation/redis_hashes_test.rb
163
+ - test/instrumentation/redis_keys_test.rb
164
+ - test/instrumentation/redis_lists_test.rb
165
+ - test/instrumentation/redis_misc_test.rb
166
+ - test/instrumentation/redis_sets_test.rb
167
+ - test/instrumentation/redis_sortedsets_test.rb
168
+ - test/instrumentation/redis_strings_test.rb
169
+ - test/instrumentation/resque_test.rb
170
+ - test/instrumentation/rest-client_test.rb
171
+ - test/instrumentation/sequel_mysql2_test.rb
172
+ - test/instrumentation/sequel_mysql_test.rb
173
+ - test/instrumentation/sequel_pg_test.rb
174
+ - test/instrumentation/typhoeus_test.rb
175
+ - test/minitest_helper.rb
176
+ - test/profiling/method_test.rb
177
+ - test/servers/rackapp_8101.rb
178
+ - test/support/backcompat_test.rb
179
+ - test/support/config_test.rb
180
+ - test/support/dnt_test.rb
181
+ - test/support/liboboe_settings_test.rb
182
+ - test/support/xtrace_test.rb
183
+ - traceview.gemspec
184
+ homepage: http://www.appneta.com/products/traceview/
185
+ licenses:
186
+ - AppNeta Open License, Version 1.0
187
+ metadata: {}
188
+ post_install_message:
189
+ rdoc_options: []
190
+ require_paths:
191
+ - lib
192
+ required_ruby_version: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - '>='
195
+ - !ruby/object:Gem::Version
196
+ version: 1.8.6
197
+ required_rubygems_version: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ requirements: []
203
+ rubyforge_project:
204
+ rubygems_version: 2.4.5
205
+ signing_key:
206
+ specification_version: 4
207
+ summary: AppNeta TraceView performance instrumentation gem for Ruby
208
+ test_files:
209
+ - test/minitest_helper.rb
210
+ - test/servers/rackapp_8101.rb
211
+ - test/instrumentation/excon_test.rb
212
+ - test/instrumentation/sequel_pg_test.rb
213
+ - test/instrumentation/moped_test.rb
214
+ - test/instrumentation/httpclient_test.rb
215
+ - test/instrumentation/sequel_mysql_test.rb
216
+ - test/instrumentation/http_test.rb
217
+ - test/instrumentation/dalli_test.rb
218
+ - test/instrumentation/redis_sortedsets_test.rb
219
+ - test/instrumentation/rack_test.rb
220
+ - test/instrumentation/cassandra_test.rb
221
+ - test/instrumentation/redis_strings_test.rb
222
+ - test/instrumentation/typhoeus_test.rb
223
+ - test/instrumentation/sequel_mysql2_test.rb
224
+ - test/instrumentation/redis_misc_test.rb
225
+ - test/instrumentation/faraday_test.rb
226
+ - test/instrumentation/redis_keys_test.rb
227
+ - test/instrumentation/redis_sets_test.rb
228
+ - test/instrumentation/memcache_test.rb
229
+ - test/instrumentation/resque_test.rb
230
+ - test/instrumentation/redis_hashes_test.rb
231
+ - test/instrumentation/mongo_test.rb
232
+ - test/instrumentation/redis_lists_test.rb
233
+ - test/instrumentation/memcached_test.rb
234
+ - test/instrumentation/em_http_request_test.rb
235
+ - test/instrumentation/rest-client_test.rb
236
+ - test/profiling/method_test.rb
237
+ - test/frameworks/sinatra_test.rb
238
+ - test/frameworks/grape_test.rb
239
+ - test/frameworks/padrino_test.rb
240
+ - test/frameworks/apps/grape_simple.rb
241
+ - test/frameworks/apps/sinatra_simple.rb
242
+ - test/frameworks/apps/padrino_simple.rb
243
+ - test/frameworks/apps/grape_nested.rb
244
+ - test/support/config_test.rb
245
+ - test/support/dnt_test.rb
246
+ - test/support/liboboe_settings_test.rb
247
+ - test/support/backcompat_test.rb
248
+ - test/support/xtrace_test.rb