appoptics_apm 4.3.0 → 4.3.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 170c3e8f35f9e439942788b3a801282c4a1deaee3090e8957bc76bdf9a209915
4
- data.tar.gz: 4e23ef886ee0f9358dfba882bc35e0258b229b0c5fa617055345216e85376999
3
+ metadata.gz: 460a1905104ca068b80627a06b31c7c7aeae3e1da872a97c261aa86e675ae7b2
4
+ data.tar.gz: 4810bf515e2af6c0f685061b34574ef0ba223e79eeae8b99d0f9697e3399b522
5
5
  SHA512:
6
- metadata.gz: 2fa70bacf8b44352826eb859bd687385a801fb1ea3c3289f8c7e79cff251ec6e05bbeb6510780af9b61a25376c171265a4308118da84c975a7a3d6a8ac803f3a
7
- data.tar.gz: 763038da0e769d87d450d356fb517db8e908d337c0c989a9ae91a278fe7d42f09355b9c06a2f394dd5a30c0ff513587aeb65db24fcc828b186baacc629700470
6
+ metadata.gz: 4e6fa6323f8b61c4bf2f294858c749585ba02c22d991bc042f9b3c9047f77b4df78027f575408c2cba917921d6bba9e809374ca8bad66da3ef0bfa4e3279003c
7
+ data.tar.gz: 4b6f2524b9ac853bf3e36f926409bea3966e6501340de454a471f60d6a3159d2df0e481ff2c9eb03f68c3b59d2ed4b270003b7576e5b81b17733adb020995582
@@ -15,6 +15,7 @@ rvm:
15
15
  - 2.4.5
16
16
  - 2.3.8
17
17
  # - jruby-9.0.5.0
18
+ - ruby-head
18
19
 
19
20
  gemfile:
20
21
  - gemfiles/libraries.gemfile
@@ -23,9 +24,7 @@ gemfile:
23
24
  - gemfiles/instrumentation_mocked_oldgems.gemfile
24
25
  - gemfiles/frameworks.gemfile
25
26
  - gemfiles/rails52.gemfile
26
- - gemfiles/rails51.gemfile
27
27
  - gemfiles/rails42.gemfile
28
- ## - gemfiles/rails32.gemfile # We currently are not supporting Rails 3.2
29
28
  - gemfiles/delayed_job.gemfile
30
29
  - gemfiles/noop.gemfile
31
30
 
@@ -35,6 +34,8 @@ matrix:
35
34
  env: DBTYPE=mysql
36
35
  - rvm: 2.4.5
37
36
  env: DBTYPE=mysql
37
+ - rvm: ruby-head
38
+ env: DBTYPE=mysql
38
39
 
39
40
  - gemfile: gemfiles/unit.gemfile
40
41
  env: DBTYPE=mysql
@@ -69,20 +70,8 @@ matrix:
69
70
  env: DBTYPE=mysql2
70
71
  - gemfile: gemfiles/delayed_job.gemfile
71
72
  env: DBTYPE=mysql2
72
-
73
- # Rails 3.2 is not compatible with Ruby >= 2.4
74
- # We currently are not supporting Rails 3.2
75
- # - rvm: 2.5.1
76
- # gemfile: gemfiles/rails32.gemfile
77
- # - rvm: 2.4.4
78
- # gemfile: gemfiles/rails32.gemfile
79
-
80
- # - rvm: jruby-9.0.5.0
81
- # gemfile: gemfiles/delayed_job.gemfile
82
-
83
- # Skip testing on JRuby until activerecord-jdbc supports Rails 5.0
84
- # - rvm: jruby-9.0.5.0
85
- # gemfile: gemfiles/rails50.gemfile
73
+ allow_failures:
74
+ - rvm: ruby-head
86
75
 
87
76
  # FIXME: Figure out if this is still an issue when reviewing cassandra test setup
88
77
  # Attempt Travis/Cassandra fix re: https://github.com/travis-ci/travis-ci/issues/1484
@@ -12,9 +12,18 @@ Gem::Specification.new do |s|
12
12
  s.email = %q{support@appoptics.com}
13
13
  s.homepage = %q{https://www.appoptics.com/}
14
14
  s.summary = %q{AppOptics APM performance instrumentation gem for Ruby}
15
- s.description = %q{The AppOpticsAPM gem provides performance instrumentation for MRI Ruby and related frameworks.}
16
-
17
- s.extra_rdoc_files = ["LICENSE"]
15
+ s.description = <<-EOF
16
+ The appoptics_apm gem provides automatic tracing and metrics for Ruby applications. Get started at appoptics.com. @AppOptics
17
+ EOF
18
+
19
+ s.metadata = {
20
+ 'changelog_uri' => 'https://github.com/appoptics/appoptics-apm-ruby/releases',
21
+ 'documentation_uri' => 'https://docs.appoptics.com/kb/apm_tracing/ruby/',
22
+ 'homepage_uri' => 'https://www.appoptics.com/',
23
+ 'source_code_uri' => 'https://github.com/appoptics/appoptics-apm-ruby',
24
+ }
25
+
26
+ s.extra_rdoc_files = ['LICENSE']
18
27
  s.files = `git ls-files`.split("\n").reject { |f| f.match(%r{^(test|gemfiles)/}) }
19
28
  s.files += ['ext/oboe_metal/src/oboe.h',
20
29
  'ext/oboe_metal/src/oboe.hpp',
@@ -19,6 +19,7 @@ module AppOpticsAPM
19
19
  def appoptics_collect(verb = nil)
20
20
  kvs = {}
21
21
 
22
+ kvs[:Spec] = 'rsc'
22
23
  kvs[:IsService] = 1
23
24
 
24
25
  # Conditionally log query args
@@ -13,6 +13,7 @@ module AppOpticsAPM
13
13
  report_kvs = {}
14
14
 
15
15
  begin
16
+ report_kvs[:Spec] = 'rsc'
16
17
  report_kvs[:IsService] = 1
17
18
  report_kvs[:RemoteURL] = @uri
18
19
  report_kvs[:HTTPMethod] = args[0]
@@ -13,20 +13,20 @@ module AppOpticsAPM
13
13
 
14
14
  def appoptics_collect(params)
15
15
  kvs = {}
16
+ kvs[:Spec] = 'rsc'
16
17
  kvs[:IsService] = 1
17
- kvs[:RemoteProtocol] = ::AppOpticsAPM::Util.upcase(@data[:scheme])
18
- kvs[:RemoteHost] = @data[:host]
19
18
 
20
19
  # Conditionally log query args
21
20
  if AppOpticsAPM::Config[:excon][:log_args] && @data[:query]
22
21
  if @data[:query].is_a?(Hash)
23
- kvs[:ServiceArg] = "#{@data[:path]}?#{URI.encode_www_form(@data[:query])}"
22
+ service_arg = "#{@data[:path]}?#{URI.encode_www_form(@data[:query])}"
24
23
  else
25
- kvs[:ServiceArg] = "#{@data[:path]}?#{@data[:query]}"
24
+ service_arg = "#{@data[:path]}?#{@data[:query]}"
26
25
  end
27
26
  else
28
- kvs[:ServiceArg] = @data[:path]
27
+ service_arg = @data[:path]
29
28
  end
29
+ kvs[:RemoteURL] = "#{@data[:scheme]}://#{@data[:host]}:#{@data[:port]}#{service_arg}"
30
30
 
31
31
  # In the case of HTTP pipelining, params could be an array of
32
32
  # request hashes.
@@ -35,7 +35,7 @@ module AppOpticsAPM
35
35
  params.each do |p|
36
36
  methods << ::AppOpticsAPM::Util.upcase(p[:method])
37
37
  end
38
- kvs[:HTTPMethods] = methods.join(', ')[0..1024]
38
+ kvs[:HTTPMethods] = methods.join(',')[0..1024]
39
39
  kvs[:Pipeline] = true
40
40
  else
41
41
  kvs[:HTTPMethod] = ::AppOpticsAPM::Util.upcase(params[:method])
@@ -53,8 +53,10 @@ module AppOpticsAPM
53
53
 
54
54
  def requests_with_appoptics(pipeline_params)
55
55
  responses = nil
56
- AppOpticsAPM::API.trace(:excon, appoptics_collect(pipeline_params)) do
56
+ kvs = appoptics_collect(pipeline_params)
57
+ AppOpticsAPM::API.trace(:excon, kvs) do
57
58
  responses = requests_without_appoptics(pipeline_params)
59
+ kvs[:HTTPStatuses] = responses.map { |r| r.status }.join(',')
58
60
  end
59
61
  responses
60
62
  end
@@ -10,59 +10,52 @@ module AppOpticsAPM
10
10
 
11
11
  def run_request_with_appoptics(method, url, body, headers, &block)
12
12
  blacklisted = url_blacklisted?
13
+ remote_call = remote_call?
14
+
13
15
  unless AppOpticsAPM.tracing?
14
- xtrace = AppOpticsAPM::Context.toString
15
- @headers['X-Trace'] = xtrace if AppOpticsAPM::XTrace.valid?(xtrace) && !blacklisted
16
+ if remote_call && !blacklisted
17
+ xtrace = AppOpticsAPM::Context.toString
18
+ @headers['X-Trace'] = xtrace if AppOpticsAPM::XTrace.valid?(xtrace)
19
+ end
16
20
  return run_request_without_appoptics(method, url, body, headers, &block)
17
21
  end
18
22
 
19
23
  begin
20
24
  AppOpticsAPM::API.log_entry(:faraday)
25
+ xtrace = nil
26
+ if remote_call && !blacklisted
27
+ xtrace = AppOpticsAPM::Context.toString
28
+ @headers['X-Trace'] = xtrace if AppOpticsAPM::XTrace.valid?(xtrace)
29
+ end
21
30
 
22
- xtrace = AppOpticsAPM::Context.toString
23
- @headers['X-Trace'] = xtrace if AppOpticsAPM::XTrace.valid?(xtrace) && !blacklisted
24
31
  result = run_request_without_appoptics(method, url, body, headers, &block)
25
32
 
33
+ # Re-attach edge unless it's blacklisted
34
+ # or if we don't have a valid X-Trace header
35
+ if remote_call && !blacklisted
36
+ xtrace_new = result.headers['X-Trace']
37
+ AppOpticsAPM::XTrace.continue_service_context(xtrace, xtrace_new)
38
+ end
26
39
  kvs = {}
27
40
  kvs[:Middleware] = @builder.handlers
28
41
  kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:faraday][:collect_backtraces]
29
42
 
30
- # Only send service KVs if we're not using the Net::HTTP adapter
31
- # Otherwise, the Net::HTTP instrumentation will send the service KVs
32
- handle_service = !@builder.handlers.include?(Faraday::Adapter::NetHttp) &&
33
- !@builder.handlers.include?(Faraday::Adapter::Excon)
34
- if handle_service
35
- context = AppOpticsAPM::Context.toString
36
- task_id = AppOpticsAPM::XTrace.task_id(context)
37
-
38
- # Avoid cross host tracing for blacklisted domains
39
- # Conditionally add the X-Trace header to the outgoing request
40
- @headers['X-Trace'] = context unless blacklisted
41
-
42
- kvs[:IsService] = 1
43
- kvs[:RemoteProtocol] = (@url_prefix.scheme == 'https') ? 'HTTPS' : 'HTTP'
44
- kvs[:RemoteHost] = @url_prefix.host
45
- kvs[:RemotePort] = @url_prefix.port
46
- kvs[:ServiceArg] = url
47
- kvs[:HTTPMethod] = method
48
- kvs[:HTTPStatus] = result.status
49
- kvs[:Blacklisted] = true if blacklisted
50
-
51
- # Re-attach net::http edge unless it's blacklisted or if we don't have a
52
- # valid X-Trace header
43
+ # Only send service KVs if we're not using an adapter
44
+ # Otherwise, the adapter instrumentation will send the service KVs
45
+ if remote_call
46
+ kvs.merge!(rsc_kvs(url, method, result))
53
47
  unless blacklisted
54
- xtrace = result.headers['X-Trace']
55
- AppOpticsAPM::XTrace.continue_service_context(context, xtrace)
48
+ xtrace_new = result.headers['X-Trace']
49
+ AppOpticsAPM::XTrace.continue_service_context(xtrace, xtrace_new)
56
50
  end
57
51
  end
58
52
 
59
- AppOpticsAPM::API.log(:faraday, :info, kvs)
60
53
  result
61
54
  rescue => e
62
55
  AppOpticsAPM::API.log_exception(:faraday, e)
63
56
  raise e
64
57
  ensure
65
- AppOpticsAPM::API.log_exit(:faraday)
58
+ AppOpticsAPM::API.log_exit(:faraday, kvs)
66
59
  end
67
60
  end
68
61
 
@@ -72,6 +65,23 @@ module AppOpticsAPM
72
65
  url = @url_prefix ? @url_prefix.to_s : @host
73
66
  AppOpticsAPM::API.blacklisted?(url)
74
67
  end
68
+
69
+ # This is only considered a remote service call if the middleware/adapter is not instrumented
70
+ def remote_call?
71
+ (@builder.handlers.map(&:name) & APPOPTICS_INSTR_ADAPTERS).count == 0
72
+ end
73
+
74
+ def rsc_kvs(url, method, result)
75
+ kvs = { :Spec => 'rsc',
76
+ :IsService => 1,
77
+ :HTTPMethod => method.upcase,
78
+ :HTTPStatus => result.status, }
79
+ kvs[:Blacklisted] = true if url_blacklisted?
80
+ kvs[:RemoteURL] = result.to_hash[:url].to_s
81
+ kvs[:RemoteURL].split('?').first unless AppOpticsAPM::Config[:faraday][:log_args]
82
+
83
+ kvs
84
+ end
75
85
  end
76
86
  end
77
87
  end
@@ -80,5 +90,7 @@ if AppOpticsAPM::Config[:faraday][:enabled]
80
90
  if defined?(::Faraday)
81
91
  AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting faraday' if AppOpticsAPM::Config[:verbose]
82
92
  ::AppOpticsAPM::Util.send_include(::Faraday::Connection, ::AppOpticsAPM::Inst::FaradayConnection)
93
+ APPOPTICS_INSTR_ADAPTERS = ["Faraday::Adapter::NetHttp", "Faraday::Adapter::Excon", "Faraday::Adapter::Typhoeus"]
94
+ APPOPTICS_INSTR_ADAPTERS << "Faraday::Adapter::HTTPClient" if defined?Faraday::Adapter::HTTPClient
83
95
  end
84
96
  end
@@ -38,7 +38,7 @@ module AppOpticsAPM
38
38
  def server_streamer_with_appoptics(req, metadata: {}, &blk)
39
39
  @tags = grpc_tags('SERVER_STREAMING', metadata[:method] || metadata_to_send[:method])
40
40
  AppOpticsAPM::API.log_entry('grpc_client', @tags)
41
- metadata['x-trace'] = AppOpticsAPM::Context.toString
41
+ metadata['x-trace'] = AppOpticsAPM::Context.toString if AppOpticsAPM::Context.isValid
42
42
  AppOpticsAPM::SDK.set_transaction_name(metadata[:method]) if AppOpticsAPM.transaction_name.nil?
43
43
 
44
44
  patch_receive_and_check_status # need to patch this so that log_exit can be called after the enum is consumed
@@ -58,7 +58,7 @@ module AppOpticsAPM
58
58
  def bidi_streamer_with_appoptics(req, metadata: {}, &blk)
59
59
  @tags = grpc_tags('BIDI_STREAMING', metadata[:method] || metadata_to_send[:method])
60
60
  AppOpticsAPM::API.log_entry('grpc_client', @tags)
61
- metadata['x-trace'] = AppOpticsAPM::Context.toString
61
+ metadata['x-trace'] = AppOpticsAPM::Context.toString if AppOpticsAPM::Context.isValid
62
62
  AppOpticsAPM::SDK.set_transaction_name(metadata[:method]) if AppOpticsAPM.transaction_name.nil?
63
63
 
64
64
  patch_set_input_stream_done
@@ -79,7 +79,7 @@ module AppOpticsAPM
79
79
  def unary_response(req, type: , metadata: , without:)
80
80
  tags = grpc_tags(type, metadata[:method] || metadata_to_send[:method])
81
81
  AppOpticsAPM::SDK.trace('grpc_client', tags) do
82
- metadata['x-trace'] = AppOpticsAPM::Context.toString
82
+ metadata['x-trace'] = AppOpticsAPM::Context.toString if AppOpticsAPM::Context.isValid
83
83
  AppOpticsAPM::SDK.set_transaction_name(metadata[:method]) if AppOpticsAPM.transaction_name.nil?
84
84
  begin
85
85
  send(without, req, metadata: metadata)
@@ -117,9 +117,11 @@ module AppOpticsAPM
117
117
  end
118
118
 
119
119
  def context_from_incoming
120
- xtrace ||= @call.trailing_metadata['x-trace'] if @call.trailing_metadata && @call.trailing_metadata['x-trace']
121
- xtrace ||= @call.metadata['x-trace'] if @call.metadata && @call.metadata['x-trace']
122
- AppOpticsAPM::Context.fromString(xtrace) if xtrace
120
+ if AppOpticsAPM::Context.isValid
121
+ xtrace ||= @call.trailing_metadata['x-trace'] if @call.trailing_metadata && @call.trailing_metadata['x-trace']
122
+ xtrace ||= @call.metadata['x-trace'] if @call.metadata && @call.metadata['x-trace']
123
+ AppOpticsAPM::Context.fromString(xtrace) if xtrace
124
+ end
123
125
  end
124
126
 
125
127
  def exit_tags(tags)
@@ -21,26 +21,19 @@ if AppOpticsAPM::Config[:nethttp][:enabled]
21
21
  return request_without_appoptics(*args, &block)
22
22
  end
23
23
 
24
- AppOpticsAPM::API.trace(:'net-http') do
25
- opts = {}
24
+ opts = {}
25
+ AppOpticsAPM::API.trace(:'net-http', opts) do
26
26
  context = AppOpticsAPM::Context.toString
27
- task_id = AppOpticsAPM::XTrace.task_id(context)
27
+ # task_id = AppOpticsAPM::XTrace.task_id(context)
28
28
 
29
29
  # Collect KVs to report in the info event
30
- if args.length && args[0]
31
- req = args[0]
30
+ if args.respond_to?(:first) && args.first
31
+ req = args.first
32
32
 
33
+ opts[:Spec] = 'rsc'
33
34
  opts[:IsService] = 1
34
- opts[:RemoteProtocol] = use_ssl? ? :HTTPS : :HTTP
35
- opts[:RemoteHost] = addr_port
36
-
37
- # Conditionally log query params
38
- if AppOpticsAPM::Config[:nethttp][:log_args]
39
- opts[:ServiceArg] = req.path
40
- else
41
- opts[:ServiceArg] = req.path.split('?').first
42
- end
43
-
35
+ opts[:RemoteURL] = "#{use_ssl? ? 'https' : 'http'}://#{addr_port}"
36
+ opts[:RemoteURL] << (AppOpticsAPM::Config[:nethttp][:log_args] ? req.path : req.path.split('?').first)
44
37
  opts[:HTTPMethod] = req.method
45
38
  opts[:Blacklisted] = true if blacklisted
46
39
  opts[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:nethttp][:collect_backtraces]
@@ -68,9 +61,6 @@ if AppOpticsAPM::Config[:nethttp][:enabled]
68
61
  end
69
62
 
70
63
  next resp
71
- ensure
72
- # Log the info event with the KVs in opts
73
- AppOpticsAPM::API.log(:'net-http', :info, opts)
74
64
  end
75
65
  end
76
66
  end
@@ -12,6 +12,7 @@ module AppOpticsAPM
12
12
 
13
13
  def appoptics_collect(method, uri, query = nil)
14
14
  kvs = {}
15
+ kvs[:Spec] = 'rsc'
15
16
  kvs[:IsService] = 1
16
17
 
17
18
  # Conditionally log URL query params
@@ -27,9 +28,6 @@ module AppOpticsAPM
27
28
  kvs[:RemoteURL] = uri.to_s.split('?').first
28
29
  end
29
30
 
30
- kvs[:RemoteProtocol] = uri.scheme.upcase
31
- kvs[:RemoteHost] = "#{uri.host}:#{uri.port}"
32
- kvs[:ServiceArg] = "/?#{uri.query}"
33
31
  kvs[:HTTPMethod] = ::AppOpticsAPM::Util.upcase(method)
34
32
  kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:httpclient][:collect_backtraces]
35
33
  kvs
@@ -25,45 +25,39 @@ module AppOpticsAPM
25
25
  context = AppOpticsAPM::Context.toString
26
26
  options[:headers]['X-Trace'] = context unless blacklisted
27
27
 
28
+ kvs = {}
29
+ kvs[:Spec] = 'rsc'
30
+ kvs[:IsService] = 1
31
+ kvs[:HTTPMethod] = ::AppOpticsAPM::Util.upcase(options[:method])
32
+
28
33
  response = run_without_appoptics
29
34
 
35
+ # Re-attach edge unless it's blacklisted
36
+ # or if we don't have a valid X-Trace header
37
+ unless blacklisted
38
+ xtrace = response.headers['X-Trace']
39
+ AppOpticsAPM::XTrace.continue_service_context(context, xtrace)
40
+ end
41
+
30
42
  if response.code == 0
31
43
  exception = TyphoeusError.new(response.return_message)
32
44
  exception.set_backtrace(AppOpticsAPM::API.backtrace)
33
45
  AppOpticsAPM::API.log_exception(:typhoeus, exception)
34
46
  end
35
47
 
36
- kvs = {}
37
- kvs[:IsService] = 1
38
48
  kvs[:HTTPStatus] = response.code
39
49
  kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:typhoeus][:collect_backtraces]
40
-
41
- uri = URI(response.effective_url)
42
-
43
50
  # Conditionally log query params
44
- if AppOpticsAPM::Config[:typhoeus][:log_args]
45
- kvs[:RemoteURL] = uri.to_s
46
- else
47
- kvs[:RemoteURL] = uri.to_s.split('?').first
48
- end
49
-
50
- kvs[:HTTPMethod] = ::AppOpticsAPM::Util.upcase(options[:method])
51
+ uri = URI(response.effective_url)
52
+ kvs[:RemoteURL] = AppOpticsAPM::Config[:typhoeus][:log_args] ? uri.to_s : uri.to_s.split('?').first
51
53
  kvs[:Blacklisted] = true if blacklisted
52
54
 
53
- # Re-attach net::http edge unless it's blacklisted or if we don't have a
54
- # valid X-Trace header
55
- unless blacklisted
56
- xtrace = response.headers['X-Trace']
57
- AppOpticsAPM::XTrace.continue_service_context(context, xtrace)
58
- end
59
-
60
- AppOpticsAPM::API.log_info(:typhoeus, kvs)
61
55
  response
62
56
  rescue => e
63
57
  AppOpticsAPM::API.log_exception(:typhoeus, e)
64
58
  raise e
65
59
  ensure
66
- AppOpticsAPM::API.log_exit(:typhoeus)
60
+ AppOpticsAPM::API.log_exit(:typhoeus, kvs)
67
61
  end
68
62
  end
69
63
  end
@@ -178,7 +178,8 @@ module AppOpticsAPM
178
178
  return result
179
179
  end
180
180
 
181
- transaction_name_from_opts(opts)
181
+ # :TransactionName and 'TransactionName' need to be removed from opts
182
+ AppOpticsAPM.transaction_name = opts.delete('TransactionName') || opts.delete(:TransactionName)
182
183
 
183
184
  AppOpticsAPM::API.log_start(span, xtrace, opts)
184
185
  # AppOpticsAPM::Event.startTrace creates an Event without an Edge
@@ -293,6 +294,7 @@ module AppOpticsAPM
293
294
  # end
294
295
  #
295
296
  def appoptics_ready?(wait_milliseconds = 3000)
297
+ return false unless AppOpticsAPM.loaded
296
298
  # These codes are returned by isReady:
297
299
  # OBOE_SERVER_RESPONSE_UNKNOWN 0
298
300
  # OBOE_SERVER_RESPONSE_OK 1
@@ -302,21 +304,6 @@ module AppOpticsAPM
302
304
  # OBOE_SERVER_RESPONSE_CONNECT_ERROR 5
303
305
  AppopticsAPM::Context.isReady(wait_milliseconds) == 1
304
306
  end
305
-
306
- private
307
- # private method
308
- #
309
- # This should only be called at the beginning of a transaction,
310
- # when AppOpticsAPM.transaction_name needs to be set to nil
311
- # or whatever is provided in the opts
312
- def transaction_name_from_opts(opts)
313
- # :TransactionName and 'TransactionName' need to be removed from opts
314
- # :TransactionName should only be sent after it is set by send_metrics
315
- transaction_name = opts.delete('TransactionName')
316
- transaction_name = opts.delete(:TransactionName) || transaction_name
317
-
318
- AppOpticsAPM.transaction_name = transaction_name
319
- end
320
307
  end
321
308
 
322
309
  extend Tracing
@@ -8,7 +8,7 @@ module AppOpticsAPM
8
8
  module Version
9
9
  MAJOR = 4
10
10
  MINOR = 3
11
- PATCH = 0
11
+ PATCH = 1
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.3.0
4
+ version: 4.3.1
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: 2018-10-29 00:00:00.000000000 Z
13
+ date: 2018-11-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -116,8 +116,8 @@ dependencies:
116
116
  - - ">="
117
117
  - !ruby/object:Gem::Version
118
118
  version: 1.5.0
119
- description: The AppOpticsAPM gem provides performance instrumentation for MRI Ruby
120
- and related frameworks.
119
+ description: " The appoptics_apm gem provides automatic tracing and metrics for
120
+ Ruby applications. Get started at appoptics.com. @AppOptics\n"
121
121
  email: support@appoptics.com
122
122
  executables:
123
123
  - appoptics_apm_config
@@ -235,7 +235,11 @@ files:
235
235
  homepage: https://www.appoptics.com/
236
236
  licenses:
237
237
  - Librato Open License, Version 1.0
238
- metadata: {}
238
+ metadata:
239
+ changelog_uri: https://github.com/appoptics/appoptics-apm-ruby/releases
240
+ documentation_uri: https://docs.appoptics.com/kb/apm_tracing/ruby/
241
+ homepage_uri: https://www.appoptics.com/
242
+ source_code_uri: https://github.com/appoptics/appoptics-apm-ruby
239
243
  post_install_message:
240
244
  rdoc_options: []
241
245
  require_paths: