instana 1.201.0 → 1.202.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a12265a63ae5d07df74d4e8c1b81fe17559960726a5562c6c59b83571eb4f25
4
- data.tar.gz: 2844f85c68a18ead499aef5ec6634d726305b824dada97d1e1e386e1c40774fb
3
+ metadata.gz: 3c72533e116e54ad36227ccdf76c02aaaeb3536f40c99ecf1009f0cf284ebf99
4
+ data.tar.gz: 3f748a84fed00443296d65340fc71e876a69c17d8698637356529d6d5980aa5e
5
5
  SHA512:
6
- metadata.gz: 97c13b14a55c13d2e5e898711fee065699d817169cc39ab1b15c322bf075d1f4c3b715dc4fa1490f8cc7d53ef01e0ba348f7548cae400ab028c8da1fed607484
7
- data.tar.gz: 0c4e03ef64a6273cbbf2f41bb2e57228a68b4a579298c4c26c3bd109b5002ba7e7fb1337609bc8a712e9fb7ff1902a0e46a2a0bdcd386fd13ca454172228032d
6
+ metadata.gz: '009d83c5f6a7d8a5f4da1903fb482c6fe5a5cb68de6c984c1a58f52b01559bae3bbf43a10f028deae5cabe73c41a07e625f5545037ca295d53108e03564efbe1'
7
+ data.tar.gz: 241d6f1b46de88f5e7933dc85530cc5f540f71f9d9ad26b0778ffb970645b2c5c2aa4d0b11f05d85033cb4232339e9e27b92bfcd386fe79a1e3d9578485c9bfc
data/.circleci/config.yml CHANGED
@@ -132,12 +132,12 @@ commands:
132
132
  name: Install Depdendecies
133
133
  command: |
134
134
  bundle check || bundle install
135
- run_tests:
135
+ run_sonarqube:
136
136
  steps:
137
137
  - run:
138
- name: Run Tests
138
+ name: Install Java
139
139
  command: |
140
- bundle exec rake
140
+ sudo apt-get install openjdk-11-jdk
141
141
  - run:
142
142
  name: Run SonarQube to capture coverage
143
143
  command: |
@@ -147,8 +147,16 @@ commands:
147
147
  -Dsonar.projectKey=ruby-sensor \
148
148
  -Dsonar.sources=. \
149
149
  -Dsonar.host.url="${SONARQUBE_URL}" \
150
- -Dsonar.login="${SONARQUBE_LOGIN}" \
151
- -Dsonar.ruby.coverage.reportPaths=coverage/coverage.json
150
+ -Dsonar.login="${SONARQUBE_LOGIN}"
151
+ run_tests:
152
+ steps:
153
+ - run:
154
+ name: Run Tests
155
+ command: |
156
+ mkdir _junit
157
+ bundle exec rake
158
+ - store_test_results:
159
+ path: ~/_junit
152
160
  run_rubocop:
153
161
  steps:
154
162
  - run:
@@ -201,6 +209,7 @@ jobs:
201
209
  - checkout
202
210
  - setup
203
211
  - run_rubocop
212
+ - run_sonarqube
204
213
  publish:
205
214
  executor: ruby_27
206
215
  steps:
@@ -46,11 +46,13 @@ end
46
46
  Dir["#{__dir__}/activators/*.rb"]
47
47
  .sort
48
48
  .select do |f|
49
+ # :nocov:
49
50
  if ENV['INSTANA_ACTIVATE_SET']
50
51
  base = File.basename(f, '.rb')
51
52
  ENV.fetch('INSTANA_ACTIVATE_SET', '').split(',').include?(base)
52
53
  else
53
54
  true
54
55
  end
56
+ # :nocov:
55
57
  end
56
58
  .each { |f| require(f) }
@@ -27,6 +27,9 @@ module Instana
27
27
  # Enable/disable tracing (default: enabled)
28
28
  @config[:tracing] = { :enabled => true }
29
29
 
30
+ # Enable/Disable logging
31
+ @config[:logging] = { :enabled => true }
32
+
30
33
  # Collector interval
31
34
  @config[:collector] = { :enabled => true, :interval => 1 }
32
35
 
@@ -3,9 +3,6 @@
3
3
 
4
4
  if ::Rails::VERSION::MAJOR < 3
5
5
  ::Rails.configuration.after_initialize do
6
- # In Rails, let's use the Rails logger
7
- ::Instana.logger = ::Rails.logger if ::Rails.logger
8
-
9
6
  if ::Instana.config[:tracing][:enabled]
10
7
  ::Instana.logger.debug "Instrumenting Rack"
11
8
  ::Rails.configuration.middleware.insert 0, ::Instana::Rack
@@ -17,8 +14,11 @@ else
17
14
  module ::Instana
18
15
  class Railtie < ::Rails::Railtie
19
16
  initializer 'instana.rack' do |app|
20
- # In Rails, let's use the Rails logger
21
- ::Instana.logger = ::Rails.logger if ::Rails.logger
17
+ # Configure the Instrumented Logger
18
+ if ::Instana.config[:logging][:enabled] && !ENV.key?('INSTANA_TEST')
19
+ logger = ::Instana::InstrumentedLogger.new('/dev/null')
20
+ Rails.logger.extend(ActiveSupport::Logger.broadcast(logger))
21
+ end
22
22
 
23
23
  if ::Instana.config[:tracing][:enabled]
24
24
  ::Instana.logger.debug "Instrumenting Rack"
@@ -0,0 +1,26 @@
1
+ # (c) Copyright IBM Corp. 2021
2
+ # (c) Copyright Instana Inc. 2021
3
+
4
+ module Instana
5
+ class InstrumentedLogger < Logger
6
+ LEVEL_LABELS = %w[Debug Info Warn Error Fatal Any].freeze
7
+
8
+ def instana_log_level
9
+ WARN
10
+ end
11
+
12
+ def add(severity, message = nil, progname = nil)
13
+ severity ||= UNKNOWN
14
+
15
+ if severity >= instana_log_level && ::Instana.tracer.tracing?
16
+ tags = {
17
+ level: LEVEL_LABELS[severity],
18
+ message: "#{message} #{progname}".strip
19
+ }
20
+ Instana::Tracer.trace(:log, {log: tags}) {}
21
+ end
22
+
23
+ super(severity, message, progname)
24
+ end
25
+ end
26
+ end
data/lib/instana/setup.rb CHANGED
@@ -1,10 +1,12 @@
1
1
  # (c) Copyright IBM Corp. 2021
2
2
  # (c) Copyright Instana Inc. 2016
3
3
 
4
+ require 'logger'
4
5
  require 'concurrent'
5
6
  require 'sys-proctable'
6
7
 
7
8
  require 'instana/logger_delegator'
9
+ require 'instana/instrumented_logger'
8
10
 
9
11
  require "instana/base"
10
12
  require "instana/config"
@@ -6,10 +6,10 @@ module Instana
6
6
  REGISTERED_SPANS = [ :actioncontroller, :actionview, :activerecord, :excon,
7
7
  :memcache, :'net-http', :rack, :render, :'rpc-client',
8
8
  :'rpc-server', :'sidekiq-client', :'sidekiq-worker',
9
- :redis, :'resque-client', :'resque-worker', :'graphql.server', :dynamodb, :s3, :sns, :sqs, :'aws.lambda.entry', :activejob ].freeze
9
+ :redis, :'resque-client', :'resque-worker', :'graphql.server', :dynamodb, :s3, :sns, :sqs, :'aws.lambda.entry', :activejob, :log ].freeze
10
10
  ENTRY_SPANS = [ :rack, :'resque-worker', :'rpc-server', :'sidekiq-worker', :'graphql.server', :sqs, :'aws.lambda.entry' ].freeze
11
11
  EXIT_SPANS = [ :activerecord, :excon, :'net-http', :'resque-client',
12
- :'rpc-client', :'sidekiq-client', :redis, :dynamodb, :s3, :sns, :sqs ].freeze
12
+ :'rpc-client', :'sidekiq-client', :redis, :dynamodb, :s3, :sns, :sqs, :log ].freeze
13
13
  HTTP_SPANS = [ :rack, :excon, :'net-http' ].freeze
14
14
 
15
15
  attr_accessor :parent
@@ -2,6 +2,6 @@
2
2
  # (c) Copyright Instana Inc. 2016
3
3
 
4
4
  module Instana
5
- VERSION = "1.201.0"
5
+ VERSION = "1.202.0"
6
6
  VERSION_FULL = "instana-#{VERSION}"
7
7
  end
data/test/test_helper.rb CHANGED
@@ -50,5 +50,14 @@ WebMock.disable_net_connect!(
50
50
 
51
51
  Dir['test/support/*.rb'].each { |f| load(f) }
52
52
 
53
- Minitest::Reporters.use! MiniTest::Reporters::SpecReporter.new
53
+ if ENV['CI']
54
+ Minitest::Reporters.use!([
55
+ Minitest::Reporters::JUnitReporter.new('_junit', false),
56
+ Minitest::Reporters::SpecReporter.new
57
+ ])
58
+ else
59
+ Minitest::Reporters.use!([
60
+ MiniTest::Reporters::SpecReporter.new
61
+ ])
62
+ end
54
63
  Minitest::Test.include(Instana::TestHelpers)
@@ -0,0 +1,39 @@
1
+ # (c) Copyright IBM Corp. 2021
2
+ # (c) Copyright Instana Inc. 2021
3
+
4
+ require 'test_helper'
5
+
6
+ class InstrumentedLoggerTest < Minitest::Test
7
+ def setup
8
+ clear_all!
9
+ end
10
+
11
+ def test_log_warn_error
12
+ subject = Instana::InstrumentedLogger.new('/dev/null')
13
+
14
+ Instana::Tracer.start_or_continue_trace(:test_logging) do
15
+ subject.warn('warn')
16
+ subject.debug('test')
17
+ subject.error('error')
18
+ end
19
+
20
+ spans = ::Instana.processor.queued_spans
21
+
22
+ warn_span, error_span, = *spans
23
+
24
+ assert_equal :log, warn_span[:n]
25
+ assert_equal 'warn', warn_span[:data][:log][:message]
26
+ assert_equal 'Warn', warn_span[:data][:log][:level]
27
+
28
+ assert_equal :log, error_span[:n]
29
+ assert_equal 'error', error_span[:data][:log][:message]
30
+ assert_equal 'Error', error_span[:data][:log][:level]
31
+ end
32
+
33
+ def test_no_trace
34
+ subject = Instana::InstrumentedLogger.new('/dev/null')
35
+ subject.warn('warn')
36
+
37
+ assert_equal [], ::Instana.processor.queued_spans
38
+ end
39
+ 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.201.0
4
+ version: 1.202.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: 2021-06-09 00:00:00.000000000 Z
11
+ date: 2021-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -244,6 +244,7 @@ files:
244
244
  - lib/instana/instrumentation/shoryuken.rb
245
245
  - lib/instana/instrumentation/sidekiq-client.rb
246
246
  - lib/instana/instrumentation/sidekiq-worker.rb
247
+ - lib/instana/instrumented_logger.rb
247
248
  - lib/instana/logger_delegator.rb
248
249
  - lib/instana/open_tracing/carrier.rb
249
250
  - lib/instana/open_tracing/instana_tracer.rb
@@ -334,6 +335,7 @@ files:
334
335
  - test/test_helper.rb
335
336
  - test/tracing/custom_test.rb
336
337
  - test/tracing/id_management_test.rb
338
+ - test/tracing/instrumented_logger_test.rb
337
339
  - test/tracing/opentracing_test.rb
338
340
  - test/tracing/processor_test.rb
339
341
  - test/tracing/span_context_test.rb
@@ -364,81 +366,82 @@ required_rubygems_version: !ruby/object:Gem::Requirement
364
366
  - !ruby/object:Gem::Version
365
367
  version: '0'
366
368
  requirements: []
367
- rubygems_version: 3.1.6
369
+ rubygems_version: 3.2.6
368
370
  signing_key:
369
371
  specification_version: 4
370
372
  summary: Ruby Distributed Tracing & Metrics Sensor for Instana
371
373
  test_files:
374
+ - test/config_test.rb
375
+ - test/serverless_test.rb
372
376
  - test/activator_test.rb
373
- - test/backend/agent_test.rb
374
- - test/backend/gc_snapshot_test.rb
377
+ - test/tracing/span_context_test.rb
378
+ - test/tracing/span_test.rb
379
+ - test/tracing/id_management_test.rb
380
+ - test/tracing/tracer_test.rb
381
+ - test/tracing/custom_test.rb
382
+ - test/tracing/opentracing_test.rb
383
+ - test/tracing/instrumented_logger_test.rb
384
+ - test/tracing/tracer_async_test.rb
385
+ - test/tracing/processor_test.rb
386
+ - test/snapshot/docker_container_test.rb
387
+ - test/snapshot/fargate_process_test.rb
388
+ - test/snapshot/deltable_test.rb
389
+ - test/snapshot/fargate_task_test.rb
390
+ - test/snapshot/ruby_process_test.rb
391
+ - test/snapshot/google_cloud_run_process_test.rb
392
+ - test/snapshot/lambda_function_test.rb
393
+ - test/snapshot/fargate_container_test.rb
394
+ - test/snapshot/google_cloud_run_instance_test.rb
375
395
  - test/backend/host_agent_activation_observer_test.rb
376
- - test/backend/host_agent_lookup_test.rb
377
396
  - test/backend/host_agent_reporting_observer_test.rb
378
- - test/backend/host_agent_test.rb
397
+ - test/backend/gc_snapshot_test.rb
398
+ - test/backend/host_agent_lookup_test.rb
399
+ - test/backend/serverless_agent_test.rb
379
400
  - test/backend/process_info_test.rb
401
+ - test/backend/agent_test.rb
402
+ - test/backend/host_agent_test.rb
380
403
  - test/backend/request_client_test.rb
381
- - test/backend/serverless_agent_test.rb
382
- - test/benchmarks/bench_id_generation.rb
383
- - test/benchmarks/bench_opentracing.rb
384
- - test/config_test.rb
385
- - test/frameworks/cuba_test.rb
386
- - test/frameworks/roda_test.rb
387
- - test/frameworks/sinatra_test.rb
388
- - test/instana_test.rb
389
- - test/instrumentation/aws_test.rb
390
- - test/instrumentation/dalli_test.rb
391
- - test/instrumentation/excon_test.rb
404
+ - test/secrets_test.rb
392
405
  - test/instrumentation/graphql_test.rb
393
- - test/instrumentation/grpc_test.rb
394
- - test/instrumentation/net_http_test.rb
395
- - test/instrumentation/rack_instrumented_request_test.rb
396
- - test/instrumentation/rack_test.rb
397
- - test/instrumentation/rails_action_cable_test.rb
406
+ - test/instrumentation/sidekiq-client_test.rb
398
407
  - test/instrumentation/rails_action_controller_test.rb
408
+ - test/instrumentation/rest_client_test.rb
409
+ - test/instrumentation/net_http_test.rb
410
+ - test/instrumentation/resque_test.rb
411
+ - test/instrumentation/sidekiq-worker_test.rb
399
412
  - test/instrumentation/rails_action_view_test.rb
400
413
  - test/instrumentation/rails_active_job_test.rb
414
+ - test/instrumentation/rack_test.rb
415
+ - test/instrumentation/rack_instrumented_request_test.rb
416
+ - test/instrumentation/shoryuken_test.rb
401
417
  - test/instrumentation/rails_active_record_test.rb
402
418
  - test/instrumentation/redis_test.rb
403
- - test/instrumentation/resque_test.rb
404
- - test/instrumentation/rest_client_test.rb
405
- - test/instrumentation/shoryuken_test.rb
406
- - test/instrumentation/sidekiq-client_test.rb
407
- - test/instrumentation/sidekiq-worker_test.rb
408
- - test/secrets_test.rb
409
- - test/serverless_test.rb
410
- - test/snapshot/deltable_test.rb
411
- - test/snapshot/docker_container_test.rb
412
- - test/snapshot/fargate_container_test.rb
413
- - test/snapshot/fargate_process_test.rb
414
- - test/snapshot/fargate_task_test.rb
415
- - test/snapshot/google_cloud_run_instance_test.rb
416
- - test/snapshot/google_cloud_run_process_test.rb
417
- - test/snapshot/lambda_function_test.rb
418
- - test/snapshot/ruby_process_test.rb
419
- - test/support/apps/active_record/active_record.rb
419
+ - test/instrumentation/dalli_test.rb
420
+ - test/instrumentation/rails_action_cable_test.rb
421
+ - test/instrumentation/excon_test.rb
422
+ - test/instrumentation/grpc_test.rb
423
+ - test/instrumentation/aws_test.rb
424
+ - test/util_test.rb
425
+ - test/support/helpers.rb
426
+ - test/support/mock_timer.rb
427
+ - test/support/apps/sidekiq/boot.rb
428
+ - test/support/apps/sidekiq/jobs/sidekiq_job_2.rb
429
+ - test/support/apps/sidekiq/jobs/sidekiq_job_1.rb
430
+ - test/support/apps/sidekiq/worker.rb
420
431
  - test/support/apps/grpc/boot.rb
421
432
  - test/support/apps/grpc/grpc_server.rb
422
- - test/support/apps/http_endpoint/boot.rb
423
- - test/support/apps/rails/boot.rb
424
- - test/support/apps/rails/models/block.rb
425
- - test/support/apps/rails/models/block6.rb
433
+ - test/support/apps/active_record/active_record.rb
426
434
  - test/support/apps/resque/boot.rb
427
435
  - test/support/apps/resque/jobs/resque_error_job.rb
428
436
  - test/support/apps/resque/jobs/resque_fast_job.rb
429
- - test/support/apps/sidekiq/boot.rb
430
- - test/support/apps/sidekiq/jobs/sidekiq_job_1.rb
431
- - test/support/apps/sidekiq/jobs/sidekiq_job_2.rb
432
- - test/support/apps/sidekiq/worker.rb
433
- - test/support/helpers.rb
434
- - test/support/mock_timer.rb
437
+ - test/support/apps/http_endpoint/boot.rb
438
+ - test/support/apps/rails/models/block.rb
439
+ - test/support/apps/rails/models/block6.rb
440
+ - test/support/apps/rails/boot.rb
441
+ - test/benchmarks/bench_opentracing.rb
442
+ - test/benchmarks/bench_id_generation.rb
435
443
  - test/test_helper.rb
436
- - test/tracing/custom_test.rb
437
- - test/tracing/id_management_test.rb
438
- - test/tracing/opentracing_test.rb
439
- - test/tracing/processor_test.rb
440
- - test/tracing/span_context_test.rb
441
- - test/tracing/span_test.rb
442
- - test/tracing/tracer_async_test.rb
443
- - test/tracing/tracer_test.rb
444
- - test/util_test.rb
444
+ - test/frameworks/cuba_test.rb
445
+ - test/frameworks/roda_test.rb
446
+ - test/frameworks/sinatra_test.rb
447
+ - test/instana_test.rb