instana 1.9.0.daftrabbit → 1.9.0.sillyrabbit
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 +5 -5
- data/lib/instana/agent.rb +1 -1
- data/lib/instana/frameworks/rails.rb +10 -24
- data/lib/instana/instrumentation/resque.rb +5 -8
- data/lib/instana/version.rb +1 -1
- data/test/instrumentation/resque_test.rb +5 -66
- data/test/jobs/resque_job_1.rb +11 -0
- data/test/jobs/resque_job_2.rb +7 -0
- metadata +7 -7
- data/test/jobs/resque_error_job.rb +0 -16
- data/test/jobs/resque_fast_job.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0ba941e65d061723cef0a542c2f65d80d4956a9b
|
4
|
+
data.tar.gz: defbff62c39a5e8dbc8e3fabceff42a43c29932e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 349ec35ff3ed2efc30fa13c9257262ae8464c1ebca45fc5398d570cb2253e185a7a17f20211720ec36e0c975ccab1f5cc1f0f5c548ee0865347c08e9f23dfee4
|
7
|
+
data.tar.gz: 258a0b56f3af4d9e49f1ac53d3ba74d214ce8f9a7cfdb25cd41e1d2314177e0f65e06369ca2175dfc4e3c197da3cd06046de426c0cd4c1e9e72a2817ba3a6092
|
data/lib/instana/agent.rb
CHANGED
@@ -290,7 +290,7 @@ module Instana
|
|
290
290
|
uri = URI.parse("http://#{@discovered[:agent_host]}:#{@discovered[:agent_port]}/#{path}")
|
291
291
|
req = Net::HTTP::Post.new(uri)
|
292
292
|
|
293
|
-
req.body = Oj.dump(spans
|
293
|
+
req.body = Oj.dump(spans)
|
294
294
|
response = make_host_agent_request(req)
|
295
295
|
|
296
296
|
if response
|
@@ -1,40 +1,26 @@
|
|
1
1
|
require "instana/rack"
|
2
2
|
|
3
3
|
if defined?(::Rails)
|
4
|
+
# In Rails, let's use the Rails logger
|
5
|
+
::Instana.logger = ::Rails.logger if ::Rails.logger
|
4
6
|
|
5
7
|
if ::Rails::VERSION::MAJOR < 3
|
6
8
|
::Rails.configuration.after_initialize do
|
7
|
-
|
8
|
-
::
|
9
|
-
|
10
|
-
if ::Instana.config[:tracing][:enabled]
|
11
|
-
::Instana.logger.info "Instrumenting Rack"
|
12
|
-
::Rails.configuration.middleware.insert 0, ::Instana::Rack
|
13
|
-
else
|
14
|
-
::Instana.logger.info "Rack: Tracing disabled via config. Not enabling middleware."
|
15
|
-
end
|
9
|
+
::Instana.logger.info "Instrumenting Rack"
|
10
|
+
::Rails.configuration.middleware.insert 0, ::Instana::Rack
|
16
11
|
end
|
17
12
|
else
|
18
13
|
module ::Instana
|
19
14
|
class Railtie < ::Rails::Railtie
|
20
15
|
initializer 'instana.rack' do |app|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
if ::Instana.config[:tracing][:enabled]
|
25
|
-
::Instana.logger.info "Instrumenting Rack"
|
26
|
-
app.config.middleware.insert 0, ::Instana::Rack
|
27
|
-
else
|
28
|
-
::Instana.logger.info "Rack: Tracing disabled via config. Not enabling middleware."
|
29
|
-
end
|
16
|
+
::Instana.logger.info "Instrumenting Rack"
|
17
|
+
app.config.middleware.insert 0, ::Instana::Rack
|
30
18
|
end
|
31
19
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
require "instana/frameworks/instrumentation/action_view"
|
37
|
-
end
|
20
|
+
config.after_initialize do
|
21
|
+
require "instana/frameworks/instrumentation/active_record"
|
22
|
+
require "instana/frameworks/instrumentation/action_controller"
|
23
|
+
require "instana/frameworks/instrumentation/action_view"
|
38
24
|
end
|
39
25
|
end
|
40
26
|
end
|
@@ -20,7 +20,7 @@ module Instana
|
|
20
20
|
Instana.logger.debug "#{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}"
|
21
21
|
end
|
22
22
|
|
23
|
-
|
23
|
+
kvs
|
24
24
|
end
|
25
25
|
|
26
26
|
def enqueue_with_instana(klass, *args)
|
@@ -72,11 +72,12 @@ module Instana
|
|
72
72
|
begin
|
73
73
|
kvs[:job] = job.payload['class'].to_s
|
74
74
|
kvs[:queue] = job.queue
|
75
|
+
kvs[:args] = job.payload['args'].to_json
|
75
76
|
rescue => e
|
76
|
-
|
77
|
+
Instana.logger.debug "#{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if Instana::Config[:verbose]
|
77
78
|
end
|
78
79
|
|
79
|
-
Instana.tracer.start_or_continue_trace(:'resque-worker',
|
80
|
+
Instana.tracer.start_or_continue_trace(:'resque-worker', nil, kvs) do
|
80
81
|
perform_without_instana(job)
|
81
82
|
end
|
82
83
|
end
|
@@ -89,12 +90,8 @@ module Instana
|
|
89
90
|
|
90
91
|
def fail_with_instana(exception)
|
91
92
|
if Instana.tracer.tracing?
|
92
|
-
|
93
|
-
::Instana.tracer.log_error(exception)
|
93
|
+
Instana.tracer.log_error(:resque, exception)
|
94
94
|
end
|
95
|
-
rescue Exception => e
|
96
|
-
::Instana.logger.debug "#{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if Instana::Config[:verbose]
|
97
|
-
ensure
|
98
95
|
fail_without_instana(exception)
|
99
96
|
end
|
100
97
|
end
|
data/lib/instana/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
require_relative "../jobs/
|
3
|
-
require_relative "../jobs/
|
2
|
+
require_relative "../jobs/resque_job_1"
|
3
|
+
require_relative "../jobs/resque_job_2"
|
4
4
|
require 'resque'
|
5
5
|
|
6
6
|
if ENV.key?('REDIS_URL')
|
@@ -12,9 +12,6 @@ end
|
|
12
12
|
class ResqueClientTest < Minitest::Test
|
13
13
|
def setup
|
14
14
|
clear_all!
|
15
|
-
ENV['FORK_PER_JOB'] = 'false'
|
16
|
-
Resque.redis.redis.flushall
|
17
|
-
@worker = Resque::Worker.new(:critical)
|
18
15
|
end
|
19
16
|
|
20
17
|
def teardown
|
@@ -22,7 +19,7 @@ class ResqueClientTest < Minitest::Test
|
|
22
19
|
|
23
20
|
def test_enqueue
|
24
21
|
::Instana.tracer.start_or_continue_trace('resque-client_test') do
|
25
|
-
::Resque.enqueue(
|
22
|
+
::Resque.enqueue(ResqueWorkerJob1)
|
26
23
|
end
|
27
24
|
|
28
25
|
traces = Instana.processor.queued_traces
|
@@ -32,18 +29,13 @@ class ResqueClientTest < Minitest::Test
|
|
32
29
|
assert_equal 3, spans.count
|
33
30
|
|
34
31
|
assert_equal :'resque-client_test', spans[0][:data][:sdk][:name]
|
35
|
-
|
36
32
|
assert_equal :"resque-client", spans[1][:n]
|
37
|
-
assert_equal "FastJob", spans[1][:data][:'resque-client'][:job]
|
38
|
-
assert_equal :critical, spans[1][:data][:'resque-client'][:queue]
|
39
|
-
assert_equal false, spans[1][:data][:'resque-client'].key?(:error)
|
40
|
-
|
41
33
|
assert_equal :redis, spans[2][:n]
|
42
34
|
end
|
43
35
|
|
44
36
|
def test_enqueue_to
|
45
37
|
::Instana.tracer.start_or_continue_trace('resque-client_test') do
|
46
|
-
::Resque.enqueue_to(:critical,
|
38
|
+
::Resque.enqueue_to(:critical, ResqueWorkerJob1)
|
47
39
|
end
|
48
40
|
|
49
41
|
traces = Instana.processor.queued_traces
|
@@ -54,15 +46,12 @@ class ResqueClientTest < Minitest::Test
|
|
54
46
|
|
55
47
|
assert_equal :'resque-client_test', spans[0][:data][:sdk][:name]
|
56
48
|
assert_equal :"resque-client", spans[1][:n]
|
57
|
-
assert_equal "FastJob", spans[1][:data][:'resque-client'][:job]
|
58
|
-
assert_equal :critical, spans[1][:data][:'resque-client'][:queue]
|
59
|
-
assert_equal false, spans[1][:data][:'resque-client'].key?(:error)
|
60
49
|
assert_equal :redis, spans[2][:n]
|
61
50
|
end
|
62
51
|
|
63
52
|
def test_dequeue
|
64
53
|
::Instana.tracer.start_or_continue_trace('resque-client_test', '', {}) do
|
65
|
-
::Resque.dequeue(
|
54
|
+
::Resque.dequeue(ResqueWorkerJob2, { :generate => :farfalla })
|
66
55
|
end
|
67
56
|
|
68
57
|
traces = Instana.processor.queued_traces
|
@@ -73,56 +62,6 @@ class ResqueClientTest < Minitest::Test
|
|
73
62
|
|
74
63
|
assert_equal :'resque-client_test', spans[0][:data][:sdk][:name]
|
75
64
|
assert_equal :"resque-client", spans[1][:n]
|
76
|
-
assert_equal "FastJob", spans[1][:data][:'resque-client'][:job]
|
77
|
-
assert_equal :critical, spans[1][:data][:'resque-client'][:queue]
|
78
|
-
assert_equal false, spans[1][:data][:'resque-client'].key?(:error)
|
79
65
|
assert_equal :redis, spans[2][:n]
|
80
66
|
end
|
81
|
-
|
82
|
-
def test_worker_job
|
83
|
-
Resque::Job.create(:critical, FastJob)
|
84
|
-
@worker.work(0)
|
85
|
-
|
86
|
-
traces = Instana.processor.queued_traces
|
87
|
-
assert_equal 1, traces.count
|
88
|
-
|
89
|
-
spans = traces[0].spans.to_a
|
90
|
-
assert_equal 3, spans.count
|
91
|
-
|
92
|
-
resque_span = spans[0]
|
93
|
-
redis1_span = spans[1]
|
94
|
-
redis2_span = spans[2]
|
95
|
-
|
96
|
-
assert_equal :'resque-worker', resque_span[:n]
|
97
|
-
assert_equal false, resque_span.key?(:error)
|
98
|
-
assert_equal false, resque_span.key?(:ec)
|
99
|
-
assert_equal "FastJob", resque_span[:data][:'resque-worker'][:job]
|
100
|
-
assert_equal "critical", resque_span[:data][:'resque-worker'][:queue]
|
101
|
-
assert_equal false, resque_span[:data][:'resque-worker'].key?(:error)
|
102
|
-
|
103
|
-
assert_equal :redis, redis1_span[:n]
|
104
|
-
assert_equal "SET", redis1_span[:data][:redis][:command]
|
105
|
-
assert_equal :redis, redis2_span[:n]
|
106
|
-
assert_equal "SET", redis2_span[:data][:redis][:command]
|
107
|
-
end
|
108
|
-
|
109
|
-
def test_worker_error_job
|
110
|
-
Resque::Job.create(:critical, ErrorJob)
|
111
|
-
@worker.work(0)
|
112
|
-
|
113
|
-
traces = Instana.processor.queued_traces
|
114
|
-
assert_equal 1, traces.count
|
115
|
-
|
116
|
-
spans = traces[0].spans.to_a
|
117
|
-
resque_span = spans[0]
|
118
|
-
assert_equal 5, spans.count
|
119
|
-
|
120
|
-
assert_equal :'resque-worker', resque_span[:n]
|
121
|
-
assert_equal true, resque_span.key?(:error)
|
122
|
-
assert_equal 1, resque_span[:ec]
|
123
|
-
assert_equal "ErrorJob", resque_span[:data][:'resque-worker'][:job]
|
124
|
-
assert_equal "critical", resque_span[:data][:'resque-worker'][:queue]
|
125
|
-
assert_equal "Exception: Silly Rabbit, Trix are for kids.", resque_span[:data][:'resque-worker'][:error]
|
126
|
-
assert_equal Array, resque_span[:stack].class
|
127
|
-
end
|
128
67
|
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.9.0.
|
4
|
+
version: 1.9.0.sillyrabbit
|
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: 2018-09-
|
11
|
+
date: 2018-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -280,8 +280,8 @@ files:
|
|
280
280
|
- test/instrumentation/rest-client_test.rb
|
281
281
|
- test/instrumentation/sidekiq-client_test.rb
|
282
282
|
- test/instrumentation/sidekiq-worker_test.rb
|
283
|
-
- test/jobs/
|
284
|
-
- test/jobs/
|
283
|
+
- test/jobs/resque_job_1.rb
|
284
|
+
- test/jobs/resque_job_2.rb
|
285
285
|
- test/jobs/sidekiq_job_1.rb
|
286
286
|
- test/jobs/sidekiq_job_2.rb
|
287
287
|
- test/models/block.rb
|
@@ -317,7 +317,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
317
317
|
version: 1.3.1
|
318
318
|
requirements: []
|
319
319
|
rubyforge_project:
|
320
|
-
rubygems_version: 2.
|
320
|
+
rubygems_version: 2.6.12
|
321
321
|
signing_key:
|
322
322
|
specification_version: 4
|
323
323
|
summary: Ruby Distributed Tracing & Metrics Sensor for Instana
|
@@ -351,8 +351,8 @@ test_files:
|
|
351
351
|
- test/instrumentation/rest-client_test.rb
|
352
352
|
- test/instrumentation/sidekiq-client_test.rb
|
353
353
|
- test/instrumentation/sidekiq-worker_test.rb
|
354
|
-
- test/jobs/
|
355
|
-
- test/jobs/
|
354
|
+
- test/jobs/resque_job_1.rb
|
355
|
+
- test/jobs/resque_job_2.rb
|
356
356
|
- test/jobs/sidekiq_job_1.rb
|
357
357
|
- test/jobs/sidekiq_job_2.rb
|
358
358
|
- test/models/block.rb
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require "redis"
|
2
|
-
require "net/http"
|
3
|
-
|
4
|
-
class ErrorJob
|
5
|
-
@queue = :critical
|
6
|
-
|
7
|
-
def self.perform
|
8
|
-
redis = Redis.new(url: ENV['REDIS_URL'])
|
9
|
-
|
10
|
-
dt = Time.now
|
11
|
-
redis.set('ts', dt)
|
12
|
-
|
13
|
-
raise Exception.new("Silly Rabbit, Trix are for kids.")
|
14
|
-
redis.set(:nb_id, 2)
|
15
|
-
end
|
16
|
-
end
|