instana 1.212.0 → 1.213.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +2 -2
  3. data/Gemfile +0 -2
  4. data/gemfiles/aws_30.gemfile +0 -2
  5. data/gemfiles/aws_60.gemfile +0 -2
  6. data/gemfiles/cuba_30.gemfile +0 -2
  7. data/gemfiles/cuba_40.gemfile +0 -2
  8. data/gemfiles/dalli_20.gemfile +0 -2
  9. data/gemfiles/dalli_30.gemfile +0 -2
  10. data/gemfiles/dalli_32.gemfile +0 -2
  11. data/gemfiles/excon_02.gemfile +0 -2
  12. data/gemfiles/excon_021.gemfile +0 -2
  13. data/gemfiles/excon_079.gemfile +0 -2
  14. data/gemfiles/excon_100.gemfile +0 -2
  15. data/gemfiles/graphql_10.gemfile +0 -2
  16. data/gemfiles/graphql_20.gemfile +0 -2
  17. data/gemfiles/grpc_10.gemfile +0 -2
  18. data/gemfiles/mongo_216.gemfile +0 -2
  19. data/gemfiles/mongo_219.gemfile +0 -2
  20. data/gemfiles/net_http_01.gemfile +0 -2
  21. data/gemfiles/rack_16.gemfile +0 -2
  22. data/gemfiles/rack_20.gemfile +0 -2
  23. data/gemfiles/rack_30.gemfile +0 -2
  24. data/gemfiles/rails_42.gemfile +0 -2
  25. data/gemfiles/rails_50.gemfile +0 -2
  26. data/gemfiles/rails_52.gemfile +0 -2
  27. data/gemfiles/rails_60.gemfile +0 -2
  28. data/gemfiles/rails_61.gemfile +0 -2
  29. data/gemfiles/rails_70.gemfile +0 -2
  30. data/gemfiles/rails_71.gemfile +0 -2
  31. data/gemfiles/redis_40.gemfile +0 -2
  32. data/gemfiles/resque_122.gemfile +0 -2
  33. data/gemfiles/resque_20.gemfile +0 -2
  34. data/gemfiles/rest_client_16.gemfile +0 -2
  35. data/gemfiles/rest_client_20.gemfile +0 -2
  36. data/gemfiles/roda_20.gemfile +0 -2
  37. data/gemfiles/roda_30.gemfile +0 -2
  38. data/gemfiles/shoryuken_50.gemfile +0 -2
  39. data/gemfiles/shoryuken_60.gemfile +0 -2
  40. data/gemfiles/sidekiq_42.gemfile +0 -2
  41. data/gemfiles/sidekiq_50.gemfile +0 -2
  42. data/gemfiles/sidekiq_60.gemfile +0 -2
  43. data/gemfiles/sidekiq_65.gemfile +0 -2
  44. data/gemfiles/sidekiq_70.gemfile +0 -2
  45. data/gemfiles/sinatra_14.gemfile +0 -2
  46. data/gemfiles/sinatra_22.gemfile +0 -2
  47. data/gemfiles/sinatra_30.gemfile +0 -2
  48. data/instana.gemspec +2 -2
  49. data/lib/instana/frameworks/rails.rb +5 -1
  50. data/lib/instana/instrumentation/aws_sdk_lambda.rb +8 -2
  51. data/lib/instana/instrumentation/excon.rb +1 -1
  52. data/lib/instana/instrumentation/net-http.rb +1 -1
  53. data/lib/instana/instrumentation/rack.rb +1 -1
  54. data/lib/instana/serverless.rb +3 -1
  55. data/lib/instana/version.rb +1 -1
  56. data/test/instrumentation/aws_test.rb +44 -0
  57. data/test/instrumentation/rails_action_controller_test.rb +35 -8
  58. metadata +6 -7
  59. data/gemfiles/coverage_merge.gemfile +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 332da83974279a02e0ebc35086a412aa2f8640d4e40dd38957bec22c0f8a9ed8
4
- data.tar.gz: cb3528e5f55e0c76e5069c0d801033d800af6c184101484690d9ead1b9cf7088
3
+ metadata.gz: e1509ebcf4f8afa64594e49f0fc133fda38e6a7170ef86de6510fcb44ed0021e
4
+ data.tar.gz: b21a8ecac7c698a973171f77d126718e925e0323f500a76a1596248db85615eb
5
5
  SHA512:
6
- metadata.gz: 4f372d7417bda356f6051fc6d8fb1ceb6f85537ac4c6841a9247f966350c9574335bf8c4fdc567b1c78d54ad95a8f3d0ce53b14126e964bb249c68d648616d11
7
- data.tar.gz: 44ebe7c9b5716b7d323a619561c3732ba8b1145a600601ebbb6c797444db89a82486f94580ac2b20335f3f4877abaf35274abe9a14b740500c894c2b3aecffab
6
+ metadata.gz: 841b715e429f54599356feaf5e623f4b6084d888968409cbc493ad2d56b2bfba0a43fb9c17a4e1fd303ac863821fc70b42091652d52ded2df94f22e473a03a72
7
+ data.tar.gz: a57470a6b55b7cbf553c6eb094fa462a1bc9f26ac2349c5be37bec5a26a8bf61f99f365a1e6735783c3344b9ac586461a2fb5ca9dd2cc5b9db86d9db4cabc157
data/.circleci/config.yml CHANGED
@@ -229,7 +229,7 @@ commands:
229
229
  bundle config set path './vendor/bundle'
230
230
  bundle check || bundle install
231
231
  environment:
232
- BUNDLE_GEMFILE: './gemfiles/coverage_merge.gemfile'
232
+ BUNDLE_GEMFILE: './Gemfile'
233
233
  - run:
234
234
  name: Fetching partial coverage reports from workflow jobs
235
235
  command: |
@@ -239,7 +239,7 @@ commands:
239
239
  command: |
240
240
  bundle exec rake coverage:merge_reports --trace
241
241
  environment:
242
- BUNDLE_GEMFILE: './gemfiles/coverage_merge.gemfile'
242
+ BUNDLE_GEMFILE: './Gemfile'
243
243
  - run:
244
244
  name: Run SonarQube to capture coverage
245
245
  command: |
data/Gemfile CHANGED
@@ -3,8 +3,6 @@
3
3
 
4
4
  source 'https://rubygems.org'
5
5
 
6
- gem 'rake'
7
- gem 'minitest', '5.20.0'
8
6
  gem 'minitest-reporters'
9
7
  gem 'webmock'
10
8
  gem 'puma'
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "webrick"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -6,8 +6,6 @@
6
6
  source "https://rubygems.org"
7
7
 
8
8
  gem "rack", "<3.0.0"
9
- gem "rake"
10
- gem "minitest", "5.20.0"
11
9
  gem "minitest-reporters"
12
10
  gem "webmock"
13
11
  gem "puma"
@@ -3,8 +3,6 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "rack", ">=3.0.0"
6
- gem "rake"
7
- gem "minitest", "5.20.0"
8
6
  gem "minitest-reporters"
9
7
  gem "webmock"
10
8
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -7,8 +7,6 @@ source "https://rubygems.org"
7
7
 
8
8
  gem "rack"
9
9
  gem "rackup"
10
- gem "rake"
11
- gem "minitest", "5.20.0"
12
10
  gem "minitest-reporters"
13
11
  gem "webmock"
14
12
  gem "puma"
@@ -7,8 +7,6 @@ source "https://rubygems.org"
7
7
 
8
8
  gem "rack"
9
9
  gem "rackup"
10
- gem "rake"
11
- gem "minitest", "5.20.0"
12
10
  gem "minitest-reporters"
13
11
  gem "webmock"
14
12
  gem "puma"
@@ -7,8 +7,6 @@ source "https://rubygems.org"
7
7
 
8
8
  gem "rack"
9
9
  gem "rackup"
10
- gem "rake"
11
- gem "minitest", "5.20.0"
12
10
  gem "minitest-reporters"
13
11
  gem "webmock"
14
12
  gem "puma"
@@ -4,8 +4,6 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "rack"
6
6
  gem "rackup"
7
- gem "rake"
8
- gem "minitest", "5.20.0"
9
7
  gem "minitest-reporters"
10
8
  gem "webmock"
11
9
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -7,8 +7,6 @@ source "https://rubygems.org"
7
7
 
8
8
  gem "rack"
9
9
  gem "rackup"
10
- gem "rake"
11
- gem "minitest", "5.20.0"
12
10
  gem "minitest-reporters"
13
11
  gem "webmock"
14
12
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -6,8 +6,6 @@
6
6
  source "https://rubygems.org"
7
7
 
8
8
  gem "redis", "< 5.0.0"
9
- gem "rake"
10
- gem "minitest", "5.20.0"
11
9
  gem "minitest-reporters"
12
10
  gem "webmock"
13
11
  gem "puma"
@@ -7,8 +7,6 @@ source "https://rubygems.org"
7
7
 
8
8
  gem "rack"
9
9
  gem "rackup"
10
- gem "rake"
11
- gem "minitest", "5.20.0"
12
10
  gem "minitest-reporters"
13
11
  gem "webmock"
14
12
  gem "puma"
@@ -7,8 +7,6 @@ source "https://rubygems.org"
7
7
 
8
8
  gem "rack"
9
9
  gem "rackup"
10
- gem "rake"
11
- gem "minitest", "5.20.0"
12
10
  gem "minitest-reporters"
13
11
  gem "webmock"
14
12
  gem "puma"
@@ -6,8 +6,6 @@
6
6
  source "https://rubygems.org"
7
7
 
8
8
  gem "rack", "<3.0.0"
9
- gem "rake"
10
- gem "minitest", "5.20.0"
11
9
  gem "minitest-reporters"
12
10
  gem "webmock"
13
11
  gem "puma"
@@ -6,8 +6,6 @@
6
6
  source "https://rubygems.org"
7
7
 
8
8
  gem "rack", "<3.0.0"
9
- gem "rake"
10
- gem "minitest", "5.20.0"
11
9
  gem "minitest-reporters"
12
10
  gem "webmock"
13
11
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -5,8 +5,6 @@
5
5
 
6
6
  source "https://rubygems.org"
7
7
 
8
- gem "rake"
9
- gem "minitest", "5.20.0"
10
8
  gem "minitest-reporters"
11
9
  gem "webmock"
12
10
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
@@ -2,8 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
5
  gem "minitest-reporters"
8
6
  gem "webmock"
9
7
  gem "puma"
data/instana.gemspec CHANGED
@@ -35,8 +35,8 @@ Gem::Specification.new do |spec|
35
35
  spec.platform = defined?(JRUBY_VERSION) ? 'java' : Gem::Platform::RUBY
36
36
 
37
37
  spec.add_development_dependency "bundler", "~> 2.0"
38
- spec.add_development_dependency "rake", "~> 10.0"
39
- spec.add_development_dependency "minitest", "~> 5.0"
38
+ spec.add_development_dependency "rake", "~> 12.0"
39
+ spec.add_development_dependency "minitest", "~> 5.20"
40
40
  spec.add_development_dependency "appraisal"
41
41
  spec.add_development_dependency "fakefs"
42
42
 
@@ -17,7 +17,11 @@ else
17
17
  # Configure the Instrumented Logger
18
18
  if ::Instana.config[:logging][:enabled] && !ENV.key?('INSTANA_TEST')
19
19
  logger = ::Instana::InstrumentedLogger.new('/dev/null')
20
- Rails.logger.extend(ActiveSupport::Logger.broadcast(logger))
20
+ if ::Rails::VERSION::STRING < "7.1"
21
+ Rails.logger.extend(ActiveSupport::Logger.broadcast(logger))
22
+ else
23
+ Rails.logger.broadcast_to(logger)
24
+ end
21
25
  end
22
26
 
23
27
  if ::Instana.config[:tracing][:enabled]
@@ -17,7 +17,7 @@ module Instana
17
17
  'X-INSTANA-L' => span_context.level.to_s
18
18
  }
19
19
 
20
- context.params[:client_context] = JSON.dump(payload)
20
+ context.params[:client_context] = Base64.strict_encode64(JSON.dump(payload))
21
21
  end
22
22
 
23
23
  tags = {
@@ -25,7 +25,13 @@ module Instana
25
25
  type: context.params[:invocation_type]
26
26
  }.reject { |_, v| v.nil? }
27
27
 
28
- ::Instana.tracer.trace(:"aws.lambda.invoke", {aws: {lambda: {invoke: tags}}}) { @handler.call(context) }
28
+ ::Instana.tracer.start_or_continue_trace(:"aws.lambda.invoke", {aws: {lambda: {invoke: tags}}}) do
29
+ response = @handler.call(context)
30
+ if response.respond_to? :status_code
31
+ ::Instana.tracer.log_info(:http => {:status => response.status_code })
32
+ end
33
+ response
34
+ end
29
35
  end
30
36
  end
31
37
 
@@ -60,7 +60,7 @@ module Instana
60
60
  status = datum[:response][:status]
61
61
  end
62
62
 
63
- if status.between?(500, 511)
63
+ if status >= 500
64
64
  # Because of the 5xx response, we flag this span as errored but
65
65
  # without a backtrace (no exception)
66
66
  ::Instana.tracer.log_error(nil)
@@ -51,7 +51,7 @@ module Instana
51
51
  response = super(*args, &block)
52
52
 
53
53
  kv_payload[:http][:status] = response.code
54
- if response.code.to_i.between?(500, 511)
54
+ if response.code.to_i >= 500
55
55
  # Because of the 5xx response, we flag this span as errored but
56
56
  # without a backtrace (no exception)
57
57
  ::Instana.tracer.log_error(nil)
@@ -48,7 +48,7 @@ module Instana
48
48
  # See Rack Spec: https://www.rubydoc.info/github/rack/rack/file/SPEC#label-The+Status
49
49
  kvs[:http][:status] = status.to_i
50
50
 
51
- if status.to_i.between?(500, 511)
51
+ if status.to_i >= 500
52
52
  # Because of the 5xx response, we flag this span as errored but
53
53
  # without a backtrace (no exception)
54
54
  ::Instana.tracer.log_error(nil)
@@ -8,7 +8,9 @@ require 'zlib'
8
8
  begin
9
9
  require 'instana/instrumentation/instrumented_request'
10
10
  rescue LoadError => _e
11
- Instana.logger.warn("Unable to Instana::InstrumentedRequest. HTTP based triggers won't generate spans.")
11
+ Instana.logger.warn("Unable to load Instana::InstrumentedRequest. "\
12
+ "This is normal when the Rack gem is not installed. "\
13
+ "HTTP based triggers won't generate spans.")
12
14
  end
13
15
  # :nocov:
14
16
 
@@ -2,6 +2,6 @@
2
2
  # (c) Copyright Instana Inc. 2016
3
3
 
4
4
  module Instana
5
- VERSION = "1.212.0"
5
+ VERSION = "1.213.1"
6
6
  VERSION_FULL = "instana-#{VERSION}"
7
7
  end
@@ -193,5 +193,49 @@ class AwsTest < Minitest::Test
193
193
  assert_equal :"aws.lambda.invoke", lambda_span[:n]
194
194
  assert_equal 'Test', lambda_span[:data][:aws][:lambda][:invoke][:function]
195
195
  assert_equal 'Event', lambda_span[:data][:aws][:lambda][:invoke][:type]
196
+ assert_equal 200, lambda_span[:data][:http][:status]
197
+ assert_nil lambda_span[:ec]
198
+ assert_nil lambda_span[:stack]
199
+ end
200
+
201
+ def test_lambda_with_500_status
202
+ stub_request(:post, "https://lambda.local.amazonaws.com/2015-03-31/functions/Test/invocations")
203
+ .with(
204
+ body: "data",
205
+ headers: {
206
+ 'X-Amz-Client-Context' => /.+/
207
+ }
208
+ )
209
+ .to_return(status: 500, body: '{"message": "Internal Server Error" }', headers: {})
210
+
211
+ lambda = Aws::Lambda::Client.new(
212
+ endpoint: 'https://lambda.local.amazonaws.com',
213
+ region: 'local',
214
+ access_key_id: "test",
215
+ secret_access_key: "test"
216
+ )
217
+
218
+ assert_raises(RuntimeError) do
219
+ Instana::Tracer.start_or_continue_trace(:lambda_test, {}) do
220
+ lambda.invoke(
221
+ function_name: 'Test',
222
+ invocation_type: 'Event',
223
+ payload: 'data'
224
+ )
225
+ end
226
+ end
227
+
228
+ spans = ::Instana.processor.queued_spans
229
+ lambda_span, _entry_span, *rest = spans
230
+
231
+ assert rest.empty?
232
+
233
+ assert_equal :"aws.lambda.invoke", lambda_span[:n]
234
+ assert_equal 'Test', lambda_span[:data][:aws][:lambda][:invoke][:function]
235
+ assert_equal 'Event', lambda_span[:data][:aws][:lambda][:invoke][:type]
236
+ refute_nil lambda_span[:ec]
237
+ assert_equal 1, lambda_span[:ec]
238
+ refute_nil lambda_span[:stack]
239
+ assert_equal 30, lambda_span[:stack].length # default limit is 30 in span.add_stack
196
240
  end
197
241
  end
@@ -5,7 +5,12 @@ 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
+ begin
9
+ ENV['INSTANA_TEST'] = nil
10
+ APP = Rack::Builder.parse_file('test/support/apps/action_controller/config.ru')
11
+ ensure
12
+ ENV['INSTANA_TEST'] = 'true'
13
+ end
9
14
  railties_version = Gem::Specification.find_by_name('railties').version
10
15
  if railties_version < Gem::Version.new('7.1.0')
11
16
  APP = APP.first
@@ -43,7 +48,8 @@ class RailsActionControllerTest < Minitest::Test
43
48
  refute last_response.ok?
44
49
 
45
50
  spans = ::Instana.processor.queued_spans
46
- assert_equal 2, spans.length
51
+ # 2 + 1 or more error log depending on Rails version
52
+ assert spans.length >= 3
47
53
 
48
54
  ac_span = find_first_span_by_name(spans, :actioncontroller)
49
55
 
@@ -65,7 +71,8 @@ class RailsActionControllerTest < Minitest::Test
65
71
  assert last_response.ok?
66
72
 
67
73
  spans = ::Instana.processor.queued_spans
68
- assert_equal 3, spans.length
74
+ # 2 + 1 or more error log depending on Rails version
75
+ assert spans.length >= 3
69
76
 
70
77
  ac_span = find_first_span_by_name(spans, :actioncontroller)
71
78
 
@@ -84,7 +91,8 @@ class RailsActionControllerTest < Minitest::Test
84
91
  refute last_response.ok?
85
92
 
86
93
  spans = ::Instana.processor.queued_spans
87
- assert_equal 2, spans.length
94
+ # 2 + 1 or more error log depending on Rails version
95
+ assert spans.length >= 3
88
96
 
89
97
  ac_span = find_first_span_by_name(spans, :actioncontroller)
90
98
 
@@ -106,7 +114,8 @@ class RailsActionControllerTest < Minitest::Test
106
114
  refute last_response.ok?
107
115
 
108
116
  spans = ::Instana.processor.queued_spans
109
- assert_equal 1, spans.length
117
+ # 1 + 1 or more error log depending on Rails version
118
+ assert spans.length >= 2
110
119
 
111
120
  rack_span = find_first_span_by_name(spans, :rack)
112
121
 
@@ -126,7 +135,9 @@ class RailsActionControllerTest < Minitest::Test
126
135
  refute last_response.ok?
127
136
 
128
137
  spans = ::Instana.processor.queued_spans
129
- assert_equal 2, spans.length
138
+
139
+ # 2 + 1 or more error log depending on Rails version
140
+ assert spans.length >= 3
130
141
 
131
142
  rack_span = find_first_span_by_name(spans, :rack)
132
143
  ac_span = find_first_span_by_name(spans, :actioncontroller)
@@ -148,7 +159,8 @@ class RailsActionControllerTest < Minitest::Test
148
159
  refute last_response.ok?
149
160
 
150
161
  spans = ::Instana.processor.queued_spans
151
- assert_equal 1, spans.length
162
+ # 1 + 1 or more error log depending on Rails version
163
+ assert spans.length >= 2
152
164
 
153
165
  rack_span = find_first_span_by_name(spans, :rack)
154
166
 
@@ -163,7 +175,8 @@ class RailsActionControllerTest < Minitest::Test
163
175
  refute last_response.ok?
164
176
 
165
177
  spans = ::Instana.processor.queued_spans
166
- assert_equal 2, spans.length
178
+ # 2 + 1 or more error log depending on Rails version
179
+ assert spans.length >= 3
167
180
 
168
181
  rack_span = find_first_span_by_name(spans, :rack)
169
182
  ac_span = find_first_span_by_name(spans, :actioncontroller)
@@ -188,4 +201,18 @@ class RailsActionControllerTest < Minitest::Test
188
201
  assert_equal false, rack_span.key?(:error)
189
202
  assert_equal '/base/world(.:format)', rack_span[:data][:http][:path_tpl]
190
203
  end
204
+
205
+ def test_log
206
+ clear_all!
207
+
208
+ get '/base/log_warning'
209
+ assert last_response.ok?
210
+
211
+ spans = ::Instana.processor.queued_spans
212
+ assert spans[0][:data][:log]
213
+ log_span = spans[0][:data][:log]
214
+
215
+ assert_equal "Warn", log_span[:level]
216
+ assert_equal "This is a test warning", log_span[:message]
217
+ end
191
218
  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.212.0
4
+ version: 1.213.1
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-12-07 00:00:00.000000000 Z
11
+ date: 2024-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '12.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '12.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '5.0'
47
+ version: '5.20'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '5.0'
54
+ version: '5.20'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: appraisal
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -160,7 +160,6 @@ files:
160
160
  - gemfiles/.bundle/config
161
161
  - gemfiles/aws_30.gemfile
162
162
  - gemfiles/aws_60.gemfile
163
- - gemfiles/coverage_merge.gemfile
164
163
  - gemfiles/cuba_30.gemfile
165
164
  - gemfiles/cuba_40.gemfile
166
165
  - gemfiles/dalli_20.gemfile
@@ -1,9 +0,0 @@
1
- # (c) Copyright IBM Corp. 2023
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rake"
6
- gem "minitest", "5.20.0"
7
- gem "minitest-reporters"
8
- gem "rack-test"
9
- gem "simplecov", "~> 0.21.2"