appoptics_apm 4.8.4 → 4.11.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +7 -1
  3. data/.rubocop.yml +27 -6
  4. data/.travis.yml +24 -37
  5. data/.travis/bundle.sh +9 -0
  6. data/CONFIG.md +1 -1
  7. data/Gemfile +6 -6
  8. data/appoptics_apm.gemspec +6 -2
  9. data/examples/SDK/01_basic_tracing.rb +1 -1
  10. data/ext/oboe_metal/extconf.rb +6 -2
  11. data/ext/oboe_metal/noop/noop.c +2 -1
  12. data/ext/oboe_metal/src/VERSION +1 -1
  13. data/lib/appoptics_apm.rb +1 -3
  14. data/lib/appoptics_apm/api.rb +0 -1
  15. data/lib/appoptics_apm/api/logging.rb +6 -2
  16. data/lib/appoptics_apm/api/tracing.rb +4 -0
  17. data/lib/appoptics_apm/api/util.rb +5 -7
  18. data/lib/appoptics_apm/config.rb +16 -5
  19. data/lib/appoptics_apm/frameworks/grape.rb +3 -2
  20. data/lib/appoptics_apm/frameworks/padrino.rb +7 -37
  21. data/lib/appoptics_apm/frameworks/rails.rb +0 -1
  22. data/lib/appoptics_apm/frameworks/rails/inst/action_controller.rb +1 -1
  23. data/lib/appoptics_apm/frameworks/rails/inst/action_view.rb +12 -25
  24. data/lib/appoptics_apm/frameworks/rails/inst/active_record.rb +1 -1
  25. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/utils.rb +1 -1
  26. data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/utils5x.rb +1 -1
  27. data/lib/appoptics_apm/frameworks/sinatra.rb +4 -33
  28. data/lib/appoptics_apm/inst/curb.rb +6 -6
  29. data/lib/appoptics_apm/inst/faraday.rb +16 -4
  30. data/lib/appoptics_apm/inst/graphql.rb +240 -0
  31. data/lib/appoptics_apm/inst/grpc_client.rb +1 -1
  32. data/lib/appoptics_apm/inst/rack.rb +11 -11
  33. data/lib/appoptics_apm/oboe_init_options.rb +13 -3
  34. data/lib/appoptics_apm/sdk/custom_metrics.rb +2 -0
  35. data/lib/appoptics_apm/sdk/logging.rb +1 -1
  36. data/lib/appoptics_apm/sdk/tracing.rb +120 -2
  37. data/lib/appoptics_apm/support/transaction_metrics.rb +2 -1
  38. data/lib/appoptics_apm/support/transaction_settings.rb +40 -15
  39. data/lib/appoptics_apm/support/x_trace_options.rb +110 -0
  40. data/lib/appoptics_apm/version.rb +2 -2
  41. data/lib/appoptics_apm/xtrace.rb +7 -7
  42. data/lib/oboe_metal.rb +1 -1
  43. data/lib/rails/generators/appoptics_apm/install_generator.rb +23 -21
  44. data/lib/rails/generators/appoptics_apm/templates/appoptics_apm_initializer.rb +68 -30
  45. metadata +40 -21
  46. data/Rakefile +0 -234
  47. data/build_gem.sh +0 -15
  48. data/build_gem_upload_to_packagecloud.sh +0 -15
  49. data/lib/appoptics_apm/api/profiling.rb +0 -203
  50. data/lib/appoptics_apm/frameworks/rails/inst/action_controller3.rb +0 -55
  51. data/lib/appoptics_apm/frameworks/rails/inst/action_view_30.rb +0 -50
  52. data/lib/appoptics_apm/legacy_method_profiling.rb +0 -90
  53. data/lib/appoptics_apm/method_profiling.rb +0 -33
  54. data/lib/oboe/README +0 -2
  55. data/lib/oboe/backward_compatibility.rb +0 -80
  56. data/lib/oboe/inst/rack.rb +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 37478c40a16c8636f4589a15e63db8d1b2eb0eae
4
- data.tar.gz: 2f2ac3b316e00963c42593680e638ecfc1792e3b
2
+ SHA256:
3
+ metadata.gz: 26c9d31f4b5d680bd14d2cc041c337ea687f87e85c909fb6133d92e3f8292105
4
+ data.tar.gz: 1694af39aa2e9c8105a7d1b4fa590af16a5a86ae2b41bc9998531f2b16d192af
5
5
  SHA512:
6
- metadata.gz: f695fc74e9f23d799709c32faab13b8c8c56e2f7da34b6968a5f085daf964927d3c98ffcadc49be6ab181fb66a872a4ec97d121468f01ed205c449e0d0873abc
7
- data.tar.gz: 730addb2cda57f6555d4965656cfeb1e753e32e7886e13cc1714c8b97b094664c4d0702a5494dc49ea7c266de6c101b25c4927a82ed652822890a581e45550b0
6
+ metadata.gz: 3257648c80a8da542d0e3f99a49c53b4ea6f3c2dd3ef37d6e6ebc1384f53054b3883b41f6ae43880f310a5ff4b49c37eaa67450a2d9818946e248180c6834222
7
+ data.tar.gz: ba4d2a1e71ab6805d73a038bbd1c6593889249e5ebdac1005cbb9df6befad04ef728bcfc67780db2352a10a43c694e991314530452dca57d17297f75c30c3d69
data/.gitignore CHANGED
@@ -1,5 +1,5 @@
1
1
  oboe*.gem
2
- Gemfile.lock
2
+ *.lock
3
3
  gemfiles/*.lock
4
4
  .ruby-version
5
5
  *~
@@ -27,3 +27,9 @@ coverage
27
27
  doc
28
28
  .*byebug*
29
29
  gemfiles/vendor*
30
+ scrap*
31
+ .irbrc
32
+ *.code-workspace
33
+ .irb_history
34
+ .bundle/
35
+ /builds/
data/.rubocop.yml CHANGED
@@ -1,8 +1,29 @@
1
- Metrics/LineLength:
2
- Max: 120
1
+ Style/StringLiterals:
2
+ Description: 'Checks if uses of quotes match the configured preference.'
3
+ StyleGuide: '#consistent-string-literals'
4
+ Enabled: false
3
5
 
4
- Style/HashSyntax:
5
- EnforcedStyle: hash_rockets
6
+ Layout/LineLength:
7
+ Description: 'Limit lines to 80 characters.'
8
+ Enabled: false
6
9
 
7
- Layout/TrailingWhitespace:
8
- Enabled: false
10
+ Naming/VariableNumber:
11
+ Description: 'Use the configured style when numbering variables.'
12
+ Enabled: false
13
+
14
+ Style/FrozenStringLiteralComment:
15
+ Description: >-
16
+ Add the frozen_string_literal comment to the top of files
17
+ to help transition to frozen string literals by default.
18
+ Enabled: false
19
+
20
+ Style/Documentation:
21
+ Description: 'Document classes and non-namespace modules.'
22
+ Enabled: false
23
+
24
+ Style/WordArray:
25
+ EnforcedStyle: brackets
26
+
27
+ Metrics/BlockLength:
28
+ Exclude:
29
+ - test/*/*_test.rb
data/.travis.yml CHANGED
@@ -8,9 +8,9 @@ cache:
8
8
  env:
9
9
  - DBTYPE=postgresql
10
10
  - DBTYPE=mysql2
11
- - DBTYPE=mysql
12
11
 
13
12
  rvm:
13
+ - 2.7.0
14
14
  - 2.6.4
15
15
  - 2.5.5
16
16
  - 2.4.5
@@ -33,38 +33,14 @@ matrix:
33
33
  exclude:
34
34
  - rvm: ruby-head
35
35
  gemfile: gemfiles/rails42.gemfile
36
+ - rvm: 2.7.0
37
+ gemfile: gemfiles/rails42.gemfile
36
38
  - rvm: 2.6.4
37
39
  gemfile: gemfiles/rails42.gemfile
38
40
  - rvm: 2.4.5
39
41
  gemfile: gemfiles/rails60.gemfile
40
-
41
- - rmv: 2.6.4
42
- env: DBTYPE=mysql
43
- - rvm: 2.5.5
44
- env: DBTYPE=mysql
45
- - rvm: 2.4.5
46
- env: DBTYPE=mysql
47
- - rvm: ruby-head
48
- env: DBTYPE=mysql
49
-
50
- - gemfile: gemfiles/unit.gemfile
51
- env: DBTYPE=mysql
52
- - gemfile: gemfiles/noop.gemfile
53
- env: DBTYPE=mysql
54
- - gemfile: gemfiles/libraries.gemfile
55
- env: DBTYPE=mysql
56
- - gemfile: gemfiles/instrumentation_mocked.gemfile
57
- env: DBTYPE=mysql
58
- - gemfile: gemfiles/instrumentation_mocked_oldgems.gemfile
59
- env: DBTYPE=mysql
60
- - gemfile: gemfiles/frameworks.gemfile
61
- env: DBTYPE=mysql
62
- - gemfile: gemfiles/rails52.gemfile
63
- env: DBTYPE=mysql
64
- - gemfile: gemfiles/rails60.gemfile
65
- env: DBTYPE=mysql
66
- - gemfile: gemfiles/delayed_job.gemfile
67
- env: DBTYPE=mysql
42
+ - rvm: 2.4.5 # excluding because of new sprockets version (4.0.0)
43
+ gemfile: gemfiles/rails52.gemfile
68
44
 
69
45
  - gemfile: gemfiles/unit.gemfile
70
46
  env: DBTYPE=mysql2
@@ -83,7 +59,8 @@ matrix:
83
59
  allow_failures:
84
60
  - rvm: ruby-head
85
61
 
86
- # FIXME: Figure out if this is still an issue when reviewing cassandra test setup
62
+ # FIXME: No cassandra tests for now
63
+ # ____ Figure out if this is still an issue when reviving cassandra
87
64
  # Attempt Travis/Cassandra fix re: https://github.com/travis-ci/travis-ci/issues/1484
88
65
  # Updated Cassandra: https://github.com/travis-ci/travis-ci/issues/1650
89
66
 
@@ -98,9 +75,17 @@ matrix:
98
75
  # - sudo service cassandra start
99
76
 
100
77
  install:
101
- - curl -LO http://kent.dl.sourceforge.net/project/swig/swig/swig-3.0.8/swig-3.0.8.tar.gz
102
- - tar xzf swig-3.0.8.tar.gz
103
- - pushd swig-3.0.8
78
+ # - curl -LO http://kent.dl.sourceforge.net/project/swig/swig/swig-3.0.12/swig-3.0.12.tar.gz
79
+ # - curl -LO http://kent.dl.sourceforge.net/project/swig/swig/swig-4.0.1/swig-4.0.1.tar.gz
80
+ # - tar xzf swig-4.0.1.tar.gz
81
+ # - pushd swig-4.0.1
82
+ # - ./configure && make && sudo make install
83
+ # - popd
84
+
85
+ # use swig from git, it is the only one that works with Ruby 2.7 for now
86
+ - git clone https://github.com/swig/swig.git
87
+ - pushd swig
88
+ - ./autogen.sh
104
89
  - ./configure && make && sudo make install
105
90
  - popd
106
91
 
@@ -111,15 +96,17 @@ before_script:
111
96
  - export APPOPTICS_REPORTER_FILE_SINGLE=false
112
97
  - export APPOPTICS_TOKEN_BUCKET_CAPACITY=1000
113
98
  - export APPOPTICS_TOKEN_BUCKET_RATE=1000
114
- - export OBOE_VERSION=5.1.1
115
- - bundle --jobs=3 --retry=3
116
- - bundle exec rake clean fetch compile
99
+ - export APPOPTICS_FROM_S3=true
100
+
101
+ # - bundle update --jobs=3 --retry=3
102
+ - ./.travis/bundle.sh
103
+ - bundle exec rake distclean fetch compile
117
104
  - psql -c 'create database travis_ci_test;' -U postgres
118
105
  - mysql -e 'create database travis_ci_test;'
119
106
  - redis-server --requirepass secret_pass &
120
107
  - sleep 10
121
108
 
122
- script: "N=1 bundle exec rake test"
109
+ script: "bundle exec rake test"
123
110
 
124
111
  services:
125
112
  - mongodb
data/.travis/bundle.sh ADDED
@@ -0,0 +1,9 @@
1
+ #!/bin/bash
2
+
3
+ if [[ $BUNDLE_GEMFILE == *"gemfiles/frameworks.gemfile"* ]]
4
+ then
5
+ gem install bundler -v 1.17.3
6
+ bundle _1.17.3_ update --jobs=3 --retry=3
7
+ else
8
+ bundle update --jobs=3 --retry=3
9
+ fi
data/CONFIG.md CHANGED
@@ -17,7 +17,7 @@ Name | Description | Default
17
17
 
18
18
  Name | Description | Default
19
19
  ---- | ----------- | -------
20
- `APPOPTICS_GEM_TEST` | puts the gem in test mode. Traces are written to /tmp/trace_output.bson. | `false`
20
+ `APPOPTICS_GEM_TEST` | puts the gem in test mode to avoid restarting certain background services used in testing. `false`
21
21
  `DBTYPE` | For tests on Ruby on Rails, specifies the database type to test against. `postgres`, `mysql` and `mysql2` are valid options. | `postgres`
22
22
  `APPOPTICS_CASSANDRA_SERVER` | specifies the Cassandra server to test against. | `127.0.0.1:9160`
23
23
  `APPOPTICS_MONGO_SERVER` | specifies the Mongo server to test against. | `127.0.0.1:27017`
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'https://rubygems.org'
2
+ gem 'rake'
2
3
 
3
4
  group :development, :test do
4
- gem 'rake'
5
5
  gem 'minitest'
6
6
  gem 'minitest-reporters', '< 1.0.18'
7
7
  gem 'minitest-debugger', :require => false
@@ -18,12 +18,12 @@ group :development, :test do
18
18
  gem 'byebug'
19
19
  gem 'get_process_mem'
20
20
  gem 'memory_profiler'
21
- end
22
21
 
23
- if defined?(JRUBY_VERSION)
24
- gem 'sinatra', :require => false
25
- else
26
- gem 'sinatra'
22
+ if defined?(JRUBY_VERSION)
23
+ gem 'sinatra', :require => false
24
+ else
25
+ gem 'sinatra'
26
+ end
27
27
  end
28
28
 
29
29
  gemspec
@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
6
6
  s.version = AppOpticsAPM::Version::STRING
7
7
  s.date = Time.now.strftime('%Y-%m-%d')
8
8
 
9
- s.license = "Librato Open License, Version 1.0"
9
+ s.license = "Librato Open License, Version 1.0, https://bit.ly/2Kmm0mN"
10
10
 
11
11
  s.authors = ["Maia Engeli", "Peter Giacomo Lombardo", "Spiros Eliopoulos"]
12
12
  s.email = %q{support@appoptics.com}
@@ -32,6 +32,9 @@ Automatic tracing and metrics for Ruby applications. Get started at appoptics.co
32
32
  'ext/oboe_metal/src/bson/bson.h',
33
33
  'ext/oboe_metal/src/bson/platform_hacks.h',
34
34
  'ext/oboe_metal/src/VERSION']
35
+ s.files -= ['build_gem.sh',
36
+ 'build_gem_upload_to_packagecloud.sh',
37
+ 'Rakefile']
35
38
 
36
39
  # TODO this is commented out util we can actually provide gems for different platforms
37
40
  # it will create a gem that goes into noop on Darwin and other unsupported platforms
@@ -51,9 +54,10 @@ Automatic tracing and metrics for Ruby applications. Get started at appoptics.co
51
54
  unless defined?(JRUBY_VERSION)
52
55
  s.add_development_dependency('byebug', '>= 8.0.0')
53
56
  s.add_development_dependency('minitest-hooks', '>= 1.5.0')
57
+ s.add_development_dependency('minitest-focus', '>=1.1.2')
54
58
  s.add_development_dependency('benchmark-ips', '>= 2.7.2')
55
59
  end
56
60
 
57
- s.required_ruby_version = '>= 2.0.0'
61
+ s.required_ruby_version = '>= 2.4.0'
58
62
  s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
59
63
  end
@@ -7,7 +7,7 @@
7
7
  # `bundle exec ruby 01_basic_tracing.rb`
8
8
 
9
9
  require 'appoptics_apm'
10
- unless AppopticsAPM::SDK.appoptics_ready?(10_000)
10
+ unless AppOpticsAPM::SDK.appoptics_ready?(10_000)
11
11
  puts "aborting!!! Agent not ready after 10 seconds"
12
12
  exit false
13
13
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2016 SolarWinds, LLC.
2
4
  # All rights reserved.
3
5
 
@@ -20,7 +22,7 @@ ao_include = File.join(ext_dir, 'src')
20
22
  version = File.read(File.join(ao_include, 'VERSION')).chomp
21
23
  if ENV['APPOPTICS_FROM_S3'].to_s.downcase == 'true'
22
24
  ao_path = File.join('https://s3-us-west-2.amazonaws.com/rc-files-t2/c-lib/', version)
23
- puts "Fetching c-lib from S3"
25
+ puts 'Fetching c-lib from S3'
24
26
  else
25
27
  ao_path = File.join('https://files.appoptics.com/c-lib', version)
26
28
  end
@@ -29,7 +31,7 @@ ao_arch = 'x86_64'
29
31
  if File.exist?('/etc/alpine-release')
30
32
  version = open('/etc/alpine-release').read.chomp
31
33
  ao_arch =
32
- if Gem::Version.new(version) < Gem::Version.new('3.9')
34
+ if Gem::Version.new(version) < Gem::Version.new('3.9')
33
35
  'alpine-libressl-x86_64'
34
36
  else # openssl
35
37
  'alpine-x86_64'
@@ -46,6 +48,8 @@ success = false
46
48
  while retries > 0
47
49
  begin
48
50
  # download
51
+ # TODO warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open
52
+ # ____ figure out if URI.open is supported in older rubies
49
53
  download = open(ao_item, 'rb')
50
54
  IO.copy_stream(download, clib)
51
55
 
@@ -3,5 +3,6 @@
3
3
  /* ruby calls this to load the extension */
4
4
  void Init_oboe_noop(void) {
5
5
  /* assume we haven't yet defined Hola */
6
- VALUE klass = rb_define_class("OboeNoop", rb_cObject);
6
+ // VALUE klass = rb_define_class("OboeNoop", rb_cObject);
7
+ rb_define_class("OboeNoop", rb_cObject);
7
8
  }
@@ -1 +1 @@
1
- 5.1.1
1
+ 7.1.1
data/lib/appoptics_apm.rb CHANGED
@@ -43,12 +43,11 @@ begin
43
43
 
44
44
  # appoptics_apm/loading can set AppOpticsAPM.loaded = false if the service key is not working
45
45
  require 'appoptics_apm/loading'
46
- require 'appoptics_apm/legacy_method_profiling'
47
- require 'appoptics_apm/method_profiling'
48
46
 
49
47
  if AppOpticsAPM.loaded
50
48
  require 'appoptics_apm/instrumentation'
51
49
  require 'appoptics_apm/support/transaction_metrics'
50
+ require 'appoptics_apm/support/x_trace_options'
52
51
 
53
52
  # Frameworks
54
53
  require 'appoptics_apm/frameworks/rails'
@@ -68,7 +67,6 @@ begin
68
67
  # Load Ruby module last. If there is no framework detected,
69
68
  # it will load all of the Ruby instrumentation
70
69
  require 'appoptics_apm/ruby'
71
- require 'oboe/backward_compatibility'
72
70
 
73
71
  require 'appoptics_apm/test' if ENV['APPOPTICS_GEM_TEST']
74
72
  rescue => e
@@ -6,7 +6,6 @@ module AppOpticsAPM
6
6
  module API
7
7
  extend AppOpticsAPM::API::Logging
8
8
  extend AppOpticsAPM::API::Metrics
9
- extend AppOpticsAPM::API::Profiling
10
9
  extend AppOpticsAPM::API::LayerInit
11
10
  extend AppOpticsAPM::API::Util
12
11
 
@@ -55,7 +55,7 @@ module AppOpticsAPM
55
55
  # ==== Arguments
56
56
  #
57
57
  # * +layer+ - The layer the reported event belongs to
58
- # * +exception+ - The exception to report
58
+ # * +exception+ - The exception to report, responds to :message and :backtrace(optional)
59
59
  # * +opts+ - Custom params if you want to log extra information
60
60
  #
61
61
  # ==== Example
@@ -80,7 +80,10 @@ module AppOpticsAPM
80
80
  opts.merge!(:Spec => 'error',
81
81
  :ErrorClass => exception.class.name,
82
82
  :ErrorMsg => exception.message)
83
- opts.merge!(:Backtrace => exception.backtrace.join("\r\n")) if exception.backtrace
83
+
84
+ if exception.respond_to?(:backtrace) && exception.backtrace
85
+ opts.merge!(:Backtrace => exception.backtrace.join("\r\n"))
86
+ end
84
87
 
85
88
  exception.instance_variable_set(:@exn_logged, true)
86
89
  log(layer, :error, opts)
@@ -205,6 +208,7 @@ module AppOpticsAPM
205
208
  def log_info(layer, opts = {})
206
209
  return AppOpticsAPM::Context.toString unless AppOpticsAPM.tracing?
207
210
 
211
+ opts[:Spec] = 'info'
208
212
  log_event(layer, :info, AppOpticsAPM::Context.createEvent, opts)
209
213
  end
210
214
 
@@ -48,6 +48,10 @@ module AppOpticsAPM
48
48
  [start_trace_with_target(span, xtrace, target, opts) { yield }, target['X-Trace']]
49
49
  end
50
50
 
51
+ def profile_method(*args)
52
+ AppOpticsAPM.logger.warn("DEPRECATED: AppOpticsAPM::API.profile_method is deprecated. Use: AppOpticsAPM::SDK::trace_method")
53
+ AppOpticsAPM::SDK.trace_method(*args)
54
+ end
51
55
  end
52
56
  end
53
57
  end
@@ -24,16 +24,14 @@ module AppOpticsAPM
24
24
 
25
25
  # Internal: Get the current backtrace.
26
26
  #
27
- # ignore - Number of frames to ignore at the top of the backtrace. Use
28
- # when you know how many layers deep in the key call is being
29
- # made.
27
+ # from - int, from position in array of backtraces
28
+ # to - int, end position in array of backtraces, can be negative to count from the end
30
29
  #
31
30
  # Returns a string with each frame of the backtrace separated by '\r\n'.
32
31
  #
33
- def backtrace(ignore = 0)
32
+ def backtrace(from = 0, to = -1)
34
33
  bt = Kernel.caller
35
- bt.slice!(0, ignore)
36
- trim_backtrace(bt).join("\r\n")
34
+ trim_backtrace(bt[from..to]).join("\r\n")
37
35
  end
38
36
 
39
37
  # Internal: Trim a backtrace to a manageable size
@@ -115,7 +113,7 @@ module AppOpticsAPM
115
113
  end
116
114
 
117
115
  def xtrace_v2?(xtr)
118
- return xtr && xtr.start_with?('2B')
116
+ xtr && xtr.start_with?('2B')
119
117
  end
120
118
  end
121
119
  end
@@ -16,13 +16,20 @@ module AppOpticsAPM
16
16
  @@instrumentation = [:action_controller, :action_controller_api, :action_view,
17
17
  :active_record, :bunnyclient, :bunnyconsumer, :cassandra, :curb,
18
18
  :dalli, :delayed_jobclient, :delayed_jobworker,
19
- :em_http_request, :excon, :faraday, :grpc_client, :grpc_server, :grape,
19
+ :excon, :faraday, :graphql, :grpc_client, :grpc_server, :grape,
20
20
  :httpclient, :nethttp, :memcached, :mongo, :moped, :padrino, :rack, :redis,
21
21
  :resqueclient, :resqueworker, :rest_client,
22
22
  :sequel, :sidekiqclient, :sidekiqworker, :sinatra, :typhoeus]
23
23
 
24
+ # ignore configs for instrumentations we don't have anymore
25
+ # can't remove because the config may still be present in configs created
26
+ # with previous gem versions
27
+ @@ignore = [:em_http_request]
28
+
24
29
  # Subgrouping of instrumentation
25
- @@http_clients = [:curb, :excon, :em_http_request, :faraday, :httpclient, :nethttp, :rest_client, :typhoeus]
30
+ @@http_clients = [:curb, :excon,
31
+ # :em_http_request,
32
+ :faraday, :httpclient, :nethttp, :rest_client, :typhoeus]
26
33
 
27
34
  ##
28
35
  # load_config_file
@@ -136,7 +143,7 @@ module AppOpticsAPM
136
143
  #
137
144
  # rubocop:disable Metrics/AbcSize
138
145
  def self.initialize(_data = {})
139
- @@instrumentation.each { |k| @@config[k] = {} }
146
+ (@@instrumentation+@@ignore).each { |k| @@config[k] = {} }
140
147
  @@config[:transaction_name] = {}
141
148
 
142
149
  # Always load the template, it has all the keys and defaults defined,
@@ -240,11 +247,15 @@ module AppOpticsAPM
240
247
  end
241
248
 
242
249
  elsif key == :tracing_mode
243
- # CAN'T DO THIS ANYMORE, ALL TRACING COMMUNICATION TO OBOE
250
+ # CAN'T DO `set_tracing_mode` ANYMORE, ALL TRACING COMMUNICATION TO OBOE
244
251
  # IS NOW HANDLED BY TransactionSettings
245
252
  # AppOpticsAPM.set_tracing_mode(value.to_sym) if AppOpticsAPM.loaded
246
253
 
247
- # Make sure that the mode is stored as a symbol
254
+ # Make sure that the mode is stored as a symbol
255
+ @@config[key.to_sym] = value.to_sym
256
+
257
+ elsif key == :trigger_tracing_mode
258
+ # Make sure that the mode is stored as a symbol
248
259
  @@config[key.to_sym] = value.to_sym
249
260
  end
250
261
  end