appoptics_apm 4.8.2 → 4.8.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: efeb5fdc0a0dec8438fa1ed7af73324858865e20c2705c555effd282232971b1
4
- data.tar.gz: 8d3bbe8905e430d61de61f182793fc1c73e45d8bf0cfdeaa269de136e516edba
3
+ metadata.gz: 5c27f1f8e2eb4cd26fb79201841a19fd805a4121001b9d384a81854834990778
4
+ data.tar.gz: bf80c6401e81c17c4566ed597a3e94ad653f93f719583a0f47e2f5d3ca15af5c
5
5
  SHA512:
6
- metadata.gz: 3904ed8d0f79a0786a9fef1e4f9feb555843035fba8165ca225d72682a1576b37a220da1edf7e0e11be34c7553b47cf46908d3e38f81723c90286c27f573e384
7
- data.tar.gz: 9cd0d8b27c28c9c020bcc6990b5e799dbacfebed34707324922416eca0240df5519f76966271a7ae4183624d2c2a43c5a0e93367a5e91e36003e9f61b56cec73
6
+ metadata.gz: 0c198e1f9288bb934e97da00f10e69dd1a599d106b6e5e22940eb225c553d1e205cde734d71896ef3b63547fd03094f8846b627fd01ce73ff688818b3cb7465c
7
+ data.tar.gz: d326e1d4ad5689f97164709a68e5e4d7083b5879c4de3d5f966f1c7729a598f58c660264b31096724ea4c9038246f3579177338857f7d409f7bb8467acfdb0cf
@@ -11,8 +11,8 @@ env:
11
11
  - DBTYPE=mysql
12
12
 
13
13
  rvm:
14
- - 2.6.2
15
- - 2.5.3
14
+ - 2.6.3
15
+ - 2.5.5
16
16
  - 2.4.5
17
17
  - ruby-head
18
18
  # - jruby-9.0.5.0
@@ -32,13 +32,13 @@ matrix:
32
32
  exclude:
33
33
  - rvm: ruby-head
34
34
  gemfile: gemfiles/rails42.gemfile
35
- - rvm: 2.6.2
35
+ - rvm: 2.6.3
36
36
  gemfile: gemfiles/rails42.gemfile
37
37
 
38
38
 
39
- - rmv: 2.6.2
39
+ - rmv: 2.6.3
40
40
  env: DBTYPE=mysql
41
- - rvm: 2.5.3
41
+ - rvm: 2.5.5
42
42
  env: DBTYPE=mysql
43
43
  - rvm: 2.4.5
44
44
  env: DBTYPE=mysql
@@ -85,12 +85,15 @@ matrix:
85
85
  # Attempt Travis/Cassandra fix re: https://github.com/travis-ci/travis-ci/issues/1484
86
86
  # Updated Cassandra: https://github.com/travis-ci/travis-ci/issues/1650
87
87
 
88
- before_install:
89
- - sudo service cassandra stop
90
- - sudo sh -c "echo 'JVM_OPTS=\"\${JVM_OPTS} -Djava.net.preferIPv4Stack=false\"' >> /etc/cassandra/cassandra-env.sh"
91
- - echo "127.0.0.1 localhost" | sudo tee /etc/hosts
92
- - echo "127.0.0.1 " `hostname` | sudo tee -a /etc/hosts
93
- - sudo service cassandra start
88
+ # the following is not working anymore on travis
89
+ # commenting it out as per AO-13532 as we currently don't have instrumentation
90
+ # for cassandra
91
+ #before_install:
92
+ # - sudo service cassandra stop
93
+ # - sudo sh -c "echo 'JVM_OPTS=\"\${JVM_OPTS} -Djava.net.preferIPv4Stack=false\"' >> /etc/cassandra/cassandra-env.sh"
94
+ # - echo "127.0.0.1 localhost" | sudo tee /etc/hosts
95
+ # - echo "127.0.0.1 " `hostname` | sudo tee -a /etc/hosts
96
+ # - sudo service cassandra start
94
97
 
95
98
  install:
96
99
  - curl -LO http://kent.dl.sourceforge.net/project/swig/swig/swig-3.0.8/swig-3.0.8.tar.gz
@@ -100,6 +103,13 @@ install:
100
103
  - popd
101
104
 
102
105
  before_script:
106
+ - export APPOPTICS_GEM_TEST=true
107
+ - export APPOPTICS_REPORTER=file
108
+ - export APPOPTICS_COLLECTOR=/tmp/appoptics_traces.bson
109
+ - export APPOPTICS_REPORTER_FILE_SINGLE=false
110
+ - export APPOPTICS_TOKEN_BUCKET_CAPACITY=1000
111
+ - export APPOPTICS_TOKEN_BUCKET_RATE=1000
112
+ - export OBOE_VERSION=5.1.1
103
113
  - bundle update --jobs=3 --retry=3
104
114
  - bundle exec rake fetch_ext_deps
105
115
  - bundle exec rake clean
@@ -108,14 +118,19 @@ before_script:
108
118
  - mysql -e 'create database travis_ci_test;'
109
119
  - redis-server --requirepass secret_pass &
110
120
  - sleep 10
111
- - export APPOPTICS_TOKEN_BUCKET_CAPACITY=1000
112
- - export APPOPTICS_TOKEN_BUCKET_RATE=1000
113
121
 
114
122
  script: "N=1 bundle exec rake test"
115
123
 
116
124
  services:
117
125
  - mongodb
118
126
  - memcached
119
- - cassandra
120
- # - redis
127
+ - mysql
128
+ # - cassandra
129
+ - postgresql
130
+ # - redis-server
121
131
  - rabbitmq
132
+
133
+ addons:
134
+ apt:
135
+ packages:
136
+ - rabbitmq-server
data/Gemfile CHANGED
@@ -18,7 +18,6 @@ group :development, :test do
18
18
  gem 'byebug'
19
19
  gem 'get_process_mem'
20
20
  gem 'memory_profiler'
21
- gem 'stackprof'
22
21
  end
23
22
 
24
23
  if defined?(JRUBY_VERSION)
data/README.md CHANGED
@@ -390,4 +390,4 @@ See the README in the test directory.
390
390
 
391
391
  Copyright (c) 2018 SolarWinds, LLC
392
392
 
393
- Released under the [Librato Open License](https://docs.appoptics.com/kb/apm_tracing/librato-open-license/)
393
+ Released under the [Librato Open License](https://docs.appoptics.com/kb/apm_tracing/librato-open-license/)
data/Rakefile CHANGED
@@ -31,6 +31,9 @@ Rake::TestTask.new do |t|
31
31
  if Rails::VERSION::MAJOR == 5
32
32
  t.test_files = FileList["test/frameworks/rails#{Rails::VERSION::MAJOR}x_test.rb"] +
33
33
  FileList["test/frameworks/rails#{Rails::VERSION::MAJOR}x_api_test.rb"]
34
+ elsif Rails::VERSION::MAJOR == 6
35
+ t.test_files = FileList["test/frameworks/rails5x_test.rb"] +
36
+ FileList["test/frameworks/rails5x_api_test.rb"]
34
37
  else
35
38
  t.test_files = FileList["test/frameworks/rails#{Rails::VERSION::MAJOR}x_test.rb"]
36
39
  end
@@ -121,7 +124,7 @@ task :fetch_ext_deps do
121
124
 
122
125
  FileUtils.cd(ext_src_dir) do
123
126
  system('swig -c++ -ruby -module oboe_metal oboe.i')
124
- # FileUtils.rm('oboe.i')
127
+ FileUtils.rm('oboe.i')
125
128
  end
126
129
  end
127
130
 
@@ -8,13 +8,8 @@ else
8
8
  ./build_gem.sh
9
9
  fi
10
10
 
11
- # save current rbenv setting and switch to 2.4.1 for the package_cloud commands
12
- current_ruby=`rbenv global`
13
- rbenv global 2.4.1
11
+ gem install package_cloud --no-document
14
12
 
15
13
  # prerequisite: package_cloud token needs to be in ~/.packagecloud
16
14
  gem=`ls -dt1 appoptics_apm-[^pre]*.gem | head -1`
17
15
  package_cloud push solarwinds/appoptics-apm-ruby $gem
18
-
19
- # restore ruby version
20
- rbenv global $current_ruby
@@ -63,8 +63,6 @@ def do_traced_work
63
63
  end
64
64
  end
65
65
 
66
- # Example with logging
67
66
  AppOpticsAPM::SDK.start_trace('outer_span_2') do
68
- AppopticsAPM.logger.warn "Hello World!"
69
67
  do_traced_work
70
68
  end
@@ -0,0 +1,69 @@
1
+ # Debug the c-code with gdb
2
+
3
+ inspired by: https://dev.to/wataash/how-to-create-and-debug-ruby-gem-with-c-native-extension-3l8b
4
+
5
+
6
+ ## install ruby with sources
7
+
8
+ rbenv is your friend ;) 😄 -k means keep sources
9
+
10
+ ```
11
+ rbenv install -k 2.6.3
12
+ rbenv shell 2.6.3
13
+
14
+ # check that ruby is debuggable
15
+ type ruby # => ruby is /home/wsh/.rbenv/shims/ruby
16
+ rbenv which ruby # => /home/wsh/.rbenv/versions/2.6.3/bin/ruby
17
+ ```
18
+
19
+
20
+ ##
21
+ ## add debug info when compiling appoptics_apm
22
+ add this line to extconf.rb to turn off optimization
23
+
24
+ ```
25
+ CONFIG["optflags"] = "-O0"
26
+ ```
27
+
28
+
29
+ ##
30
+ ## start ruby app with gdb
31
+
32
+ This will run ruby and load the app with a breakpoint in the Reporter::startThread
33
+ c-function.
34
+
35
+ `bundle exec gdb -q -ex 'set breakpoint pending on' -ex 'b Reporter::startThread' -ex run --args ruby -e 'require "./app"'`
36
+
37
+ If there is a bug in the ruby code or a ruby byebug binding that halts the
38
+ script, the debugger will hang without showing any output.
39
+ So, make sure `bundle exec ruby app.rb` runs.
40
+
41
+ use the gdb navigation commands to step through the code. If it says:
42
+
43
+ ```
44
+ (gdb) n
45
+ Single stepping until exit from function _ZN8Reporter11startThreadEv@plt,
46
+ which has no line number information.
47
+ ```
48
+
49
+ type `c` and it may end up stopping in the right location.
50
+
51
+ ##
52
+ ## make ruby .gdbinit macros available
53
+
54
+ These macros are pretty elaborate. They are checked in the ruby github
55
+ repo: https://github.com/ruby/ruby/blob/master/.gdbinit
56
+ The code is nicely formatted and colorized in github and easiest to read there.
57
+
58
+ installation in the user's home dir:
59
+ ```
60
+ wget https://github.com/ruby/ruby/blob/master/.gdbinit
61
+ ```
62
+ ##
63
+ ## examples
64
+
65
+ Some inspiring examples here:
66
+
67
+ https://jvns.ca/blog/2016/06/12/a-weird-system-call-process-vm-readv/
68
+
69
+ https://medium.com/@zanker/finding-a-ruby-bug-with-gdb-56d6b321bc86
@@ -1 +1 @@
1
- 5.0.2
1
+ 5.1.1
@@ -84,18 +84,18 @@ module AppOpticsAPM
84
84
  end
85
85
 
86
86
  # ActionController::Base
87
- if defined?(ActionController::Base) && AppOpticsAPM::Config[:action_controller][:enabled]
87
+ if defined?(ActionController::Base) && AppOpticsAPM::Config[:action_controller][:enabled] && Rails::VERSION::MAJOR < 6
88
88
  AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting actioncontroller' if AppOpticsAPM::Config[:verbose]
89
89
  require "appoptics_apm/frameworks/rails/inst/action_controller#{Rails::VERSION::MAJOR}"
90
- if Rails::VERSION::MAJOR >= 5
90
+ if Rails::VERSION::MAJOR == 5
91
91
  ActionController::Base.send(:prepend, ::AppOpticsAPM::Inst::ActionController)
92
- else
92
+ elsif Rails::VERSION::MAJOR < 5
93
93
  AppOpticsAPM::Util.send_include(::ActionController::Base, AppOpticsAPM::Inst::ActionController)
94
94
  end
95
95
  end
96
96
 
97
- # ActionController::API - Rails 5+ or via the rails-api gem
98
- if defined?(ActionController::API) && AppOpticsAPM::Config[:action_controller_api][:enabled]
97
+ # ActionController::API - Rails 5 or via the rails-api gem
98
+ if defined?(ActionController::API) && AppOpticsAPM::Config[:action_controller_api][:enabled] && Rails::VERSION::MAJOR < 6
99
99
  AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting actioncontroller api' if AppOpticsAPM::Config[:verbose]
100
100
  require "appoptics_apm/frameworks/rails/inst/action_controller_api"
101
101
  ActionController::API.send(:prepend, ::AppOpticsAPM::Inst::ActionControllerAPI)
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) 2016 SolarWinds, LLC.
2
2
  # All rights reserved.
3
3
 
4
- if defined?(ActionView::Base) && AppOpticsAPM::Config[:action_view][:enabled]
4
+ if defined?(ActionView::Base) && AppOpticsAPM::Config[:action_view][:enabled] && Rails::VERSION::MAJOR < 6
5
5
 
6
6
  ##
7
7
  # ActionView Instrumentation is version dependent. ActionView 2.x is separate
@@ -5,13 +5,13 @@ require 'appoptics_apm/frameworks/rails/inst/connection_adapters/mysql'
5
5
  require 'appoptics_apm/frameworks/rails/inst/connection_adapters/mysql2'
6
6
  require 'appoptics_apm/frameworks/rails/inst/connection_adapters/postgresql'
7
7
 
8
- if AppOpticsAPM::Config[:active_record][:enabled] && !defined?(JRUBY_VERSION)
8
+ if AppOpticsAPM::Config[:active_record][:enabled] && !defined?(JRUBY_VERSION) && Rails::VERSION::MAJOR < 6
9
9
  begin
10
10
  adapter = ActiveRecord::Base.connection_config[:adapter]
11
11
 
12
12
  if Rails::VERSION::MAJOR < 5
13
13
  require 'appoptics_apm/frameworks/rails/inst/connection_adapters/utils'
14
- else
14
+ elsif Rails::VERSION::MAJOR == 5
15
15
  require 'appoptics_apm/frameworks/rails/inst/connection_adapters/utils5x'
16
16
  end
17
17
 
@@ -8,7 +8,7 @@ module AppOpticsAPM
8
8
  module Version
9
9
  MAJOR = 4 # breaking,
10
10
  MINOR = 8 # feature,
11
- PATCH = 2 # fix => BFF
11
+ PATCH = 3 # fix => BFF
12
12
 
13
13
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
14
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appoptics_apm
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.8.2
4
+ version: 4.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maia Engeli
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-05-23 00:00:00.000000000 Z
13
+ date: 2019-08-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -30,20 +30,20 @@ dependencies:
30
30
  name: no_proxy_fix
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - "~>"
33
+ - - ">="
34
34
  - !ruby/object:Gem::Version
35
35
  version: 0.1.2
36
- - - ">="
36
+ - - "~>"
37
37
  - !ruby/object:Gem::Version
38
38
  version: 0.1.2
39
39
  type: :runtime
40
40
  prerelease: false
41
41
  version_requirements: !ruby/object:Gem::Requirement
42
42
  requirements:
43
- - - "~>"
43
+ - - ">="
44
44
  - !ruby/object:Gem::Version
45
45
  version: 0.1.2
46
- - - ">="
46
+ - - "~>"
47
47
  - !ruby/object:Gem::Version
48
48
  version: 0.1.2
49
49
  - !ruby/object:Gem::Dependency
@@ -132,6 +132,7 @@ files:
132
132
  - build_gem_upload_to_packagecloud.sh
133
133
  - examples/SDK/01_basic_tracing.rb
134
134
  - examples/carrying_context.rb
135
+ - ext/oboe_metal/README.md
135
136
  - ext/oboe_metal/extconf.rb
136
137
  - ext/oboe_metal/lib/.keep
137
138
  - ext/oboe_metal/noop/noop.c
@@ -254,8 +255,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
254
255
  - !ruby/object:Gem::Version
255
256
  version: '0'
256
257
  requirements: []
257
- rubyforge_project:
258
- rubygems_version: 2.7.3
258
+ rubygems_version: 3.0.2
259
259
  signing_key:
260
260
  specification_version: 4
261
261
  summary: AppOptics APM performance instrumentation gem for Ruby