instana 1.210.1 → 1.212.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +85 -38
  3. data/.github/ISSUE_TEMPLATE/bug.yml +1 -1
  4. data/.github/ISSUE_TEMPLATE/config.yml +1 -1
  5. data/.github/workflows/release-notification-on-slack.yml +34 -0
  6. data/Gemfile +3 -8
  7. data/README.md +4 -8
  8. data/Rakefile +21 -2
  9. data/bin/announce_release_on_slack.py +103 -0
  10. data/download.sh +85 -0
  11. data/gemfiles/aws_30.gemfile +7 -6
  12. data/gemfiles/aws_60.gemfile +19 -0
  13. data/gemfiles/coverage_merge.gemfile +9 -0
  14. data/gemfiles/cuba_30.gemfile +1 -1
  15. data/gemfiles/cuba_40.gemfile +1 -1
  16. data/gemfiles/dalli_20.gemfile +1 -1
  17. data/gemfiles/dalli_30.gemfile +1 -1
  18. data/gemfiles/dalli_32.gemfile +1 -1
  19. data/gemfiles/excon_02.gemfile +3 -2
  20. data/gemfiles/excon_021.gemfile +3 -1
  21. data/gemfiles/excon_079.gemfile +3 -2
  22. data/gemfiles/excon_100.gemfile +3 -2
  23. data/gemfiles/graphql_10.gemfile +1 -1
  24. data/gemfiles/graphql_20.gemfile +1 -1
  25. data/gemfiles/grpc_10.gemfile +1 -1
  26. data/gemfiles/mongo_216.gemfile +2 -2
  27. data/gemfiles/mongo_219.gemfile +15 -0
  28. data/gemfiles/net_http_01.gemfile +3 -2
  29. data/gemfiles/rack_16.gemfile +1 -1
  30. data/gemfiles/rack_20.gemfile +1 -1
  31. data/gemfiles/rack_30.gemfile +16 -0
  32. data/gemfiles/rails_42.gemfile +1 -1
  33. data/gemfiles/rails_50.gemfile +1 -1
  34. data/gemfiles/rails_52.gemfile +1 -1
  35. data/gemfiles/rails_60.gemfile +1 -1
  36. data/gemfiles/rails_61.gemfile +1 -1
  37. data/gemfiles/rails_70.gemfile +2 -2
  38. data/gemfiles/rails_71.gemfile +19 -0
  39. data/gemfiles/redis_40.gemfile +1 -1
  40. data/gemfiles/resque_122.gemfile +1 -1
  41. data/gemfiles/resque_20.gemfile +2 -2
  42. data/gemfiles/rest_client_16.gemfile +3 -2
  43. data/gemfiles/rest_client_20.gemfile +3 -2
  44. data/gemfiles/roda_20.gemfile +1 -1
  45. data/gemfiles/roda_30.gemfile +2 -2
  46. data/gemfiles/shoryuken_50.gemfile +2 -2
  47. data/gemfiles/shoryuken_60.gemfile +16 -0
  48. data/gemfiles/sidekiq_42.gemfile +1 -1
  49. data/gemfiles/sidekiq_50.gemfile +2 -2
  50. data/gemfiles/sidekiq_60.gemfile +2 -2
  51. data/gemfiles/sidekiq_65.gemfile +15 -0
  52. data/gemfiles/sidekiq_70.gemfile +2 -2
  53. data/gemfiles/sinatra_14.gemfile +2 -2
  54. data/gemfiles/sinatra_22.gemfile +15 -0
  55. data/gemfiles/sinatra_30.gemfile +15 -0
  56. data/lib/instana/activator.rb +20 -9
  57. data/lib/instana/activators/sidekiq_client.rb +1 -2
  58. data/lib/instana/activators/sidekiq_worker.rb +1 -2
  59. data/lib/instana/backend/serverless_agent.rb +1 -1
  60. data/lib/instana/instrumentation/sidekiq-client.rb +11 -2
  61. data/lib/instana/instrumentation/sidekiq-worker.rb +11 -2
  62. data/lib/instana/version.rb +1 -1
  63. data/test/activator_test.rb +20 -0
  64. data/test/backend/host_agent_reporting_observer_test.rb +5 -3
  65. data/test/instrumentation/aws_test.rb +5 -4
  66. data/test/instrumentation/rack_test.rb +13 -2
  67. data/test/instrumentation/rails_action_controller_test.rb +5 -1
  68. data/test/instrumentation/rails_action_view_test.rb +5 -1
  69. data/test/instrumentation/rails_active_record_database_missing_test.rb +5 -3
  70. data/test/instrumentation/sidekiq-client_test.rb +2 -18
  71. data/test/instrumentation/sidekiq-worker_test.rb +3 -45
  72. data/test/support/apps/http_endpoint/boot.rb +1 -1
  73. data/test/support/apps/sidekiq/worker.rb +8 -8
  74. data/test/test_helper.rb +8 -4
  75. data/test/tracing/custom_test.rb +64 -0
  76. metadata +14 -2
@@ -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
- action: 'ruby.source',
57
- messageId: 'test',
58
- args: {file: 'test_helper.rb'}
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
- dynamo = Aws::S3::Client.new(
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
- dynamo.get_object(
49
- bucket: 'sample_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 'sample_bucket', s3_span[:data][:s3][:bucket]
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
- require 'rack/lobster'
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
- map("/mrlobster") { run Rack::Lobster.new }
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').first
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').first
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
- @connection = ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'])
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
- ActiveRecord::Base.remove_connection(@connection)
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
@@ -22,7 +22,7 @@ Thread.new do
22
22
  end
23
23
  }
24
24
 
25
- Rack::Handler::Puma.run(app, Host: '127.0.0.1', Port: 6511)
25
+ Rackup::Handler::Puma.run(app, Host: '127.0.0.1', Port: 6511)
26
26
  end
27
27
 
28
28
  sleep(2)
@@ -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
- config_or_options =
19
- if sidekiq_version >= Gem::Version.new('7.0.0')
20
- ::Sidekiq::Config.new(Sidekiq.default_configuration.merge!(properties))
21
- else
22
- ::Sidekiq.options.merge(properties)
23
- end
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
- if ENV['CI']
30
- formatter SimpleCov::Formatter::JSONFormatter
31
- end
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
- MiniTest::Reporters::SpecReporter.new
64
+ Minitest::Reporters::SpecReporter.new
61
65
  ])
62
66
  end
63
67
  Minitest::Test.include(Instana::TestHelpers)
@@ -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.210.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-06-23 00:00:00.000000000 Z
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