instana 1.10.0 → 1.10.1

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: adc4cb8ce42b827dfc8b08f0e52de9950ca1c57f9ede6ec86259ac9a81ff3ce0
4
- data.tar.gz: 5b0c1b1afbb4f5d76db69aa88dc8e610e23e1e11babe04f6f0c0242e8a5ae05a
3
+ metadata.gz: c4db47f5122c6e0eaf7bad00a6d957c61d24b02388f6825bbca0a12ebd7f66f2
4
+ data.tar.gz: 27789ad51f9da00b7e36e9133aca998cf3afd2e8558906042f0fe6c315c5eaaa
5
5
  SHA512:
6
- metadata.gz: 8c11d0557caf968f3a238821825d08fa8a3a555d4e38cedaefb2f2db958e0300dede11da2d526bdfee03ec87fa3ff5400b5b93adab190e72bb9bd70f3f6230e3
7
- data.tar.gz: 44708267befb20198a8bef872d09977ee033a7789c63c042f0b78d87549d4df47fa589501158d5e71d6c32b3fcf025f1706771513f43b366087d0ac43808cf8a
6
+ metadata.gz: 909a3eddcc3c749c7e307fb6ec6c8e6a1b8bc5f0005d3c97cbe5e61958e05de6a69103581709503587ab5482069c24400ab1ac90ea246ac4f6aa2946b6967513
7
+ data.tar.gz: 2452014812a75f56ad53921db3d0c4c55b8a6f22f4bb063d79b77bb56b975411d671db4378e693fbd1e69f664b8ffb7f44cc6a8a109af0c1aa9659af6b084929
data/Gemfile CHANGED
@@ -21,16 +21,16 @@ end
21
21
  group :development do
22
22
  gem 'ruby-debug', :platforms => [:mri_18, :jruby]
23
23
  gem 'debugger', :platform => :mri_19
24
- gem 'stackprof'
24
+ gem 'stackprof', :platform => [:mri_19, :mri_20]
25
25
 
26
26
  if RUBY_VERSION > '1.8.7'
27
27
  gem 'pry'
28
28
 
29
29
  if RUBY_VERSION < '2.2'
30
- gem 'byebug', '< 9.1.0'
31
- gem 'pry-byebug'
30
+ gem 'byebug', '< 9.1.0', :platform => [:mri_19, :mri_20]
31
+ gem 'pry-byebug', :platform => [:mri_19, :mri_20]
32
32
  else
33
- gem 'pry-byebug'
33
+ gem 'pry-byebug', :platform => [:mri_19, :mri_20]
34
34
  end
35
35
  else
36
36
  gem 'pry', '0.9.12.4'
data/benchmarks/Gemfile CHANGED
@@ -3,9 +3,5 @@ source "https://rubygems.org"
3
3
 
4
4
  git_source(:github) {|repo_name| "https://github.com/instana/#{repo_name}" }
5
5
 
6
- gem "puma"
7
- gem "rack"
8
- gem "ruby-prof"
9
-
10
6
  gem "instana", :path => "~/Projects/instana/ruby-sensor"
11
7
 
data/instana.gemspec CHANGED
@@ -26,16 +26,18 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency "bundler", "~> 2.0"
27
27
  spec.add_development_dependency "rake", "~> 10.0"
28
28
  spec.add_development_dependency "minitest", "~> 5.0"
29
+ spec.add_development_dependency('pry', '>= 0.10.0')
29
30
 
30
31
  # Development debugging
31
- spec.add_development_dependency('byebug', '>= 8.0.0')
32
- spec.add_development_dependency('pry', '>= 0.10.0')
33
- spec.add_development_dependency('pry-byebug', '>= 3.0.0')
32
+ unless RUBY_PLATFORM =~ /java/i
33
+ spec.add_development_dependency('byebug', '>= 8.0.0')
34
+ spec.add_development_dependency('pry-byebug', '>= 3.0.0')
35
+ end
34
36
 
35
- spec.add_runtime_dependency('sys-proctable', '>= 0.9.2')
37
+ spec.add_runtime_dependency('sys-proctable', '>= 1.2.2')
36
38
  spec.add_runtime_dependency('get_process_mem', '>= 0.2.1')
37
39
  spec.add_runtime_dependency('timers', '>= 4.0.0')
38
- spec.add_runtime_dependency('oj', '>=3.0.11')
40
+ spec.add_runtime_dependency('oj', '>=3.0.11') unless RUBY_PLATFORM =~ /java/i
39
41
 
40
42
  # Indirect dependency
41
43
  # https://github.com/instana/ruby-sensor/issues/10
data/lib/instana/agent.rb CHANGED
@@ -1,4 +1,3 @@
1
- require 'oj'
2
1
  require 'net/http'
3
2
  require 'socket'
4
3
  require 'sys/proctable'
@@ -50,7 +49,7 @@ module Instana
50
49
  @thread_spawn_lock = Mutex.new
51
50
 
52
51
  # Detect platform flags
53
- @is_linux = (RUBY_PLATFORM =~ /linux/i) ? true : false
52
+ @is_linux = (RbConfig::CONFIG['host_os'] =~ /linux/i) ? true : false
54
53
  @is_osx = (RUBY_PLATFORM =~ /darwin/i) ? true : false
55
54
 
56
55
  # In case we're running in Docker, have the default gateway available
@@ -232,7 +231,7 @@ module Instana
232
231
  Instana.logger.debug { e.backtrace.join("\r\n") }
233
232
  return false
234
233
  ensure
235
- socket.close if socket
234
+ socket.close if socket && !socket.closed?
236
235
  end
237
236
 
238
237
  # Method to report metrics data to the host agent.
@@ -41,7 +41,10 @@ module Instana
41
41
  end
42
42
 
43
43
  def execute_with_instana(sql, name = nil)
44
- if !::Instana.tracer.tracing? || ignore_payload?(name, sql)
44
+ tracing = ::Instana.tracer.tracing?
45
+ if !tracing || ignore_payload?(name, sql)
46
+ return execute_without_instana(sql, name)
47
+ elsif ::Instana.tracer.current_span[:n] == :activerecord
45
48
  return execute_without_instana(sql, name)
46
49
  end
47
50
 
@@ -11,18 +11,17 @@ if defined?(::ActiveRecord) && ::Instana.config[:active_record][:enabled]
11
11
  ::Instana.logger.info "Instrumenting ActiveRecord (mysql)"
12
12
  ActiveRecord::ConnectionAdapters::MysqlAdapter.send(:include, ::Instana::Instrumentation::MysqlAdapter)
13
13
  ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter.send(:include, ::Instana::Instrumentation::AbstractMysqlAdapter)
14
+ end
14
15
 
15
16
  # Mysql2
16
- elsif defined?(ActiveRecord::ConnectionAdapters::Mysql2Adapter)
17
+ if defined?(ActiveRecord::ConnectionAdapters::Mysql2Adapter)
17
18
  ::Instana.logger.info "Instrumenting ActiveRecord (mysql2)"
18
19
  ActiveRecord::ConnectionAdapters::Mysql2Adapter.send(:include, ::Instana::Instrumentation::Mysql2Adapter)
20
+ end
19
21
 
20
22
  # Postgres
21
- elsif defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
23
+ if defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
22
24
  ::Instana.logger.info "Instrumenting ActiveRecord (postgresql)"
23
25
  ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.send(:include, ::Instana::Instrumentation::PostgreSQLAdapter)
24
-
25
- else
26
- ::Instana.logger.debug "Unsupported ActiveRecord adapter"
27
26
  end
28
27
  end
data/lib/instana/setup.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'oj_check'
2
+
1
3
  require "instana/base"
2
4
  require "instana/config"
3
5
  require "instana/agent"
@@ -10,7 +12,10 @@ require "instana/instrumentation"
10
12
  ::Instana.agent.setup
11
13
 
12
14
  # Register the metric collectors
13
- require 'instana/collectors/gc'
15
+ unless RUBY_PLATFORM == 'java'.freeze
16
+ require 'instana/collectors/gc'
17
+ end
18
+
14
19
  require 'instana/collectors/memory'
15
20
  require 'instana/collectors/thread'
16
21
 
@@ -1,4 +1,4 @@
1
1
  module Instana
2
- VERSION = "1.10.0"
2
+ VERSION = "1.10.1"
3
3
  VERSION_FULL = "instana-#{VERSION}"
4
4
  end
data/lib/oj_check.rb ADDED
@@ -0,0 +1,16 @@
1
+ begin
2
+ require 'oj'
3
+ rescue LoadError => e
4
+ # OJ is not available in JRuby
5
+ module Instana
6
+ class Oj
7
+ def self.dump(*args)
8
+ args.first.to_json
9
+ end
10
+
11
+ def self.load(*args)
12
+ JSON.parse args.first
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,7 +1,10 @@
1
1
  require 'test_helper'
2
- require 'oj'
2
+ require './lib/oj_check'
3
3
 
4
4
  class AgentTest < Minitest::Test
5
+
6
+ Oj = ::Instana::Oj unless defined?(Oj)
7
+
5
8
  def test_agent_host_detection
6
9
  url = "http://#{::Instana.config[:agent_host]}:#{::Instana.config[:agent_port]}/"
7
10
  stub_request(:get, url)
@@ -2,6 +2,7 @@ require 'test_helper'
2
2
 
3
3
  class BenchIDs < Minitest::Benchmark
4
4
  def bench_generate_id
5
+ # TODO: This performs poorly on JRuby.
5
6
  assert_performance_constant do |input|
6
7
  500_000.times do
7
8
  ::Instana::Util.generate_id
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: instana
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Giacomo Lombardo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-16 00:00:00.000000000 Z
11
+ date: 2019-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -53,33 +53,33 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: byebug
56
+ name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 8.0.0
61
+ version: 0.10.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 8.0.0
68
+ version: 0.10.0
69
69
  - !ruby/object:Gem::Dependency
70
- name: pry
70
+ name: byebug
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 0.10.0
75
+ version: 8.0.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 0.10.0
82
+ version: 8.0.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pry-byebug
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 0.9.2
103
+ version: 1.2.2
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 0.9.2
110
+ version: 1.2.2
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: get_process_mem
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -247,6 +247,7 @@ files:
247
247
  - lib/instana/tracing/span_context.rb
248
248
  - lib/instana/util.rb
249
249
  - lib/instana/version.rb
250
+ - lib/oj_check.rb
250
251
  - lib/opentracing.rb
251
252
  - log/.keep
252
253
  - test/agent/agent_test.rb