instana 1.5.0 → 1.5.2

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
  SHA1:
3
- metadata.gz: bead9a4a515329922c151505eae7f209c49be9d2
4
- data.tar.gz: bb7eb569bb0127e6d245858f3bbe595b1c8a62d4
3
+ metadata.gz: 2f4bc2a5ccafd6784e94f221a85e0fba6834fe23
4
+ data.tar.gz: f23e89da1122a87d34206ffaaa213aef0833c692
5
5
  SHA512:
6
- metadata.gz: cbe325aa85a8bca25ae4aaa0cd4317d2476d9b475d1fbd497722ccd3ea54472482f42f78cc1d7d035c4305344fd3fbc9e8531feb1dd4dcd5208aab20c14f5ae6
7
- data.tar.gz: 4cfd9167eec7ad906cea0259c238ed47efa07748a6ba8aaa8de243b4a957632576b8ffebc98ae308d729226c714d1a06bd7ac6c43676e17b1aefb017a575dc9d
6
+ metadata.gz: f653bfd0c09c1a1bd878b809b475c668d91c7c7bc759fbd306801d49a1bf18bea66b89747176043c72102e98e439005205170e8d2bfa63ecdf21e2dbbc225f27
7
+ data.tar.gz: 497fa0cd4b43d55260eceb7c34bbc66b6e0b8a497283b607a05761cfb1cf9afd0ad67bc849f0bb28ba7ea84aa7263849ce7239f33a3a9a7b07939a081acdc873
data/Configuration.md CHANGED
@@ -123,50 +123,3 @@ The gem can be configured to use your application logger instead:
123
123
 
124
124
  Setting `INSTANA_GEM_DEV` to a non nil value will enable extra logging output generally useful
125
125
  for development.
126
-
127
- #### Extended Debug Logging
128
-
129
- _Note: To use this, you must leave the gem original logger intact and not replace it as described above._
130
-
131
- The gem allows the debug level to be configured that affects
132
- what extra debug info it reports. It allows for:
133
-
134
- * `:agent` - shows all agent state related debug messages
135
- * `:agent_comm` - outputs all request/response pairs to and from the
136
- host agent
137
- * `:trace` - outputs debug messages related to tracing and trace management
138
-
139
- Log messages can be generated for these channels using:
140
-
141
- ```Ruby
142
- ::Instana.logger.agent("agent specific log msg")
143
- ::Instana.logger.agent_comm("agent communication specific log msg")
144
- ```
145
-
146
- To set the debug log level:
147
-
148
- ```Ruby
149
- ::Instana.logger.debug_level = [:agent, :agent_comm, :trace]
150
- # or
151
- ::Instana.logger.debug_level = [:agent_comm]
152
- # or
153
- ::Instana.logger.debug_level = :agent
154
- ```
155
-
156
- or to reset it:
157
-
158
- ```Ruby
159
- ::Instana.logger.debug_level = nil
160
- ```
161
-
162
- Example output:
163
- ```bash
164
- [2] pry(main)> Instana.logger.debug_level = :agent_comm
165
- => :agent_comm
166
-
167
- D, [2016-12-01T11:45:12.876527 #74127] DEBUG -- : Instana: POST Req -> -body-: http://127.0.0.1:42699/com.instana.plugin.ruby.74127 ->
168
- -{"gc":{"heap_live":171890,"heap_free":522},"memory":{"rss_size":51212.0}}- Resp -> body:#<Net::HTTPOK:0x007faee2161078> -> -[]-
169
-
170
- [3] pry(main)> Instana.logger.debug_level = nil
171
- => nil
172
- ```
data/README.md CHANGED
@@ -24,6 +24,7 @@ Any and all feedback is welcome. Happy Ruby visibility.
24
24
  [![sinatra](https://s3.amazonaws.com/instana/sinatra-logo.png?1)](http://www.sinatrarb.com/)
25
25
  [![padrino](https://s3.amazonaws.com/instana/padrino-logo.png?1)](http://padrinorb.com/)
26
26
  [![rack](https://s3.amazonaws.com/instana/rack-logo.png?1)](https://rack.github.io/)
27
+ [![rack](https://user-images.githubusercontent.com/395132/27842764-27e0e452-610d-11e7-811f-8575f83b8944.png?1)](http://www.grpc.io/)
27
28
 
28
29
  ## Installation
29
30
 
data/Rakefile CHANGED
@@ -41,8 +41,6 @@ task :environment do
41
41
  end
42
42
 
43
43
  task :console => :environment do
44
- # Possible debug levels: :agent, :agent_comm, :trace, :agent_response, :tracing
45
- # ::Instana.logger.debug_level = [ :agent, :agent_comm ]
46
44
  ARGV.clear
47
45
  Pry.start
48
46
  end
data/instana.gemspec CHANGED
@@ -36,5 +36,5 @@ Gem::Specification.new do |spec|
36
36
 
37
37
  # Indirect dependency
38
38
  # https://github.com/instana/ruby-sensor/issues/10
39
- spec.add_runtime_dependency('ffi', '>= 1.9.3')
39
+ spec.add_runtime_dependency('ffi', '>= 1.8.1')
40
40
  end
data/lib/instana/agent.rb CHANGED
@@ -63,7 +63,7 @@ module Instana
63
63
  # the host agent.
64
64
  #
65
65
  def after_fork
66
- ::Instana.logger.agent "after_fork hook called. Falling back to unannounced state and spawning a new background agent thread."
66
+ ::Instana.logger.debug "after_fork hook called. Falling back to unannounced state and spawning a new background agent thread."
67
67
 
68
68
  # Reseed the random number generator for this
69
69
  # new thread.
@@ -170,7 +170,7 @@ module Instana
170
170
  #
171
171
  def announce_sensor
172
172
  unless @discovered
173
- ::Instana.logger.agent("#{__method__} called but discovery hasn't run yet!")
173
+ ::Instana.logger.debug("#{__method__} called but discovery hasn't run yet!")
174
174
  return false
175
175
  end
176
176
 
@@ -195,7 +195,7 @@ module Instana
195
195
  req = Net::HTTP::Put.new(uri)
196
196
  req.body = announce_payload.to_json
197
197
 
198
- ::Instana.logger.agent "Announce: http://#{@discovered[:agent_host]}:#{@discovered[:agent_port]}/#{DISCOVERY_PATH} - payload: #{req.body}"
198
+ ::Instana.logger.debug "Announce: http://#{@discovered[:agent_host]}:#{@discovered[:agent_port]}/#{DISCOVERY_PATH} - payload: #{req.body}"
199
199
 
200
200
  response = make_host_agent_request(req)
201
201
 
@@ -223,7 +223,7 @@ module Instana
223
223
  #
224
224
  def report_metrics(payload)
225
225
  unless @discovered
226
- ::Instana.logger.agent("#{__method__} called but discovery hasn't run yet!")
226
+ ::Instana.logger.debug("#{__method__} called but discovery hasn't run yet!")
227
227
  return false
228
228
  end
229
229
 
@@ -275,7 +275,7 @@ module Instana
275
275
  uri = URI.parse("http://#{@discovered[:agent_host]}:#{@discovered[:agent_port]}/#{path}")
276
276
  req = Net::HTTP::Post.new(uri)
277
277
  req.body = payload.to_json
278
- ::Instana.logger.agent_response "Responding to agent: #{req.inspect}"
278
+ ::Instana.logger.debug "Responding to agent request: #{req.inspect}"
279
279
  make_host_agent_request(req)
280
280
  end
281
281
 
@@ -288,7 +288,7 @@ module Instana
288
288
  return unless @state == :announced
289
289
 
290
290
  unless @discovered
291
- ::Instana.logger.agent("#{__method__} called but discovery hasn't run yet!")
291
+ ::Instana.logger.debug("#{__method__} called but discovery hasn't run yet!")
292
292
  return false
293
293
  end
294
294
 
@@ -397,7 +397,7 @@ module Instana
397
397
  return true if ENV['INSTANA_GEM_TEST']
398
398
 
399
399
  if forked?
400
- ::Instana.logger.agent "Instana: detected fork. Calling after_fork"
400
+ ::Instana.logger.debug "Instana: detected fork. Calling after_fork"
401
401
  after_fork
402
402
  end
403
403
 
@@ -417,7 +417,7 @@ module Instana
417
417
  # `:announced`, `:unannounced`
418
418
  #
419
419
  def transition_to(state)
420
- ::Instana.logger.agent("Transitioning to #{state}")
420
+ ::Instana.logger.debug("Transitioning to #{state}")
421
421
  case state
422
422
  when :announced
423
423
  # announce successful; set state
@@ -456,7 +456,7 @@ module Instana
456
456
  end
457
457
 
458
458
  response = @httpclient.request(req)
459
- ::Instana.logger.agent_comm "#{req.method}->#{req.uri} body:(#{req.body}) Response:#{response} body:(#{response.body})"
459
+ # ::Instana.logger.debug "#{req.method}->#{req.uri} body:(#{req.body}) Response:#{response} body:(#{response.body})"
460
460
 
461
461
  response
462
462
  rescue Errno::ECONNREFUSED
@@ -5,7 +5,7 @@ if defined?(::Rails)
5
5
  ::Instana.logger = ::Rails.logger if ::Rails.logger
6
6
 
7
7
  if ::Rails::VERSION::MAJOR < 3
8
- ::Rails.configuration.after_initialization do
8
+ ::Rails.configuration.after_initialize do
9
9
  ::Instana.logger.info "Instrumenting Rack"
10
10
  ::Rails.configuration.middleware.insert 0, ::Instana::Rack
11
11
  end
@@ -2,7 +2,6 @@ require "logger"
2
2
 
3
3
  module Instana
4
4
  class XLogger < Logger
5
- LEVELS = [:agent, :agent_comm, :trace, :agent_response, :tracing].freeze
6
5
  STAMP = "Instana: ".freeze
7
6
 
8
7
  def initialize(*args)
@@ -11,63 +10,11 @@ module Instana
11
10
  self.level = Logger::DEBUG
12
11
  elsif ENV.key?('INSTANA_GEM_DEV')
13
12
  self.level = Logger::DEBUG
14
- self.debug_level = nil
15
13
  else
16
14
  self.level = Logger::WARN
17
15
  end
18
16
  end
19
17
 
20
- # Sets the debug level for this logger. The debug level is broken up into various
21
- # sub-levels as defined in LEVELS:
22
- #
23
- # :agent - All agent related messages such as state & announcements
24
- # :agent_comm - Output all payload comm sent between this Ruby gem and the host agent
25
- # :agent_response - Outputs messages related to handling requests received by the host agent
26
- # :trace - Output all traces reported to the host agent
27
- # :tracing - Output messages related to tracing components, spans and management
28
- #
29
- # To use:
30
- # ::Instana.logger.debug_level = [:agent_comm, :trace]
31
- #
32
- def debug_level=(levels)
33
- return unless levels
34
-
35
- LEVELS.each do |l|
36
- instance_variable_set("@level_#{l}", false)
37
- end
38
-
39
- levels = [ levels ] unless levels.is_a?(Array)
40
- levels.each do |l|
41
- next unless LEVELS.include?(l)
42
- instance_variable_set("@level_#{l}", true)
43
- end
44
- end
45
-
46
- def agent(msg)
47
- return unless @level_agent
48
- self.debug(msg)
49
- end
50
-
51
- def agent_comm(msg)
52
- return unless @level_agent_comm
53
- self.debug(msg)
54
- end
55
-
56
- def agent_response(msg)
57
- return unless @level_agent_response
58
- self.debug(msg)
59
- end
60
-
61
- def trace(msg)
62
- return unless @level_trace
63
- self.debug(msg)
64
- end
65
-
66
- def tracing(msg)
67
- return unless @level_tracing
68
- self.debug(msg)
69
- end
70
-
71
18
  def error(msg)
72
19
  super(STAMP + msg)
73
20
  end
@@ -89,4 +36,3 @@ module Instana
89
36
  end
90
37
  end
91
38
  end
92
-
@@ -25,7 +25,7 @@ module Instana
25
25
  #
26
26
  # @param [Trace] the trace to be added to the queue
27
27
  def add(trace)
28
- ::Instana.logger.trace("Queuing completed trace id: #{trace.id}")
28
+ # ::Instana.logger.debug("Queuing completed trace id: #{trace.id}")
29
29
  @queue.push(trace)
30
30
  end
31
31
 
@@ -33,7 +33,7 @@ module Instana
33
33
  #
34
34
  # @param [Trace] the trace to be added to the queue
35
35
  def stage(trace)
36
- ::Instana.logger.trace("Staging incomplete trace id: #{trace.id}")
36
+ ::Instana.logger.debug("Staging incomplete trace id: #{trace.id}")
37
37
  @staging_queue.add(trace)
38
38
  end
39
39
 
@@ -46,7 +46,7 @@ module Instana
46
46
  if @staging_queue.size > 0
47
47
  @staging_queue.delete_if do |t|
48
48
  if t.complete?
49
- ::Instana.logger.trace("Moving staged complete trace to main queue: #{t.id}")
49
+ ::Instana.logger.debug("Moving staged complete trace to main queue: #{t.id}")
50
50
  add(t)
51
51
  true
52
52
  elsif t.discard?
@@ -160,7 +160,7 @@ module Instana
160
160
  end
161
161
  }
162
162
  unless candidate
163
- ::Instana.logger.trace("Couldn't find staged trace with trace_id: #{trace_id}")
163
+ ::Instana.logger.debug("Couldn't find staged trace with trace_id: #{trace_id}")
164
164
  end
165
165
  candidate
166
166
  end
@@ -355,7 +355,7 @@ module Instana
355
355
  end
356
356
 
357
357
  if ::Instana.tracer.current_span.id != id
358
- ::Instana.logger.tracing "Closing a span that isn't active. This will result in a broken trace: #{self.inspect}"
358
+ ::Instana.logger.debug "Closing a span that isn't active. This will result in a broken trace: #{self.inspect}"
359
359
  end
360
360
 
361
361
  if is_root?
@@ -1,4 +1,4 @@
1
1
  module Instana
2
- VERSION = "1.5.0"
2
+ VERSION = "1.5.2"
3
3
  VERSION_FULL = "instana-#{VERSION}"
4
4
  end
@@ -79,6 +79,9 @@ class GrpcTest < Minitest::Test
79
79
 
80
80
  assert 'Hello World', response.message
81
81
 
82
+ # Pause for a split second to allow traces to be queued
83
+ sleep 0.2
84
+
82
85
  assert_equal 2, ::Instana.processor.queue_count
83
86
  client_trace, server_trace = differentiate_trace(
84
87
  Instana.processor.queued_traces
@@ -111,6 +114,9 @@ class GrpcTest < Minitest::Test
111
114
 
112
115
  assert '01234', response.message
113
116
 
117
+ # Pause for a split second to allow traces to be queued
118
+ sleep 0.2
119
+
114
120
  assert_equal 2, ::Instana.processor.queue_count
115
121
  client_trace, server_trace = differentiate_trace(
116
122
  Instana.processor.queued_traces
@@ -138,10 +144,11 @@ class GrpcTest < Minitest::Test
138
144
  PingPongService::PingRequest.new(message: 'Hello World')
139
145
  )
140
146
  end
141
- sleep 1
142
-
143
147
  assert %w(0 1 2 3 4), responses.map(&:message)
144
148
 
149
+ # Pause for a split second to allow traces to be queued
150
+ sleep 0.2
151
+
145
152
  assert_equal 2, ::Instana.processor.queue_count
146
153
  client_trace, server_trace = differentiate_trace(
147
154
  Instana.processor.queued_traces
@@ -175,6 +182,9 @@ class GrpcTest < Minitest::Test
175
182
 
176
183
  assert %w(0 2 4 6 8), responses.to_a.map(&:message)
177
184
 
185
+ # Pause for a split second to allow traces to be queued
186
+ sleep 0.2
187
+
178
188
  assert_equal 2, ::Instana.processor.queue_count
179
189
  client_trace, server_trace = differentiate_trace(
180
190
  Instana.processor.queued_traces
@@ -202,6 +212,9 @@ class GrpcTest < Minitest::Test
202
212
  end
203
213
  end
204
214
 
215
+ # Pause for a split second to allow traces to be queued
216
+ sleep 0.2
217
+
205
218
  assert_equal 2, ::Instana.processor.queue_count
206
219
  client_trace, server_trace = differentiate_trace(
207
220
  Instana.processor.queued_traces
@@ -234,6 +247,9 @@ class GrpcTest < Minitest::Test
234
247
  end
235
248
  end
236
249
 
250
+ # Pause for a split second to allow traces to be queued
251
+ sleep 0.2
252
+
237
253
  assert_equal 2, ::Instana.processor.queue_count
238
254
  client_trace, server_trace = differentiate_trace(
239
255
  Instana.processor.queued_traces
@@ -264,7 +280,9 @@ class GrpcTest < Minitest::Test
264
280
  rescue
265
281
  end
266
282
  end
267
- sleep 1
283
+
284
+ # Pause for a split second to allow traces to be queued
285
+ sleep 0.2
268
286
 
269
287
  assert_equal 2, ::Instana.processor.queue_count
270
288
  client_trace, server_trace = differentiate_trace(
@@ -294,7 +312,9 @@ class GrpcTest < Minitest::Test
294
312
  end
295
313
  )
296
314
  end
297
- sleep 1
315
+
316
+ # Pause for a split second to allow traces to be queued
317
+ sleep 0.2
298
318
 
299
319
  assert_equal 2, ::Instana.processor.queue_count
300
320
  client_trace, server_trace = differentiate_trace(
data/test/test_helper.rb CHANGED
@@ -27,9 +27,6 @@ end
27
27
 
28
28
  Minitest::Reporters.use! MiniTest::Reporters::SpecReporter.new
29
29
 
30
- # Set this (or a subset) if you want increased debug output
31
- #::Instana.logger.debug_level = [ :agent, :agent_comm, :trace ]
32
-
33
30
  # Used to reset the gem to boot state. It clears out any queued and/or staged
34
31
  # traces and resets the tracer to no active trace.
35
32
  #
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.5.0
4
+ version: 1.5.2
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: 2017-07-04 00:00:00.000000000 Z
11
+ date: 2017-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: 1.9.3
145
+ version: 1.8.1
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 1.9.3
152
+ version: 1.8.1
153
153
  description: Provides Ruby sensor instrumentation for Instana.
154
154
  email:
155
155
  - pglombardo@gmail.com