instana 1.0.2 → 1.0.3

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: 68e23278bff6774c0cc9d5d3a82677044c03db4f
4
- data.tar.gz: 0ff491c646782556866bfa6c0751e22f19f6dca8
3
+ metadata.gz: e4988b08659f80e1f76d21135af688030ee190a0
4
+ data.tar.gz: c773f6f64f7559da3e10dbfef73d1ca8012bd289
5
5
  SHA512:
6
- metadata.gz: b82e66f9aae2e19b921332f6daecd7e184ee6e98fa38802490bcd291ea35881ebc0b1396def590b8825542b40932513aa959ab69a488234fbf0f0bd6c99e8952
7
- data.tar.gz: 013a6f0b98e114cfecca44c05b47b2b8af4e365398e71d3133ae796a671812e3e05ca829ae368c51d38ea068cc61364a713e10c2180bd700f9b04b9edad05275
6
+ metadata.gz: 2b6c215de5684fffe16f8338958b47b8b09cc8b17e6a15b4e2e8a6361f9eb14ba8ca343d8b7ca6a08c7b8d92d95a6ea5a368cd21d4211194c1175ef0a2f796bd
7
+ data.tar.gz: 9e22ce676e64dd9eb0adab68ea0a9933e1343f83356f88a0796ac6aa3f89582d76fe01d3dc4636afe62b2f6e77cdeca38d7e3a61861dd328e24aa00828cb2dbc
data/lib/instana/agent.rb CHANGED
@@ -9,6 +9,7 @@ module Instana
9
9
  class Agent
10
10
  attr_accessor :state
11
11
  attr_accessor :agent_uuid
12
+ attr_accessor :process
12
13
 
13
14
  LOCALHOST = '127.0.0.1'.freeze
14
15
  MIME_JSON = 'application/json'.freeze
@@ -18,14 +19,6 @@ module Instana
18
19
  # Supported two states (unannounced & announced)
19
20
  @state = :unannounced
20
21
 
21
- # Snapshot data is collected once per process but resent
22
- # every 10 minutes along side process metrics.
23
- @snapshot = ::Instana::Util.take_snapshot
24
-
25
- # Set last snapshot to just under 10 minutes ago
26
- # so we send a snapshot sooner than later
27
- @last_snapshot = Time.now - 570
28
-
29
22
  # Timestamp of the last successful response from
30
23
  # entity data reporting.
31
24
  @entity_last_seen = Time.now
@@ -114,10 +107,10 @@ module Instana
114
107
 
115
108
  # The collect timer
116
109
  # If we are in announced state, send metric data (only delta reporting)
117
- # every ::Instana::Collector.interval seconds.
118
- @collect_timer = @timers.every(::Instana::Collector.interval) do
110
+ # every ::Instana.config[:collector][:interval] seconds.
111
+ @collect_timer = @timers.every(::Instana.config[:collector][:interval]) do
119
112
  if @state == :announced
120
- if !::Instana::Collector.collect_and_report
113
+ if !::Instana.collector.collect_and_report
121
114
  # If report has been failing for more than 1 minute,
122
115
  # fall back to unannounced state
123
116
  if (Time.now - @entity_last_seen) > 60
@@ -197,30 +190,18 @@ module Instana
197
190
  #
198
191
  # @param paylod [Hash] The collection of metrics to report.
199
192
  #
200
- def report_entity_data(payload)
193
+ # @return [Boolean] true on success, false otherwise
194
+ #
195
+ def report_metrics(payload)
201
196
  unless @discovered
202
197
  ::Instana.logger.agent("#{__method__} called but discovery hasn't run yet!")
203
198
  return false
204
199
  end
205
200
 
206
- with_snapshot = false
207
201
  path = "com.instana.plugin.ruby.#{@process[:report_pid]}"
208
202
  uri = URI.parse("http://#{@discovered[:agent_host]}:#{@discovered[:agent_port]}/#{path}")
209
203
  req = Net::HTTP::Post.new(uri)
210
204
 
211
- # Every 5 minutes, send snapshot data as well
212
- if (Time.now - @last_snapshot) > 600
213
- with_snapshot = true
214
- payload.merge!(@snapshot)
215
-
216
- # Add in process related that could have changed since
217
- # snapshot was taken.
218
- p = { :pid => @process[:report_pid] }
219
- p[:name] = @process[:name]
220
- p[:exec_args] = @process[:arguments]
221
- payload.merge!(p)
222
- end
223
-
224
205
  req.body = payload.to_json
225
206
  response = make_host_agent_request(req)
226
207
 
@@ -233,7 +214,6 @@ module Instana
233
214
 
234
215
  if response.code.to_i == 200
235
216
  @entity_last_seen = Time.now
236
- @last_snapshot = Time.now if with_snapshot
237
217
  return true
238
218
  end
239
219
 
@@ -417,18 +397,14 @@ module Instana
417
397
  # Reset the entity timer
418
398
  @entity_last_seen = Time.now
419
399
 
420
- # Set last snapshot to 10 minutes ago
421
- # so we send a snapshot on first report
422
- @last_snapshot = Time.now - 601
423
400
  when :unannounced
424
401
  @state = :unannounced
425
402
 
426
- # Set last snapshot to 10 minutes ago
427
- # so we send a snapshot on first report
428
- @last_snapshot = Time.now - 601
429
403
  else
430
404
  ::Instana.logger.warn "Uknown agent state: #{state}"
431
405
  end
406
+ ::Instana.collector.reset_timer!
407
+ true
432
408
  end
433
409
 
434
410
  # Centralization of the net/http communications
data/lib/instana/base.rb CHANGED
@@ -6,7 +6,7 @@ require "instana/helpers"
6
6
  module Instana
7
7
  class << self
8
8
  attr_accessor :agent
9
- attr_accessor :collectors
9
+ attr_accessor :collector
10
10
  attr_accessor :tracer
11
11
  attr_accessor :processor
12
12
  attr_accessor :config
@@ -20,13 +20,10 @@ module Instana
20
20
  # to run" state.
21
21
  #
22
22
  def setup
23
- @logger = ::Instana::XLogger.new(STDOUT)
24
- @logger.unknown "Stan is on the scene. Starting Instana instrumentation."
25
-
26
23
  @agent = ::Instana::Agent.new
27
24
  @tracer = ::Instana::Tracer.new
28
25
  @processor = ::Instana::Processor.new
29
- @collectors = []
26
+ @collector = ::Instana::Collector.new
30
27
  end
31
28
 
32
29
  # Indicates whether we are running in a development environment.
@@ -46,3 +43,7 @@ module Instana
46
43
  end
47
44
  end
48
45
  end
46
+
47
+ # Setup the logger as early as possible
48
+ ::Instana.logger = ::Instana::XLogger.new(STDOUT)
49
+ ::Instana.logger.unknown "Stan is on the scene. Starting Instana instrumentation."
@@ -0,0 +1,115 @@
1
+ module Instana
2
+ class Collector
3
+ attr_accessor :collectors
4
+ attr_accessor :last_report_log
5
+
6
+ def initialize
7
+ @collectors = []
8
+
9
+ # Snapshot data is collected once per process but resent
10
+ # every 10 minutes along side process metrics.
11
+ @snapshot = ::Instana::Util.take_snapshot
12
+
13
+ # Set last snapshot to just under 10 minutes ago
14
+ # so we send a snapshot sooner than later
15
+ @last_snapshot = Time.now - 570
16
+
17
+ # We track what we last sent as a metric payload so that
18
+ # we can do delta reporting
19
+ @last_values = {}
20
+ end
21
+
22
+ # Register an individual collector.
23
+ #
24
+ # @param [Object] the class of the collector to register
25
+ #
26
+ def register(klass)
27
+ ::Instana.logger.debug "Adding #{klass} to collectors..."
28
+ @collectors << klass.new
29
+ end
30
+
31
+ # Resets the timer on when to send process snapshot data.
32
+ #
33
+ def reset_timer!
34
+ # Set last snapshot to 10 minutes ago
35
+ # so we send a snapshot on first report
36
+ @last_snapshot = Time.now - 601
37
+ end
38
+
39
+ ##
40
+ # collect_and_report
41
+ #
42
+ # Run through each collector, let them collect up
43
+ # data and then report what we have via the agent
44
+ #
45
+ # @return Boolean true on success
46
+ #
47
+ def collect_and_report
48
+ payload = {}
49
+ with_snapshot = false
50
+
51
+ # Run through the registered collectors and
52
+ # get all the metrics
53
+ #
54
+ @collectors.each do |c|
55
+ metrics = c.collect
56
+ if metrics
57
+ payload[c.payload_key] = metrics
58
+ else
59
+ payload.delete(c.payload_key)
60
+ end
61
+ end
62
+
63
+ # Every 5 minutes, send snapshot data as well
64
+ if (Time.now - @last_snapshot) > 600
65
+ with_snapshot = true
66
+ payload.merge!(@snapshot)
67
+
68
+ # Add in process related that could have changed since
69
+ # snapshot was taken.
70
+ p = { :pid => ::Instana.agent.report_pid }
71
+ p[:name] = ::Instana.agent.process[:name]
72
+ p[:exec_args] = ::Instana.agent.process[:arguments]
73
+ payload.merge!(p)
74
+ else
75
+ payload = enforce_deltas(payload, @last_values)
76
+ end
77
+
78
+ if ENV['INSTANA_GEM_TEST']
79
+ true
80
+ else
81
+ # Report all the collected goodies
82
+ if ::Instana.agent.report_metrics(payload) && with_snapshot
83
+ @last_snapshot = Time.now
84
+ end
85
+ end
86
+ end
87
+
88
+ # Take two hashes and enforce delta reporting.
89
+ # We only report when values change (instead of reporting all of
90
+ # the time). This is a recursive method.
91
+ #
92
+ # @param [Hash] the payload have delta reporting applied to
93
+ # @param [Hash] a hash of the last values reported
94
+ #
95
+ # @return [Hash] the candidate hash with delta reporting applied
96
+ #
97
+ def enforce_deltas(candidate, last)
98
+ candidate.each do |k,v|
99
+ if v.is_a?(Hash)
100
+ last[k] ||= {}
101
+ candidate[k] = enforce_deltas(candidate[k], last[k])
102
+ candidate.delete(k) if candidate[k].empty?
103
+ else
104
+ if last[k] == v
105
+ candidate.delete(k)
106
+ else
107
+ last[k] = candidate[k]
108
+ end
109
+ end
110
+ end
111
+ candidate
112
+ end
113
+ end
114
+ end
115
+
@@ -1,11 +1,10 @@
1
1
  module Instana
2
- module Collector
2
+ module Collectors
3
3
  class GC
4
4
  attr_accessor :payload_key
5
5
 
6
6
  def initialize
7
7
  @payload_key = :gc
8
- @last_report = {}
9
8
  @this_gc = {}
10
9
  @last_major_count = 0
11
10
  @last_minor_count = 0
@@ -40,15 +39,7 @@ module Instana
40
39
  # GC Heap
41
40
  @this_gc[:heap_live] = stats[:heap_live_slot] || stats[:heap_live_slots] || stats[:heap_live_num]
42
41
  @this_gc[:heap_free] = stats[:heap_free_slot] || stats[:heap_free_slots] || stats[:heap_free_num]
43
-
44
- @this_gc = ::Instana::Util.enforce_deltas(@this_gc, @last_report)
45
-
46
- unless @this_gc.empty?
47
- @last_report.merge!(@this_gc)
48
- @this_gc
49
- else
50
- nil
51
- end
42
+ @this_gc
52
43
  rescue => e
53
44
  ::Instana.logger.error "#{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}"
54
45
  ::Instana.logger.debug e.backtrace.join("\r\n")
@@ -59,5 +50,5 @@ end
59
50
 
60
51
  # Register the metrics collector if enabled
61
52
  if ::Instana.config[:metrics][:gc][:enabled]
62
- ::Instana.collectors << ::Instana::Collector::GC.new
53
+ ::Instana.collector.register(::Instana::Collectors::GC)
63
54
  end
@@ -1,13 +1,12 @@
1
1
  require 'get_process_mem'
2
2
 
3
3
  module Instana
4
- module Collector
4
+ module Collectors
5
5
  class Memory
6
6
  attr_accessor :payload_key
7
7
 
8
8
  def initialize
9
9
  @payload_key = :memory
10
- @last_report = {}
11
10
  @this_mem = {}
12
11
  end
13
12
 
@@ -16,17 +15,11 @@ module Instana
16
15
  #
17
16
  # To collect process memory usage.
18
17
  #
18
+ # @return [Hash] a collection of metrics (if any)
19
+ #
19
20
  def collect
20
- @this_mem.clear
21
21
  @this_mem[:rss_size] = ::GetProcessMem.new(Process.pid).kb
22
-
23
- @this_mem = ::Instana::Util.enforce_deltas(@this_mem, @last_report)
24
- unless @this_mem.empty?
25
- @last_report.merge!(@this_mem)
26
- @this_mem
27
- else
28
- nil
29
- end
22
+ @this_mem
30
23
  rescue => e
31
24
  ::Instana.logger.error "#{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}"
32
25
  ::Instana.logger.debug e.backtrace.join("\r\n")
@@ -37,5 +30,5 @@ end
37
30
 
38
31
  # Register the metrics collector if enabled
39
32
  if ::Instana.config[:metrics][:memory][:enabled]
40
- ::Instana.collectors << ::Instana::Collector::Memory.new
33
+ ::Instana.collector.register(::Instana::Collectors::Memory)
41
34
  end
@@ -1,11 +1,10 @@
1
1
  module Instana
2
- module Collector
2
+ module Collectors
3
3
  class Thread
4
4
  attr_accessor :payload_key
5
5
 
6
6
  def initialize
7
7
  @payload_key = :thread
8
- @last_report = {}
9
8
  @this_count = {}
10
9
  end
11
10
 
@@ -16,15 +15,7 @@ module Instana
16
15
  #
17
16
  def collect
18
17
  @this_count[:count] = ::Thread.list.count
19
-
20
- @this_count = ::Instana::Util.enforce_deltas(@this_count, @last_report)
21
-
22
- unless @this_count.empty?
23
- @last_report.merge!(@this_count)
24
- @this_count
25
- else
26
- nil
27
- end
18
+ @this_count
28
19
  rescue => e
29
20
  ::Instana.logger.error "#{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}"
30
21
  ::Instana.logger.debug e.backtrace.join("\r\n")
@@ -35,5 +26,5 @@ end
35
26
 
36
27
  # Register the metrics collector if enabled
37
28
  if ::Instana.config[:metrics][:thread][:enabled]
38
- ::Instana.collectors << ::Instana::Collector::Thread.new
29
+ ::Instana.collector.register(::Instana::Collectors::Thread)
39
30
  end
@@ -10,12 +10,20 @@ module Instana
10
10
  @config[:metrics][:memory] = { :enabled => true }
11
11
  @config[:metrics][:thread] = { :enabled => true }
12
12
 
13
+ if ENV.key?('INSTANA_GEM_DEV')
14
+ @config[:collector] = { :enabled => true, :interval => 3 }
15
+ else
16
+ @config[:collector] = { :enabled => true, :interval => 1 }
17
+ end
18
+
13
19
  # EUM Related
14
20
  @config[:eum_api_key] = nil
15
21
  @config[:eum_baggage] = {}
16
22
 
17
23
  # HTTP Clients
18
- @config[:excon] = { :enabled => true }
24
+ @config[:excon] = { :enabled => true }
25
+ @config[:nethttp] = { :enabled => true }
26
+ @config[:'rest-client'] = { :enabled => true }
19
27
  end
20
28
 
21
29
  def [](key)
@@ -1,63 +1,65 @@
1
1
  require 'net/http'
2
2
 
3
- Net::HTTP.class_eval {
3
+ if defined?(::Net::HTTP) && ::Instana.config[:nethttp][:enabled]
4
+ Net::HTTP.class_eval {
4
5
 
5
- def request_with_instana(*args, &block)
6
- if !Instana.tracer.tracing? || !started?
7
- return request_without_instana(*args, &block)
8
- end
6
+ def request_with_instana(*args, &block)
7
+ if !Instana.tracer.tracing? || !started?
8
+ return request_without_instana(*args, &block)
9
+ end
9
10
 
10
- ::Instana.tracer.log_entry(:'net-http')
11
+ ::Instana.tracer.log_entry(:'net-http')
11
12
 
12
- # Send out the tracing context with the request
13
- request = args[0]
13
+ # Send out the tracing context with the request
14
+ request = args[0]
14
15
 
15
- # Set request headers; encode IDs as hexadecimal strings
16
- t_context = ::Instana.tracer.context
17
- request['X-Instana-T'] = t_context.trace_id_header
18
- request['X-Instana-S'] = t_context.span_id_header
16
+ # Set request headers; encode IDs as hexadecimal strings
17
+ t_context = ::Instana.tracer.context
18
+ request['X-Instana-T'] = t_context.trace_id_header
19
+ request['X-Instana-S'] = t_context.span_id_header
19
20
 
20
- # Collect up KV info now in case any exception is raised
21
- kv_payload = { :http => {} }
22
- kv_payload[:http][:method] = request.method
21
+ # Collect up KV info now in case any exception is raised
22
+ kv_payload = { :http => {} }
23
+ kv_payload[:http][:method] = request.method
23
24
 
24
- if request.uri
25
- kv_payload[:http][:url] = request.uri.to_s
26
- else
27
- if use_ssl?
28
- kv_payload[:http][:url] = "https://#{@address}:#{@port}#{request.path}"
25
+ if request.uri
26
+ kv_payload[:http][:url] = request.uri.to_s
29
27
  else
30
- kv_payload[:http][:url] = "http://#{@address}:#{@port}#{request.path}"
28
+ if use_ssl?
29
+ kv_payload[:http][:url] = "https://#{@address}:#{@port}#{request.path}"
30
+ else
31
+ kv_payload[:http][:url] = "http://#{@address}:#{@port}#{request.path}"
32
+ end
31
33
  end
32
- end
33
34
 
34
- # The core call
35
- response = request_without_instana(*args, &block)
35
+ # The core call
36
+ response = request_without_instana(*args, &block)
36
37
 
37
- # Pickup response headers; convert back to base 10 integer
38
- if ::Instana.debug? && response.key?('X-Instana-T')
39
- if ::Instana.tracer.trace_id != ::Instana.tracer.header_to_id(response.header['X-Instana-T'])
40
- ::Instana.logger.debug "#{Thread.current}: Trace ID mismatch on net/http response! ours: #{::Instana.tracer.trace_id} theirs: #{their_trace_id}"
38
+ # Pickup response headers; convert back to base 10 integer
39
+ if ::Instana.debug? && response.key?('X-Instana-T')
40
+ if ::Instana.tracer.trace_id != ::Instana.tracer.header_to_id(response.header['X-Instana-T'])
41
+ ::Instana.logger.debug "#{Thread.current}: Trace ID mismatch on net/http response! ours: #{::Instana.tracer.trace_id} theirs: #{their_trace_id}"
42
+ end
41
43
  end
42
- end
43
44
 
44
- kv_payload[:http][:status] = response.code
45
- if response.code.to_i.between?(500, 511)
46
- # Because of the 5xx response, we flag this span as errored but
47
- # without a backtrace (no exception)
48
- add_error(nil)
49
- end
45
+ kv_payload[:http][:status] = response.code
46
+ if response.code.to_i.between?(500, 511)
47
+ # Because of the 5xx response, we flag this span as errored but
48
+ # without a backtrace (no exception)
49
+ add_error(nil)
50
+ end
50
51
 
51
- response
52
- rescue => e
53
- ::Instana.tracer.log_error(e)
54
- raise
55
- ensure
56
- ::Instana.tracer.log_exit(:'net-http', kv_payload)
57
- end
52
+ response
53
+ rescue => e
54
+ ::Instana.tracer.log_error(e)
55
+ raise
56
+ ensure
57
+ ::Instana.tracer.log_exit(:'net-http', kv_payload)
58
+ end
58
59
 
59
- Instana.logger.warn "Instrumenting Net::HTTP"
60
+ Instana.logger.warn "Instrumenting Net::HTTP"
60
61
 
61
- alias request_without_instana request
62
- alias request request_with_instana
63
- }
62
+ alias request_without_instana request
63
+ alias request request_with_instana
64
+ }
65
+ end
@@ -28,7 +28,7 @@ module Instana
28
28
  end
29
29
  end
30
30
 
31
- if defined?(::RestClient::Request)
31
+ if defined?(::RestClient::Request) && ::Instana.config[:'rest-client'][:enabled]
32
32
  ::Instana.logger.warn "Instrumenting RestClient"
33
33
  ::RestClient::Request.send(:include, ::Instana::Instrumentation::RestClientRequest)
34
34
  end
data/lib/instana/setup.rb CHANGED
@@ -1,16 +1,19 @@
1
1
  require "instana/base"
2
2
  require "instana/config"
3
3
  require "instana/agent"
4
+ require "instana/collector"
4
5
  require "instana/tracer"
5
6
  require "instana/tracing/processor"
6
-
7
- ::Instana.setup
8
-
9
- require "instana/collectors"
10
7
  require "instana/instrumentation"
11
8
 
9
+ ::Instana.setup
12
10
  ::Instana.agent.setup
13
11
 
12
+ # Register the metric collectors
13
+ require 'instana/collectors/gc'
14
+ require 'instana/collectors/memory'
15
+ require 'instana/collectors/thread'
16
+
14
17
  # Require supported OpenTracing interfaces
15
18
  require "opentracing"
16
19
 
data/lib/instana/util.rb CHANGED
@@ -39,24 +39,6 @@ module Instana
39
39
  target_cls.send(:include, cls) if defined?(target_cls)
40
40
  end
41
41
 
42
- # Take two hashes, and make sure candidate does not have
43
- # any of the same values as `last`. We only report
44
- # when values change.
45
- #
46
- # Note this is not recursive, so only pass in the single
47
- # hashes that you want delta reporting with.
48
- #
49
- def enforce_deltas(candidate, last)
50
- return unless last.is_a?(Hash)
51
-
52
- candidate.each do |k,v|
53
- if candidate[k] == last[k]
54
- candidate.delete(k)
55
- end
56
- end
57
- candidate
58
- end
59
-
60
42
  # Debugging helper method
61
43
  #
62
44
  def pry!
@@ -1,4 +1,4 @@
1
1
  module Instana
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  VERSION_FULL = "instana-#{VERSION}"
4
4
  end
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.0.2
4
+ version: 1.0.3
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-01-11 00:00:00.000000000 Z
11
+ date: 2017-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -132,7 +132,7 @@ files:
132
132
  - lib/instana.rb
133
133
  - lib/instana/agent.rb
134
134
  - lib/instana/base.rb
135
- - lib/instana/collectors.rb
135
+ - lib/instana/collector.rb
136
136
  - lib/instana/collectors/gc.rb
137
137
  - lib/instana/collectors/memory.rb
138
138
  - lib/instana/collectors/thread.rb
@@ -1,46 +0,0 @@
1
- require 'timers'
2
- require 'instana/collectors/gc'
3
- require 'instana/collectors/memory'
4
- require 'instana/collectors/thread'
5
-
6
- module Instana
7
- module Collector
8
- class << self
9
- attr_accessor :interval
10
-
11
- ##
12
- # collect_and_report
13
- #
14
- # Run through each collector, let them collect up
15
- # data and then report what we have via the agent
16
- #
17
- # @return Boolean true on success
18
- #
19
- def collect_and_report
20
- payload = {}
21
-
22
- ::Instana.collectors.each do |c|
23
- metrics = c.collect
24
- if metrics
25
- payload[c.payload_key] = metrics
26
- else
27
- payload.delete(c.payload_key)
28
- end
29
- end
30
-
31
- if ENV['INSTANA_GEM_TEST']
32
- true
33
- else
34
- # Report all the collected goodies
35
- ::Instana.agent.report_entity_data(payload)
36
- end
37
- end
38
- end
39
- end
40
- end
41
-
42
- if ENV.key?('INSTANA_GEM_DEV')
43
- ::Instana::Collector.interval = 3
44
- else
45
- ::Instana::Collector.interval = 1
46
- end