instana 1.210.1 → 1.212.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +85 -38
- data/.github/ISSUE_TEMPLATE/bug.yml +1 -1
- data/.github/ISSUE_TEMPLATE/config.yml +1 -1
- data/.github/workflows/release-notification-on-slack.yml +34 -0
- data/Gemfile +3 -8
- data/README.md +4 -8
- data/Rakefile +21 -2
- data/bin/announce_release_on_slack.py +103 -0
- data/download.sh +85 -0
- data/gemfiles/aws_30.gemfile +7 -6
- data/gemfiles/aws_60.gemfile +19 -0
- data/gemfiles/coverage_merge.gemfile +9 -0
- data/gemfiles/cuba_30.gemfile +1 -1
- data/gemfiles/cuba_40.gemfile +1 -1
- data/gemfiles/dalli_20.gemfile +1 -1
- data/gemfiles/dalli_30.gemfile +1 -1
- data/gemfiles/dalli_32.gemfile +1 -1
- data/gemfiles/excon_02.gemfile +3 -2
- data/gemfiles/excon_021.gemfile +3 -1
- data/gemfiles/excon_079.gemfile +3 -2
- data/gemfiles/excon_100.gemfile +3 -2
- data/gemfiles/graphql_10.gemfile +1 -1
- data/gemfiles/graphql_20.gemfile +1 -1
- data/gemfiles/grpc_10.gemfile +1 -1
- data/gemfiles/mongo_216.gemfile +2 -2
- data/gemfiles/mongo_219.gemfile +15 -0
- data/gemfiles/net_http_01.gemfile +3 -2
- data/gemfiles/rack_16.gemfile +1 -1
- data/gemfiles/rack_20.gemfile +1 -1
- data/gemfiles/rack_30.gemfile +16 -0
- data/gemfiles/rails_42.gemfile +1 -1
- data/gemfiles/rails_50.gemfile +1 -1
- data/gemfiles/rails_52.gemfile +1 -1
- data/gemfiles/rails_60.gemfile +1 -1
- data/gemfiles/rails_61.gemfile +1 -1
- data/gemfiles/rails_70.gemfile +2 -2
- data/gemfiles/rails_71.gemfile +19 -0
- data/gemfiles/redis_40.gemfile +1 -1
- data/gemfiles/resque_122.gemfile +1 -1
- data/gemfiles/resque_20.gemfile +2 -2
- data/gemfiles/rest_client_16.gemfile +3 -2
- data/gemfiles/rest_client_20.gemfile +3 -2
- data/gemfiles/roda_20.gemfile +1 -1
- data/gemfiles/roda_30.gemfile +2 -2
- data/gemfiles/shoryuken_50.gemfile +2 -2
- data/gemfiles/shoryuken_60.gemfile +16 -0
- data/gemfiles/sidekiq_42.gemfile +1 -1
- data/gemfiles/sidekiq_50.gemfile +2 -2
- data/gemfiles/sidekiq_60.gemfile +2 -2
- data/gemfiles/sidekiq_65.gemfile +15 -0
- data/gemfiles/sidekiq_70.gemfile +2 -2
- data/gemfiles/sinatra_14.gemfile +2 -2
- data/gemfiles/sinatra_22.gemfile +15 -0
- data/gemfiles/sinatra_30.gemfile +15 -0
- data/lib/instana/activator.rb +20 -9
- data/lib/instana/activators/sidekiq_client.rb +1 -2
- data/lib/instana/activators/sidekiq_worker.rb +1 -2
- data/lib/instana/backend/serverless_agent.rb +1 -1
- data/lib/instana/instrumentation/sidekiq-client.rb +11 -2
- data/lib/instana/instrumentation/sidekiq-worker.rb +11 -2
- data/lib/instana/version.rb +1 -1
- data/test/activator_test.rb +20 -0
- data/test/backend/host_agent_reporting_observer_test.rb +5 -3
- data/test/instrumentation/aws_test.rb +5 -4
- data/test/instrumentation/rack_test.rb +13 -2
- data/test/instrumentation/rails_action_controller_test.rb +5 -1
- data/test/instrumentation/rails_action_view_test.rb +5 -1
- data/test/instrumentation/rails_active_record_database_missing_test.rb +5 -3
- data/test/instrumentation/sidekiq-client_test.rb +2 -18
- data/test/instrumentation/sidekiq-worker_test.rb +3 -45
- data/test/support/apps/http_endpoint/boot.rb +1 -1
- data/test/support/apps/sidekiq/worker.rb +8 -8
- data/test/test_helper.rb +8 -4
- data/test/tracing/custom_test.rb +64 -0
- metadata +14 -2
data/test/activator_test.rb
CHANGED
@@ -27,4 +27,24 @@ class ActivatorTest < Minitest::Test
|
|
27
27
|
assert_equal 1, Instana::Activator.call.length
|
28
28
|
assert subject.call
|
29
29
|
end
|
30
|
+
|
31
|
+
def test_limited_activated_set
|
32
|
+
ENV['INSTANA_ACTIVATE_SET'] = 'rack,rails'
|
33
|
+
subject = activated_set
|
34
|
+
assert_instance_of Set, subject
|
35
|
+
assert_equal 2, subject.length
|
36
|
+
assert_includes subject, 'rack'
|
37
|
+
assert_includes subject, 'rails'
|
38
|
+
ensure
|
39
|
+
ENV.delete('INSTANA_ACTIVATE_SET')
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_unlimited_activated_set
|
43
|
+
ENV.delete('INSTANA_ACTIVATE_SET')
|
44
|
+
subject = activated_set
|
45
|
+
assert_instance_of Set, subject
|
46
|
+
assert_equal 31, subject.length
|
47
|
+
ensure
|
48
|
+
ENV.delete('INSTANA_ACTIVATE_SET')
|
49
|
+
end
|
30
50
|
end
|
@@ -53,9 +53,11 @@ class HostAgentReportingObserverTest < Minitest::Test
|
|
53
53
|
|
54
54
|
def test_agent_action
|
55
55
|
action = JSON.dump(
|
56
|
-
|
57
|
-
|
58
|
-
|
56
|
+
{
|
57
|
+
action: 'ruby.source',
|
58
|
+
messageId: 'test',
|
59
|
+
args: {file: 'test_helper.rb'}
|
60
|
+
}
|
59
61
|
)
|
60
62
|
|
61
63
|
stub_request(:post, "http://10.10.10.10:9292/tracermetrics")
|
@@ -36,17 +36,18 @@ class AwsTest < Minitest::Test
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def test_s3
|
39
|
-
|
39
|
+
s3_client = Aws::S3::Client.new(
|
40
40
|
region: "local",
|
41
41
|
access_key_id: "minioadmin",
|
42
42
|
secret_access_key: "minioadmin",
|
43
|
+
force_path_style: "true",
|
43
44
|
endpoint: "http://localhost:9000"
|
44
45
|
)
|
45
46
|
|
46
47
|
assert_raises Aws::S3::Errors::NoSuchBucket do
|
47
48
|
Instana::Tracer.start_or_continue_trace(:s3_test, {}) do
|
48
|
-
|
49
|
-
bucket: '
|
49
|
+
s3_client.get_object(
|
50
|
+
bucket: 'sample-bucket',
|
50
51
|
key: 'sample_key'
|
51
52
|
)
|
52
53
|
end
|
@@ -59,7 +60,7 @@ class AwsTest < Minitest::Test
|
|
59
60
|
assert_equal entry_span[:s], s3_span[:p]
|
60
61
|
assert_equal :s3, s3_span[:n]
|
61
62
|
assert_equal 'get', s3_span[:data][:s3][:op]
|
62
|
-
assert_equal '
|
63
|
+
assert_equal 'sample-bucket', s3_span[:data][:s3][:bucket]
|
63
64
|
assert_equal 'sample_key', s3_span[:data][:s3][:key]
|
64
65
|
end
|
65
66
|
|
@@ -3,7 +3,13 @@
|
|
3
3
|
|
4
4
|
require 'test_helper'
|
5
5
|
require 'rack/test'
|
6
|
-
|
6
|
+
|
7
|
+
framework_version = Gem::Specification.find_by_name('rack').version
|
8
|
+
if framework_version < Gem::Version.new('3.0.0')
|
9
|
+
require 'rack/lobster'
|
10
|
+
else
|
11
|
+
require 'rackup/lobster'
|
12
|
+
end
|
7
13
|
|
8
14
|
class RackTest < Minitest::Test
|
9
15
|
include Rack::Test::Methods
|
@@ -34,11 +40,16 @@ class RackTest < Minitest::Test
|
|
34
40
|
end
|
35
41
|
|
36
42
|
def app
|
43
|
+
framework_version = Gem::Specification.find_by_name('rack').version
|
37
44
|
@app = Rack::Builder.new do
|
38
45
|
use Rack::CommonLogger
|
39
46
|
use Rack::ShowExceptions
|
40
47
|
use Instana::Rack
|
41
|
-
|
48
|
+
if framework_version < Gem::Version.new('3.0.0')
|
49
|
+
map("/mrlobster") { run Rack::Lobster.new }
|
50
|
+
else
|
51
|
+
map("/mrlobster") { run Rackup::Lobster.new }
|
52
|
+
end
|
42
53
|
map("/path_tpl") { run PathTemplateApp.new }
|
43
54
|
map("/error") { run ErrorApp.new }
|
44
55
|
map("/five_zero_one") { run FiveZeroOneApp.new }
|
@@ -5,7 +5,11 @@ require 'test_helper'
|
|
5
5
|
|
6
6
|
class RailsActionControllerTest < Minitest::Test
|
7
7
|
include Rack::Test::Methods
|
8
|
-
APP = Rack::Builder.parse_file('test/support/apps/action_controller/config.ru')
|
8
|
+
APP = Rack::Builder.parse_file('test/support/apps/action_controller/config.ru')
|
9
|
+
railties_version = Gem::Specification.find_by_name('railties').version
|
10
|
+
if railties_version < Gem::Version.new('7.1.0')
|
11
|
+
APP = APP.first
|
12
|
+
end
|
9
13
|
|
10
14
|
def app
|
11
15
|
APP
|
@@ -5,7 +5,11 @@ require 'test_helper'
|
|
5
5
|
|
6
6
|
class RailsActionViewTest < Minitest::Test
|
7
7
|
include Rack::Test::Methods
|
8
|
-
APP = Rack::Builder.parse_file('test/support/apps/action_view/config.ru')
|
8
|
+
APP = Rack::Builder.parse_file('test/support/apps/action_view/config.ru')
|
9
|
+
railties_version = Gem::Specification.find_by_name('railties').version
|
10
|
+
if railties_version < Gem::Version.new('7.1.0')
|
11
|
+
APP = APP.first
|
12
|
+
end
|
9
13
|
|
10
14
|
def app
|
11
15
|
APP
|
@@ -13,14 +13,17 @@ class RailsActiveRecordDatabaseMissingTest < Minitest::Test
|
|
13
13
|
SQLite3::Database.new('/tmp/test.db')
|
14
14
|
ENV['DATABASE_URL'] = 'sqlite3:///tmp/test.db'
|
15
15
|
|
16
|
-
@
|
16
|
+
@connection_pool = ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'])
|
17
|
+
c = ::ActiveRecord::Base.connection
|
18
|
+
c.execute 'PRAGMA journal_mode=DELETE'
|
19
|
+
c.execute 'PRAGMA locking_mode=NORMAL'
|
17
20
|
ActiveRecord::Migration.suppress_messages do
|
18
21
|
ActiveRecord::Migration.run(CreateBlocks, direction: :up)
|
19
22
|
end
|
20
23
|
end
|
21
24
|
|
22
25
|
def teardown
|
23
|
-
|
26
|
+
@connection_pool.disconnect
|
24
27
|
ENV['DATABASE_URL'] = @old_url
|
25
28
|
end
|
26
29
|
|
@@ -34,7 +37,6 @@ class RailsActiveRecordDatabaseMissingTest < Minitest::Test
|
|
34
37
|
end
|
35
38
|
|
36
39
|
spans = ::Instana.processor.queued_spans
|
37
|
-
assert_equal 3, spans.length
|
38
40
|
span = find_first_span_by_name(spans, :activerecord)
|
39
41
|
|
40
42
|
assert_equal 1, span[:ec]
|
@@ -6,22 +6,6 @@ require 'support/apps/sidekiq/boot'
|
|
6
6
|
|
7
7
|
class SidekiqClientTest < Minitest::Test
|
8
8
|
def setup
|
9
|
-
@framework_version = Gem::Specification.find_by_name('sidekiq').version
|
10
|
-
@supported_framework_version = @framework_version < Gem::Version.new('5.3')
|
11
|
-
@execute_test_if_framework_version_is_supported = lambda {
|
12
|
-
unless @supported_framework_version
|
13
|
-
skip "Skipping this test because sidekiq version #{@framework_version} is not yet supported!"
|
14
|
-
end
|
15
|
-
}
|
16
|
-
@execute_test_only_if_framework_version_is_not_supported = lambda {
|
17
|
-
if @supported_framework_version
|
18
|
-
skip "Skipping this test because sidekiq version #{@framework_version} is already supported!"
|
19
|
-
end
|
20
|
-
}
|
21
|
-
|
22
|
-
Sidekiq.configure_client do |config|
|
23
|
-
config.redis = { url: ENV["REDIS_URL"] }
|
24
|
-
end
|
25
9
|
::Sidekiq::Queue.new('some_random_queue').clear
|
26
10
|
end
|
27
11
|
|
@@ -32,7 +16,6 @@ class SidekiqClientTest < Minitest::Test
|
|
32
16
|
end
|
33
17
|
|
34
18
|
def test_enqueue
|
35
|
-
@execute_test_if_framework_version_is_supported.call
|
36
19
|
clear_all!
|
37
20
|
Instana.tracer.start_or_continue_trace(:sidekiqtests) do
|
38
21
|
disable_redis_instrumentation
|
@@ -53,7 +36,6 @@ class SidekiqClientTest < Minitest::Test
|
|
53
36
|
end
|
54
37
|
|
55
38
|
def test_enqueue_failure
|
56
|
-
@execute_test_if_framework_version_is_supported.call
|
57
39
|
clear_all!
|
58
40
|
|
59
41
|
Instana.tracer.start_or_continue_trace(:sidekiqtests) do
|
@@ -104,6 +86,7 @@ class SidekiqClientTest < Minitest::Test
|
|
104
86
|
assert_equal 'some_random_queue', second_span[:data][:'sidekiq-client'][:queue]
|
105
87
|
assert_equal 'SidekiqJobOne', second_span[:data][:'sidekiq-client'][:job]
|
106
88
|
assert_equal "false", second_span[:data][:'sidekiq-client'][:retry]
|
89
|
+
assert second_span[:data][:'sidekiq-client'][:'redis-url']
|
107
90
|
assert_equal job['jid'], second_span[:data][:'sidekiq-client'][:job_id]
|
108
91
|
end
|
109
92
|
|
@@ -124,6 +107,7 @@ class SidekiqClientTest < Minitest::Test
|
|
124
107
|
assert_equal 'some_random_queue', second_span[:data][:'sidekiq-client'][:queue]
|
125
108
|
assert_equal 'SidekiqJobTwo', second_span[:data][:'sidekiq-client'][:job]
|
126
109
|
assert_equal "false", second_span[:data][:'sidekiq-client'][:retry]
|
110
|
+
assert second_span[:data][:'sidekiq-client'][:'redis-url']
|
127
111
|
assert_equal 'Fail to enqueue job', second_span[:data][:log][:message]
|
128
112
|
end
|
129
113
|
|
@@ -5,55 +5,13 @@ require 'test_helper'
|
|
5
5
|
require 'support/apps/sidekiq/boot'
|
6
6
|
|
7
7
|
class SidekiqServerTest < Minitest::Test
|
8
|
-
def setup
|
9
|
-
@framework_version = Gem::Specification.find_by_name('sidekiq').version
|
10
|
-
@supported_framework_version = @framework_version < Gem::Version.new('5.3')
|
11
|
-
@execute_test_if_framework_version_is_supported = lambda {
|
12
|
-
unless @supported_framework_version
|
13
|
-
skip "Skipping this test because sidekiq version #{@framework_version} is not yet supported!"
|
14
|
-
end
|
15
|
-
}
|
16
|
-
@execute_test_only_if_framework_version_is_not_supported = lambda {
|
17
|
-
if @supported_framework_version
|
18
|
-
skip "Skipping this test because sidekiq version #{@framework_version} is already supported!"
|
19
|
-
end
|
20
|
-
}
|
21
|
-
|
22
|
-
Sidekiq.configure_client do |config|
|
23
|
-
config.redis = { url: ENV["REDIS_URL"] }
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
8
|
def test_config_defaults
|
28
9
|
assert ::Instana.config[:'sidekiq-worker'].is_a?(Hash)
|
29
10
|
assert ::Instana.config[:'sidekiq-worker'].key?(:enabled)
|
30
11
|
assert_equal true, ::Instana.config[:'sidekiq-worker'][:enabled]
|
31
12
|
end
|
32
13
|
|
33
|
-
def test_no_sidekiq_tracing_if_unsupported_version_only_redis
|
34
|
-
@execute_test_only_if_framework_version_is_not_supported.call
|
35
|
-
clear_all!
|
36
|
-
::Sidekiq.redis_pool.with do |redis|
|
37
|
-
redis.sadd('queues'.freeze, 'important')
|
38
|
-
redis.lpush(
|
39
|
-
'queue:important',
|
40
|
-
<<-JSON
|
41
|
-
{
|
42
|
-
"class":"SidekiqJobOne",
|
43
|
-
"args":[1,2,3],
|
44
|
-
"queue":"important",
|
45
|
-
"jid":"123456789"
|
46
|
-
}
|
47
|
-
JSON
|
48
|
-
)
|
49
|
-
end
|
50
|
-
|
51
|
-
spans = Instana.processor.queued_spans
|
52
|
-
assert spans
|
53
|
-
end
|
54
|
-
|
55
14
|
def test_successful_worker_starts_new_trace
|
56
|
-
@execute_test_if_framework_version_is_supported.call
|
57
15
|
clear_all!
|
58
16
|
$sidekiq_mode = :server
|
59
17
|
inject_instrumentation
|
@@ -84,7 +42,6 @@ class SidekiqServerTest < Minitest::Test
|
|
84
42
|
end
|
85
43
|
|
86
44
|
def test_failed_worker_starts_new_trace
|
87
|
-
@execute_test_if_framework_version_is_supported.call
|
88
45
|
clear_all!
|
89
46
|
$sidekiq_mode = :server
|
90
47
|
inject_instrumentation
|
@@ -116,7 +73,6 @@ class SidekiqServerTest < Minitest::Test
|
|
116
73
|
end
|
117
74
|
|
118
75
|
def test_successful_worker_continues_previous_trace
|
119
|
-
@execute_test_if_framework_version_is_supported.call
|
120
76
|
clear_all!
|
121
77
|
$sidekiq_mode = :server
|
122
78
|
inject_instrumentation
|
@@ -150,7 +106,6 @@ class SidekiqServerTest < Minitest::Test
|
|
150
106
|
end
|
151
107
|
|
152
108
|
def test_failed_worker_continues_previous_trace
|
153
|
-
@execute_test_if_framework_version_is_supported.call
|
154
109
|
clear_all!
|
155
110
|
$sidekiq_mode = :server
|
156
111
|
inject_instrumentation
|
@@ -200,6 +155,7 @@ class SidekiqServerTest < Minitest::Test
|
|
200
155
|
|
201
156
|
assert_equal 'important', worker_span[:data][:'sidekiq-worker'][:queue]
|
202
157
|
assert_equal 'SidekiqJobOne', worker_span[:data][:'sidekiq-worker'][:job]
|
158
|
+
assert worker_span[:data][:'sidekiq-worker'][:'redis-url']
|
203
159
|
assert_equal false, worker_span[:data][:'sidekiq-worker'][:job_id].nil?
|
204
160
|
end
|
205
161
|
|
@@ -208,6 +164,7 @@ class SidekiqServerTest < Minitest::Test
|
|
208
164
|
|
209
165
|
assert_equal 'important', worker_span[:data][:'sidekiq-worker'][:queue]
|
210
166
|
assert_equal 'SidekiqJobTwo', worker_span[:data][:'sidekiq-worker'][:job]
|
167
|
+
assert worker_span[:data][:'sidekiq-worker'][:'redis-url']
|
211
168
|
assert_equal false, worker_span[:data][:'sidekiq-worker'][:job_id].nil?
|
212
169
|
|
213
170
|
assert_equal true, worker_span[:data][:'sidekiq-worker'][:error]
|
@@ -217,6 +174,7 @@ class SidekiqServerTest < Minitest::Test
|
|
217
174
|
def assert_client_span(client_span, job)
|
218
175
|
assert_equal :'sidekiq-client', client_span[:n]
|
219
176
|
assert_equal 'important', client_span[:data][:'sidekiq-client'][:queue]
|
177
|
+
assert client_span[:data][:'sidekiq-client'][:'redis-url']
|
220
178
|
assert_equal job.name, client_span[:data][:'sidekiq-client'][:job]
|
221
179
|
end
|
222
180
|
end
|
@@ -12,15 +12,15 @@ require_relative 'jobs/sidekiq_job_2'
|
|
12
12
|
::Instana.logger.info "Booting instrumented sidekiq worker for tests."
|
13
13
|
::Sidekiq.logger.level = ::Logger::FATAL
|
14
14
|
|
15
|
-
properties = {queues: ['important'], concurrency: 2}
|
16
|
-
|
17
15
|
sidekiq_version = Gem::Specification.find_by_name('sidekiq').version
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
16
|
+
cli = ::Sidekiq::CLI.instance
|
17
|
+
cli.parse(['sidekiq', '-r', __FILE__, '-C', "#{File.dirname(__FILE__)}/config.yaml"])
|
18
|
+
|
19
|
+
config_or_options = if sidekiq_version >= Gem::Version.new('6.5.0')
|
20
|
+
cli.config
|
21
|
+
else
|
22
|
+
cli.send :options
|
23
|
+
end
|
24
24
|
|
25
25
|
sidekiq_thread = Thread.new do
|
26
26
|
launcher = ::Sidekiq::Launcher.new(
|
data/test/test_helper.rb
CHANGED
@@ -12,6 +12,7 @@ begin
|
|
12
12
|
|
13
13
|
add_filter %r{^/test/}
|
14
14
|
|
15
|
+
command_name "Job #{ENV['CIRCLE_BUILD_NUM']}" if ENV['CIRCLE_BUILD_NUM']
|
15
16
|
add_group(
|
16
17
|
'In Process Collector',
|
17
18
|
[%r{lib/instana/(agent|backend|tracing|collectors|open_tracing|snapshot)}, %r{lib/instana/[^/]+\.rb}]
|
@@ -26,9 +27,12 @@ begin
|
|
26
27
|
add_filter %r{lib/instana/(activators|frameworks|instrumentation)}
|
27
28
|
end
|
28
29
|
|
29
|
-
|
30
|
-
|
31
|
-
|
30
|
+
formatter SimpleCov::Formatter::MultiFormatter.new(
|
31
|
+
[
|
32
|
+
SimpleCov::Formatter::HTMLFormatter,
|
33
|
+
SimpleCov::Formatter::JSONFormatter
|
34
|
+
]
|
35
|
+
)
|
32
36
|
end
|
33
37
|
rescue LoadError => _e
|
34
38
|
nil
|
@@ -57,7 +61,7 @@ if ENV['CI']
|
|
57
61
|
])
|
58
62
|
else
|
59
63
|
Minitest::Reporters.use!([
|
60
|
-
|
64
|
+
Minitest::Reporters::SpecReporter.new
|
61
65
|
])
|
62
66
|
end
|
63
67
|
Minitest::Test.include(Instana::TestHelpers)
|
data/test/tracing/custom_test.rb
CHANGED
@@ -42,6 +42,70 @@ class CustomTracingTest < Minitest::Test
|
|
42
42
|
assert_equal ::Instana.agent.source, first_span[:f]
|
43
43
|
end
|
44
44
|
|
45
|
+
# automagic (TM) as seen in the docs:
|
46
|
+
# https://www.ibm.com/docs/en/instana-observability/current?topic=ruby-tracing-sdk#the-instana-ruby-tracing-sdk
|
47
|
+
def test_custom_tracing_with_nested_automagic
|
48
|
+
clear_all!
|
49
|
+
assert_equal false, ::Instana.tracer.tracing?
|
50
|
+
|
51
|
+
kvs = {}
|
52
|
+
kvs[:on_entry_kv] = 1
|
53
|
+
kvs[:arguments] = [[1,2,3], "test_arg", :ok]
|
54
|
+
kvs[:return] = true
|
55
|
+
|
56
|
+
# Start tracing
|
57
|
+
::Instana.tracer.log_start_or_continue(:rack, :on_trace_start => 1)
|
58
|
+
assert_equal true, ::Instana.tracer.tracing?
|
59
|
+
|
60
|
+
# Now the automagic
|
61
|
+
::Instana.tracer.trace(:custom_span, kvs) do
|
62
|
+
answer = 42 * 1
|
63
|
+
active_span = ::Instana.tracer.current_span
|
64
|
+
active_span.set_tag(:answer, answer)
|
65
|
+
|
66
|
+
# And now nested automagic
|
67
|
+
::Instana.tracer.trace(:custom_span2, kvs) do
|
68
|
+
was_here = 'stan'
|
69
|
+
active_span = ::Instana.tracer.current_span
|
70
|
+
active_span.set_tag(:was_here, was_here)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# End tracing
|
75
|
+
::Instana.tracer.log_end(:rack, {:on_trace_end => 1})
|
76
|
+
assert_equal false, ::Instana.tracer.tracing?
|
77
|
+
|
78
|
+
spans = ::Instana.processor.queued_spans
|
79
|
+
assert_equal 3, spans.length
|
80
|
+
|
81
|
+
second_span = find_first_span_by_name(spans, :custom_span)
|
82
|
+
third_span = find_first_span_by_name(spans, :custom_span2)
|
83
|
+
|
84
|
+
assert_equal :sdk, second_span[:n]
|
85
|
+
assert second_span.key?(:data)
|
86
|
+
assert second_span[:data].key?(:sdk)
|
87
|
+
assert second_span[:data][:sdk].key?(:custom)
|
88
|
+
assert second_span[:data][:sdk][:custom].key?(:tags)
|
89
|
+
assert :custom_span, second_span[:data][:sdk][:name]
|
90
|
+
assert :unknown, second_span[:data][:sdk][:type]
|
91
|
+
assert [[1, 2, 3], "test_arg", :ok], second_span[:data][:sdk][:arguments]
|
92
|
+
assert true, second_span[:data][:sdk][:return]
|
93
|
+
assert_equal 1, second_span[:data][:sdk][:custom][:tags][:on_entry_kv]
|
94
|
+
assert_equal 42, second_span[:data][:sdk][:custom][:tags][:answer]
|
95
|
+
|
96
|
+
assert_equal :sdk, third_span[:n]
|
97
|
+
assert third_span.key?(:data)
|
98
|
+
assert third_span[:data].key?(:sdk)
|
99
|
+
assert third_span[:data][:sdk].key?(:custom)
|
100
|
+
assert third_span[:data][:sdk][:custom].key?(:tags)
|
101
|
+
assert :custom_span, third_span[:data][:sdk][:name]
|
102
|
+
assert :unknown, third_span[:data][:sdk][:type]
|
103
|
+
assert [[1, 2, 3], "test_arg", :ok], third_span[:data][:sdk][:arguments]
|
104
|
+
assert true, third_span[:data][:sdk][:return]
|
105
|
+
assert_equal 1, third_span[:data][:sdk][:custom][:tags][:on_entry_kv]
|
106
|
+
assert_equal 'stan', third_span[:data][:sdk][:custom][:tags][:was_here]
|
107
|
+
end
|
108
|
+
|
45
109
|
def test_custom_tracing_with_args
|
46
110
|
clear_all!
|
47
111
|
assert_equal false, ::Instana.tracer.tracing?
|
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.
|
4
|
+
version: 1.212.0
|
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: 2023-
|
11
|
+
date: 2023-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -138,6 +138,7 @@ files:
|
|
138
138
|
- ".github/ISSUE_TEMPLATE/bug.yml"
|
139
139
|
- ".github/ISSUE_TEMPLATE/config.yml"
|
140
140
|
- ".github/workflows/pr_commits_signed_off.yml"
|
141
|
+
- ".github/workflows/release-notification-on-slack.yml"
|
141
142
|
- ".gitignore"
|
142
143
|
- ".rubocop.yml"
|
143
144
|
- ".rubocop_todo.yml"
|
@@ -148,14 +149,18 @@ files:
|
|
148
149
|
- MAINTAINERS.md
|
149
150
|
- README.md
|
150
151
|
- Rakefile
|
152
|
+
- bin/announce_release_on_slack.py
|
151
153
|
- bin/console
|
152
154
|
- bin/setup
|
153
155
|
- docker-compose.yml
|
156
|
+
- download.sh
|
154
157
|
- examples/opentracing.rb
|
155
158
|
- examples/tracing.rb
|
156
159
|
- extras/license_header.rb
|
157
160
|
- gemfiles/.bundle/config
|
158
161
|
- gemfiles/aws_30.gemfile
|
162
|
+
- gemfiles/aws_60.gemfile
|
163
|
+
- gemfiles/coverage_merge.gemfile
|
159
164
|
- gemfiles/cuba_30.gemfile
|
160
165
|
- gemfiles/cuba_40.gemfile
|
161
166
|
- gemfiles/dalli_20.gemfile
|
@@ -169,15 +174,18 @@ files:
|
|
169
174
|
- gemfiles/graphql_20.gemfile
|
170
175
|
- gemfiles/grpc_10.gemfile
|
171
176
|
- gemfiles/mongo_216.gemfile
|
177
|
+
- gemfiles/mongo_219.gemfile
|
172
178
|
- gemfiles/net_http_01.gemfile
|
173
179
|
- gemfiles/rack_16.gemfile
|
174
180
|
- gemfiles/rack_20.gemfile
|
181
|
+
- gemfiles/rack_30.gemfile
|
175
182
|
- gemfiles/rails_42.gemfile
|
176
183
|
- gemfiles/rails_50.gemfile
|
177
184
|
- gemfiles/rails_52.gemfile
|
178
185
|
- gemfiles/rails_60.gemfile
|
179
186
|
- gemfiles/rails_61.gemfile
|
180
187
|
- gemfiles/rails_70.gemfile
|
188
|
+
- gemfiles/rails_71.gemfile
|
181
189
|
- gemfiles/redis_40.gemfile
|
182
190
|
- gemfiles/resque_122.gemfile
|
183
191
|
- gemfiles/resque_20.gemfile
|
@@ -186,11 +194,15 @@ files:
|
|
186
194
|
- gemfiles/roda_20.gemfile
|
187
195
|
- gemfiles/roda_30.gemfile
|
188
196
|
- gemfiles/shoryuken_50.gemfile
|
197
|
+
- gemfiles/shoryuken_60.gemfile
|
189
198
|
- gemfiles/sidekiq_42.gemfile
|
190
199
|
- gemfiles/sidekiq_50.gemfile
|
191
200
|
- gemfiles/sidekiq_60.gemfile
|
201
|
+
- gemfiles/sidekiq_65.gemfile
|
192
202
|
- gemfiles/sidekiq_70.gemfile
|
193
203
|
- gemfiles/sinatra_14.gemfile
|
204
|
+
- gemfiles/sinatra_22.gemfile
|
205
|
+
- gemfiles/sinatra_30.gemfile
|
194
206
|
- instana.gemspec
|
195
207
|
- lib/instana.rb
|
196
208
|
- lib/instana/activator.rb
|