instana 2.0.0 → 2.1.0

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.
Files changed (186) hide show
  1. checksums.yaml +4 -4
  2. data/lib/instana/setup.rb +1 -0
  3. data/lib/instana/span_filtering/condition.rb +134 -0
  4. data/lib/instana/span_filtering/configuration.rb +262 -0
  5. data/lib/instana/span_filtering/filter_rule.rb +31 -0
  6. data/lib/instana/span_filtering.rb +62 -0
  7. data/lib/instana/trace/span.rb +5 -3
  8. data/lib/instana/version.rb +1 -1
  9. metadata +7 -258
  10. data/.circleci/config.yml +0 -361
  11. data/.codeclimate.yml +0 -23
  12. data/.editorconfig +0 -10
  13. data/.fasterer.yml +0 -23
  14. data/.github/ISSUE_TEMPLATE/bug.yml +0 -39
  15. data/.github/ISSUE_TEMPLATE/config.yml +0 -8
  16. data/.github/workflows/pr_commits_signed_off.yml +0 -16
  17. data/.github/workflows/release-notification-on-slack.yml +0 -34
  18. data/.gitignore +0 -19
  19. data/.rubocop.yml +0 -34
  20. data/.rubocop_todo.yml +0 -1140
  21. data/.tekton/.currency/docs/report.md +0 -20
  22. data/.tekton/.currency/resources/requirements.txt +0 -4
  23. data/.tekton/.currency/resources/table.json +0 -100
  24. data/.tekton/.currency/scripts/generate_report.py +0 -308
  25. data/.tekton/README.md +0 -278
  26. data/.tekton/github-interceptor-secret.yaml +0 -8
  27. data/.tekton/github-pr-eventlistener.yaml +0 -104
  28. data/.tekton/github-pr-pipeline.yaml.part +0 -38
  29. data/.tekton/github-set-status-task.yaml +0 -43
  30. data/.tekton/github-webhook-ingress.yaml +0 -20
  31. data/.tekton/pipeline.yaml +0 -484
  32. data/.tekton/pipelinerun.yaml +0 -21
  33. data/.tekton/prepuller-restart-service-account.yaml +0 -31
  34. data/.tekton/ruby-tracer-prepuller-cronjob.yaml +0 -20
  35. data/.tekton/ruby-tracer-prepuller.yaml +0 -88
  36. data/.tekton/run_unittests.sh +0 -87
  37. data/.tekton/scheduled-eventlistener.yaml +0 -108
  38. data/.tekton/task.yaml +0 -453
  39. data/.tekton/tekton-triggers-eventlistener-serviceaccount.yaml +0 -29
  40. data/Appraisals +0 -124
  41. data/CONTRIBUTING.md +0 -86
  42. data/Gemfile +0 -22
  43. data/LICENSE +0 -22
  44. data/MAINTAINERS.md +0 -3
  45. data/Rakefile +0 -49
  46. data/bin/announce_release_on_slack.py +0 -103
  47. data/docker-compose.yml +0 -20
  48. data/download.sh +0 -85
  49. data/examples/otel.rb +0 -98
  50. data/examples/tracing.rb +0 -85
  51. data/extras/license_header.rb +0 -44
  52. data/gemfiles/.bundle/config +0 -2
  53. data/gemfiles/aws_30.gemfile +0 -21
  54. data/gemfiles/aws_60.gemfile +0 -16
  55. data/gemfiles/cuba_30.gemfile +0 -16
  56. data/gemfiles/cuba_40.gemfile +0 -13
  57. data/gemfiles/dalli_20.gemfile +0 -15
  58. data/gemfiles/dalli_30.gemfile +0 -12
  59. data/gemfiles/dalli_32.gemfile +0 -12
  60. data/gemfiles/excon_0100.gemfile +0 -14
  61. data/gemfiles/excon_021.gemfile +0 -17
  62. data/gemfiles/excon_079.gemfile +0 -17
  63. data/gemfiles/excon_100.gemfile +0 -14
  64. data/gemfiles/graphql_10.gemfile +0 -16
  65. data/gemfiles/graphql_20.gemfile +0 -15
  66. data/gemfiles/grpc_10.gemfile +0 -15
  67. data/gemfiles/mongo_216.gemfile +0 -15
  68. data/gemfiles/mongo_219.gemfile +0 -12
  69. data/gemfiles/net_http_01.gemfile +0 -17
  70. data/gemfiles/rack_16.gemfile +0 -15
  71. data/gemfiles/rack_20.gemfile +0 -15
  72. data/gemfiles/rack_30.gemfile +0 -13
  73. data/gemfiles/rails_42.gemfile +0 -18
  74. data/gemfiles/rails_50.gemfile +0 -19
  75. data/gemfiles/rails_52.gemfile +0 -19
  76. data/gemfiles/rails_60.gemfile +0 -19
  77. data/gemfiles/rails_61.gemfile +0 -21
  78. data/gemfiles/rails_70.gemfile +0 -18
  79. data/gemfiles/rails_71.gemfile +0 -17
  80. data/gemfiles/rails_80.gemfile +0 -17
  81. data/gemfiles/redis_40.gemfile +0 -15
  82. data/gemfiles/redis_50.gemfile +0 -13
  83. data/gemfiles/redis_51.gemfile +0 -13
  84. data/gemfiles/resque_122.gemfile +0 -16
  85. data/gemfiles/resque_1274_3scale.gemfile +0 -17
  86. data/gemfiles/resque_20.gemfile +0 -16
  87. data/gemfiles/rest_client_16.gemfile +0 -17
  88. data/gemfiles/rest_client_20.gemfile +0 -17
  89. data/gemfiles/roda_20.gemfile +0 -16
  90. data/gemfiles/roda_30.gemfile +0 -16
  91. data/gemfiles/rubocop_162.gemfile +0 -6
  92. data/gemfiles/sequel_56.gemfile +0 -16
  93. data/gemfiles/sequel_57.gemfile +0 -16
  94. data/gemfiles/sequel_58.gemfile +0 -16
  95. data/gemfiles/shoryuken_50.gemfile +0 -16
  96. data/gemfiles/shoryuken_60.gemfile +0 -13
  97. data/gemfiles/sidekiq_42.gemfile +0 -15
  98. data/gemfiles/sidekiq_50.gemfile +0 -15
  99. data/gemfiles/sidekiq_60.gemfile +0 -12
  100. data/gemfiles/sidekiq_65.gemfile +0 -12
  101. data/gemfiles/sidekiq_70.gemfile +0 -12
  102. data/gemfiles/sinatra_14.gemfile +0 -15
  103. data/gemfiles/sinatra_22.gemfile +0 -12
  104. data/gemfiles/sinatra_30.gemfile +0 -12
  105. data/gemfiles/sinatra_40.gemfile +0 -12
  106. data/instana.gemspec +0 -53
  107. data/log/.keep +0 -0
  108. data/sonar-project.properties +0 -9
  109. data/test/activator_test.rb +0 -50
  110. data/test/backend/agent_test.rb +0 -80
  111. data/test/backend/gc_snapshot_test.rb +0 -11
  112. data/test/backend/host_agent_activation_observer_test.rb +0 -73
  113. data/test/backend/host_agent_lookup_test.rb +0 -78
  114. data/test/backend/host_agent_reporting_observer_test.rb +0 -276
  115. data/test/backend/host_agent_test.rb +0 -89
  116. data/test/backend/process_info_test.rb +0 -83
  117. data/test/backend/request_client_test.rb +0 -39
  118. data/test/backend/serverless_agent_test.rb +0 -83
  119. data/test/benchmarks/bench_id_generation.rb +0 -15
  120. data/test/benchmarks/bench_opentracing.rb +0 -16
  121. data/test/config_test.rb +0 -34
  122. data/test/frameworks/cuba_test.rb +0 -61
  123. data/test/frameworks/roda_test.rb +0 -60
  124. data/test/frameworks/sinatra_test.rb +0 -71
  125. data/test/instana_test.rb +0 -37
  126. data/test/instrumentation/aws_test.rb +0 -241
  127. data/test/instrumentation/dalli_test.rb +0 -325
  128. data/test/instrumentation/excon_test.rb +0 -204
  129. data/test/instrumentation/graphql_test.rb +0 -289
  130. data/test/instrumentation/grpc_test.rb +0 -420
  131. data/test/instrumentation/mongo_test.rb +0 -68
  132. data/test/instrumentation/net_http_test.rb +0 -220
  133. data/test/instrumentation/rack_instrumented_request_test.rb +0 -211
  134. data/test/instrumentation/rack_test.rb +0 -415
  135. data/test/instrumentation/rails_action_cable_test.rb +0 -135
  136. data/test/instrumentation/rails_action_controller_test.rb +0 -218
  137. data/test/instrumentation/rails_action_mailer_test.rb +0 -66
  138. data/test/instrumentation/rails_action_view_test.rb +0 -154
  139. data/test/instrumentation/rails_active_job_test.rb +0 -65
  140. data/test/instrumentation/rails_active_record_database_missing_test.rb +0 -44
  141. data/test/instrumentation/rails_active_record_test.rb +0 -116
  142. data/test/instrumentation/redis_test.rb +0 -152
  143. data/test/instrumentation/resque_test.rb +0 -188
  144. data/test/instrumentation/rest_client_test.rb +0 -106
  145. data/test/instrumentation/sequel_test.rb +0 -111
  146. data/test/instrumentation/shoryuken_test.rb +0 -47
  147. data/test/instrumentation/sidekiq-client_test.rb +0 -169
  148. data/test/instrumentation/sidekiq-worker_test.rb +0 -180
  149. data/test/secrets_test.rb +0 -112
  150. data/test/serverless_test.rb +0 -369
  151. data/test/snapshot/deltable_test.rb +0 -17
  152. data/test/snapshot/docker_container_test.rb +0 -82
  153. data/test/snapshot/fargate_container_test.rb +0 -82
  154. data/test/snapshot/fargate_process_test.rb +0 -35
  155. data/test/snapshot/fargate_task_test.rb +0 -49
  156. data/test/snapshot/google_cloud_run_instance_test.rb +0 -74
  157. data/test/snapshot/google_cloud_run_process_test.rb +0 -33
  158. data/test/snapshot/lambda_function_test.rb +0 -37
  159. data/test/snapshot/ruby_process_test.rb +0 -32
  160. data/test/support/apps/active_record/active_record.rb +0 -24
  161. data/test/support/apps/grpc/boot.rb +0 -23
  162. data/test/support/apps/grpc/grpc_server.rb +0 -84
  163. data/test/support/apps/http_endpoint/boot.rb +0 -28
  164. data/test/support/apps/rails/boot.rb +0 -219
  165. data/test/support/apps/rails/models/block.rb +0 -21
  166. data/test/support/apps/rails/models/block6.rb +0 -21
  167. data/test/support/apps/resque/boot.rb +0 -5
  168. data/test/support/apps/resque/jobs/resque_error_job.rb +0 -22
  169. data/test/support/apps/resque/jobs/resque_fast_job.rb +0 -23
  170. data/test/support/apps/sidekiq/boot.rb +0 -25
  171. data/test/support/apps/sidekiq/jobs/sidekiq_job_1.rb +0 -9
  172. data/test/support/apps/sidekiq/jobs/sidekiq_job_2.rb +0 -10
  173. data/test/support/apps/sidekiq/worker.rb +0 -37
  174. data/test/support/helpers.rb +0 -85
  175. data/test/support/mock_timer.rb +0 -20
  176. data/test/test_helper.rb +0 -69
  177. data/test/trace/custom_test.rb +0 -233
  178. data/test/trace/id_management_test.rb +0 -78
  179. data/test/trace/instrumented_logger_test.rb +0 -39
  180. data/test/trace/processor_test.rb +0 -58
  181. data/test/trace/span_context_test.rb +0 -22
  182. data/test/trace/span_test.rb +0 -179
  183. data/test/trace/tracer_async_test.rb +0 -243
  184. data/test/trace/tracer_provider_test.rb +0 -148
  185. data/test/trace/tracer_test.rb +0 -363
  186. data/test/util_test.rb +0 -10
@@ -1,169 +0,0 @@
1
- # (c) Copyright IBM Corp. 2021
2
- # (c) Copyright Instana Inc. 2017
3
-
4
- require 'test_helper'
5
- require 'support/apps/sidekiq/boot'
6
-
7
- class SidekiqClientTest < Minitest::Test
8
- def setup
9
- ::Sidekiq::Queue.new('some_random_queue').clear
10
- end
11
-
12
- def teardown
13
- ::Instana.config[:allow_exit_as_root] = false
14
- end
15
-
16
- def test_config_defaults
17
- assert ::Instana.config[:'sidekiq-client'].is_a?(Hash)
18
- assert ::Instana.config[:'sidekiq-client'].key?(:enabled)
19
- assert_equal true, ::Instana.config[:'sidekiq-client'][:enabled]
20
- end
21
-
22
- def test_enqueue
23
- clear_all!
24
- Instana.tracer.in_span(:sidekiqtests) do
25
- disable_redis_instrumentation
26
- ::Sidekiq::Client.push(
27
- 'queue' => 'some_random_queue',
28
- 'class' => ::SidekiqJobOne,
29
- 'args' => [1, 2, 3],
30
- 'retry' => false
31
- )
32
- enable_redis_instrumentation
33
- end
34
-
35
- queue = ::Sidekiq::Queue.new('some_random_queue')
36
- job = queue.first
37
-
38
- assert_job_enqueued(job)
39
- assert_normal_trace_recorded(job)
40
- end
41
-
42
- def test_enqueue_as_root_exit_span
43
- clear_all!
44
- ::Instana.config[:allow_exit_as_root] = true
45
- disable_redis_instrumentation
46
- ::Sidekiq::Client.push(
47
- 'queue' => 'some_random_queue',
48
- 'class' => ::SidekiqJobOne,
49
- 'args' => [1, 2, 3],
50
- 'retry' => false
51
- )
52
- ::Instana.config[:allow_exit_as_root] = false
53
- enable_redis_instrumentation
54
-
55
- queue = ::Sidekiq::Queue.new('some_random_queue')
56
- job = queue.first
57
-
58
- assert_job_enqueued(job)
59
- spans = ::Instana.processor.queued_spans
60
- assert_equal 1, spans.length
61
-
62
- first_span = spans[0]
63
-
64
- assert_equal :'sidekiq-client', first_span[:n]
65
- assert_equal 'some_random_queue', first_span[:data][:'sidekiq-client'][:queue]
66
- assert_equal 'SidekiqJobOne', first_span[:data][:'sidekiq-client'][:job]
67
- assert_equal "false", first_span[:data][:'sidekiq-client'][:retry]
68
- assert first_span[:data][:'sidekiq-client'][:'redis-url']
69
- assert_equal job['jid'], first_span[:data][:'sidekiq-client'][:job_id]
70
- end
71
-
72
- def test_enqueue_failure
73
- clear_all!
74
-
75
- Instana.tracer.in_span(:sidekiqtests) do
76
- disable_redis_instrumentation
77
- add_sidekiq_exception_middleware
78
- begin
79
- ::Sidekiq::Client.push(
80
- 'queue' => 'some_random_queue',
81
- 'class' => ::SidekiqJobTwo,
82
- 'args' => [1, 2, 3],
83
- 'retry' => false
84
- )
85
- rescue; end
86
- enable_redis_instrumentation
87
- remove_sidekiq_exception_middleware
88
- end
89
-
90
- queue = ::Sidekiq::Queue.new('some_random_queue')
91
- assert_equal 0, queue.size
92
-
93
- assert_failure_trace_recorded
94
- end
95
-
96
- private
97
-
98
- def assert_job_enqueued(job)
99
- job_message = JSON.parse(job.value)
100
-
101
- assert_equal 'some_random_queue', job_message['queue']
102
- assert_equal 'SidekiqJobOne', job_message['class']
103
- assert_equal [1, 2, 3], job_message['args']
104
- assert_equal false, job_message['retry']
105
- refute_nil job_message['X-Instana-T']
106
- refute_nil job_message['X-Instana-S']
107
- end
108
-
109
- def assert_normal_trace_recorded(job)
110
- spans = ::Instana.processor.queued_spans
111
- assert_equal 2, spans.length
112
-
113
- first_span = spans[1]
114
- second_span = spans[0]
115
-
116
- assert_equal first_span[:s], second_span[:p]
117
- validate_sdk_span(first_span, {:name => :sidekiqtests, :type => :entry})
118
-
119
- assert_equal :'sidekiq-client', second_span[:n]
120
- assert_equal 'some_random_queue', second_span[:data][:'sidekiq-client'][:queue]
121
- assert_equal 'SidekiqJobOne', second_span[:data][:'sidekiq-client'][:job]
122
- assert_equal "false", second_span[:data][:'sidekiq-client'][:retry]
123
- assert second_span[:data][:'sidekiq-client'][:'redis-url']
124
- assert_equal job['jid'], second_span[:data][:'sidekiq-client'][:job_id]
125
- end
126
-
127
- def assert_failure_trace_recorded
128
- spans = ::Instana.processor.queued_spans
129
- assert_equal 2, spans.length
130
-
131
- first_span = spans[1]
132
- second_span = spans[0]
133
-
134
- assert_equal first_span[:s], second_span[:p]
135
- validate_sdk_span(first_span, {:name => :sidekiqtests, :type => :entry})
136
-
137
- assert_equal :'sidekiq-client', second_span[:n]
138
- assert_equal true, second_span[:error]
139
- refute_nil second_span[:stack]
140
-
141
- assert_equal 'some_random_queue', second_span[:data][:'sidekiq-client'][:queue]
142
- assert_equal 'SidekiqJobTwo', second_span[:data][:'sidekiq-client'][:job]
143
- assert_equal "false", second_span[:data][:'sidekiq-client'][:retry]
144
- assert second_span[:data][:'sidekiq-client'][:'redis-url']
145
- assert_equal 'Fail to enqueue job', second_span[:data][:log][:message]
146
- end
147
-
148
- SidekiqMiddlewareException = Class.new do
149
- def call(*_args)
150
- raise 'Fail to enqueue job'
151
- end
152
- end
153
-
154
- def add_sidekiq_exception_middleware
155
- Sidekiq.configure_client do |config|
156
- config.client_middleware do |chain|
157
- chain.add SidekiqMiddlewareException
158
- end
159
- end
160
- end
161
-
162
- def remove_sidekiq_exception_middleware
163
- Sidekiq.configure_client do |config|
164
- config.client_middleware do |chain|
165
- chain.remove SidekiqMiddlewareException
166
- end
167
- end
168
- end
169
- end
@@ -1,180 +0,0 @@
1
- # (c) Copyright IBM Corp. 2021
2
- # (c) Copyright Instana Inc. 2017
3
-
4
- require 'test_helper'
5
- require 'support/apps/sidekiq/boot'
6
-
7
- class SidekiqServerTest < Minitest::Test
8
- def test_config_defaults
9
- assert ::Instana.config[:'sidekiq-worker'].is_a?(Hash)
10
- assert ::Instana.config[:'sidekiq-worker'].key?(:enabled)
11
- assert_equal true, ::Instana.config[:'sidekiq-worker'][:enabled]
12
- end
13
-
14
- def test_successful_worker_starts_new_trace
15
- clear_all!
16
- $sidekiq_mode = :server
17
- inject_instrumentation
18
-
19
- disable_redis_instrumentation
20
- ::Sidekiq.redis_pool.with do |redis|
21
- redis.sadd('queues'.freeze, 'important')
22
- redis.lpush(
23
- 'queue:important',
24
- <<-JSON
25
- {
26
- "class":"SidekiqJobOne",
27
- "args":[1,2,3],
28
- "queue":"important",
29
- "jid":"123456789"
30
- }
31
- JSON
32
- )
33
- end
34
- enable_redis_instrumentation
35
- sleep 1
36
-
37
- spans = Instana.processor.queued_spans
38
- worker_span = find_spans_by_name(spans, :'sidekiq-worker').first
39
- assert_successful_worker_span(worker_span)
40
-
41
- $sidekiq_mode = :client
42
- end
43
-
44
- def test_failed_worker_starts_new_trace
45
- clear_all!
46
- $sidekiq_mode = :server
47
- inject_instrumentation
48
-
49
- disable_redis_instrumentation
50
- ::Sidekiq.redis_pool.with do |redis|
51
- redis.sadd('queues'.freeze, 'important')
52
- redis.lpush(
53
- 'queue:important',
54
- <<-JSON
55
- {
56
- "class":"SidekiqJobTwo",
57
- "args":[1,2,3],
58
- "queue":"important",
59
- "jid":"123456789"
60
- }
61
- JSON
62
- )
63
- end
64
- enable_redis_instrumentation
65
-
66
- sleep 1
67
-
68
- spans = Instana.processor.queued_spans
69
- worker_span = find_spans_by_name(spans, :'sidekiq-worker').first
70
- assert_failed_worker_span(worker_span)
71
-
72
- $sidekiq_mode = :client
73
- end
74
-
75
- def test_successful_worker_continues_previous_trace
76
- clear_all!
77
- $sidekiq_mode = :server
78
- inject_instrumentation
79
-
80
- Instana.tracer.in_span(:sidekiqtests) do
81
- disable_redis_instrumentation
82
- ::Sidekiq::Client.push(
83
- 'queue' => 'important',
84
- 'class' => ::SidekiqJobOne,
85
- 'args' => [1, 2, 3]
86
- )
87
- enable_redis_instrumentation
88
- end
89
- sleep 1
90
- spans = Instana.processor.queued_spans
91
-
92
- sdk_span = find_spans_by_name(spans, :sidekiqtests).first
93
- validate_sdk_span(sdk_span)
94
-
95
- client_span = find_spans_by_name(spans, :'sidekiq-client').first
96
- assert_client_span(client_span, ::SidekiqJobOne)
97
-
98
- worker_span = find_spans_by_name(spans, :'sidekiq-worker').first
99
- assert_successful_worker_span(worker_span)
100
-
101
- # Worker trace and client trace are in the same trace
102
- assert_equal worker_span[:t], client_span[:t]
103
- assert_equal worker_span[:p], client_span[:s]
104
-
105
- $sidekiq_mode = :client
106
- end
107
-
108
- def test_failed_worker_continues_previous_trace
109
- clear_all!
110
- $sidekiq_mode = :server
111
- inject_instrumentation
112
-
113
- Instana.tracer.in_span(:sidekiqtests) do
114
- disable_redis_instrumentation
115
- ::Sidekiq::Client.push(
116
- 'queue' => 'important',
117
- 'class' => ::SidekiqJobTwo,
118
- 'args' => [1, 2, 3]
119
- )
120
- enable_redis_instrumentation
121
- end
122
- sleep 1
123
-
124
- spans = Instana.processor.queued_spans
125
-
126
- sdk_span = find_spans_by_name(spans, :sidekiqtests).first
127
- validate_sdk_span(sdk_span)
128
-
129
- client_span = find_spans_by_name(spans, :'sidekiq-client').first
130
- assert_client_span(client_span, ::SidekiqJobTwo)
131
-
132
- worker_span = find_spans_by_name(spans, :'sidekiq-worker').first
133
- assert_failed_worker_span(worker_span)
134
-
135
- # Worker trace and client trace are in the same trace
136
- assert_equal worker_span[:t], client_span[:t]
137
- assert_equal worker_span[:p], client_span[:s]
138
-
139
- $sidekiq_mode = :client
140
- end
141
-
142
- private
143
-
144
- def inject_instrumentation
145
- # Add the instrumentation again to ensure injection in server mode
146
- ::Sidekiq.configure_server do |cfg|
147
- cfg.server_middleware do |chain|
148
- chain.add ::Instana::Instrumentation::SidekiqWorker
149
- end
150
- end
151
- end
152
-
153
- def assert_successful_worker_span(worker_span)
154
- assert_equal :'sidekiq-worker', worker_span[:n]
155
-
156
- assert_equal 'important', worker_span[:data][:'sidekiq-worker'][:queue]
157
- assert_equal 'SidekiqJobOne', worker_span[:data][:'sidekiq-worker'][:job]
158
- assert worker_span[:data][:'sidekiq-worker'][:'redis-url']
159
- refute_nil worker_span[:data][:'sidekiq-worker'][:job_id]
160
- end
161
-
162
- def assert_failed_worker_span(worker_span)
163
- assert_equal :'sidekiq-worker', worker_span[:n]
164
-
165
- assert_equal 'important', worker_span[:data][:'sidekiq-worker'][:queue]
166
- assert_equal 'SidekiqJobTwo', worker_span[:data][:'sidekiq-worker'][:job]
167
- assert worker_span[:data][:'sidekiq-worker'][:'redis-url']
168
- refute_nil worker_span[:data][:'sidekiq-worker'][:job_id]
169
-
170
- assert_equal true, worker_span[:data][:'sidekiq-worker'][:error]
171
- assert_equal 'Fail to execute the job', worker_span[:data][:log][:message]
172
- end
173
-
174
- def assert_client_span(client_span, job)
175
- assert_equal :'sidekiq-client', client_span[:n]
176
- assert_equal 'important', client_span[:data][:'sidekiq-client'][:queue]
177
- assert client_span[:data][:'sidekiq-client'][:'redis-url']
178
- assert_equal job.name, client_span[:data][:'sidekiq-client'][:job]
179
- end
180
- end
data/test/secrets_test.rb DELETED
@@ -1,112 +0,0 @@
1
- # (c) Copyright IBM Corp. 2021
2
- # (c) Copyright Instana Inc. 2021
3
-
4
- require 'test_helper'
5
-
6
- class SecretsTest < Minitest::Test
7
- def setup
8
- @subject = Instana::Secrets.new(logger: Logger.new('/dev/null'))
9
- end
10
-
11
- def test_equals_ignore_case
12
- sample_config = {
13
- "matcher"=>"equals-ignore-case",
14
- "list"=>["key"]
15
- }
16
-
17
- url = url_for(%w(key Str kEy KEY))
18
- assert_redacted @subject.remove_from_query(url, sample_config), %w(key kEy KEY)
19
- end
20
-
21
- def test_equals
22
- sample_config = {
23
- "matcher"=>"equals",
24
- "list"=>["key", "kEy"]
25
- }
26
-
27
- url = url_for(%w(key Str kEy KEY))
28
- assert_redacted @subject.remove_from_query(url, sample_config), %w(key kEy)
29
- end
30
-
31
- def test_contains_ignore_case
32
- sample_config = {
33
- "matcher"=>"contains-ignore-case",
34
- "list"=>["stan"]
35
- }
36
-
37
- url = url_for(%w(instantiate conTESTant sample))
38
- assert_redacted @subject.remove_from_query(url, sample_config), %w(instantiate conTESTant)
39
- end
40
-
41
- def test_contains
42
- sample_config = {
43
- "matcher"=>"contains",
44
- "list"=>["stan"]
45
- }
46
-
47
- url = url_for(%w(instantiate conTESTant sample))
48
- assert_redacted @subject.remove_from_query(url, sample_config), %w(instantiate)
49
- end
50
-
51
- def test_regexp
52
- sample_config = {
53
- "matcher"=>"regex",
54
- "list"=>["l{2}"]
55
- }
56
-
57
- url = url_for(%w(ball foot move))
58
- assert_redacted @subject.remove_from_query(url, sample_config), %w(ball)
59
- end
60
-
61
- def test_invalid
62
- sample_config = {
63
- "matcher"=>"test_invalid",
64
- "list"=>["key"]
65
- }
66
-
67
- url = url_for(%w(key Str kEy KEY))
68
- assert_redacted @subject.remove_from_query(url, sample_config), []
69
- end
70
-
71
- def test_without_scheme
72
- sample_config = {
73
- "matcher"=>"contains",
74
- "list"=>["stan"]
75
- }
76
-
77
- url = 'example.com?instantiate=true'
78
- assert_redacted @subject.remove_from_query(url, sample_config), %w(instantiate)
79
- end
80
-
81
- def test_without_url
82
- sample_config = {
83
- "matcher"=>"contains",
84
- "list"=>["stan"]
85
- }
86
-
87
- url = 'filter[instantiate]=true'
88
- assert_redacted @subject.remove_from_query(url, sample_config), %w(filter[instantiate]), raw_str: true
89
- end
90
-
91
- def test_with_nil
92
- sample_config = {
93
- "matcher"=>"contains",
94
- "list"=>["stan"]
95
- }
96
-
97
- assert_nil @subject.remove_from_query(nil, sample_config)
98
- end
99
-
100
- private
101
-
102
- def url_for(keys)
103
- url = URI('http://example.com')
104
- url.query = URI.encode_www_form(keys.map { |k| [k, rand(1..100)]})
105
- url.to_s
106
- end
107
-
108
- def assert_redacted(str, keys, raw_str: false)
109
- params = raw_str ? CGI.parse(str) : CGI.parse(URI(str).query)
110
- assert_equal keys, params.select { |_, v| v == %w(<redacted>) }.keys, 'to be redacted'
111
- end
112
- end