scout_apm 5.3.8 → 5.4.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: 8eb7dc8091eba4caa3dfb078b44636de67c94abc26646c05c14339e77ba0b58a
4
- data.tar.gz: 7e7a596d825cf2c648470f6e867ea2c5cc3eb9112b813b4b4ca4dcf873a2b98c
3
+ metadata.gz: 6e125a347fd3bbfa0b52f6dde597daf1dc95d97ba95cb6c44553bc36fae71b82
4
+ data.tar.gz: 9f0c708e386be527f255582195a791938c1663b418999816b79f25e4f7caaf6f
5
5
  SHA512:
6
- metadata.gz: 9964722b976e23fc9a629cdb010079f4781e10764226bb8eeb9d6da4439612d20fe21c9fa13f8e1a7fbe8db268ff15005599d102893ee5ed44388ef686874b44
7
- data.tar.gz: 1b9a9a0847c9f688fe34068cd68e0cd9d4bcac0e70eb3a59c507a2671d03aa2ac30bb7a8a1eea9f1df6d9ec5e4a4a713046707fe60702ff06b353df634e5cce2
6
+ metadata.gz: d7e079bde40861cf673834ec606f8a09fc84bd4416eddccd22abd29d5cd64dbf071347d832549f840dd3b07026c8a3d4e6788f458587128482a1b44682479ec4
7
+ data.tar.gz: e20c7d5fadbfe008f1febb62e3e31e5aa23cc4410f02634329493b10159603fb467e4ae66d504709f247ff457b0bf5d386f62baa0835010e7e5a0954160f7b97
@@ -0,0 +1,30 @@
1
+ name: Release Gem
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ # Directly from https://github.com/rubygems/release-gem/tree/v1
9
+ # Predicated on Tag Ruleset preventing arbitrary tag creation and
10
+ # requiring checks to pass for commit before tag creation
11
+ jobs:
12
+ push:
13
+ name: Push gem to RubyGems.org
14
+ runs-on: ubuntu-latest
15
+
16
+ permissions:
17
+ id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
18
+ contents: write # IMPORTANT: this permission is required for `rake release` to push the release tag
19
+
20
+ steps:
21
+ # Set up
22
+ - uses: actions/checkout@v4
23
+ - name: Set up Ruby
24
+ uses: ruby/setup-ruby@v1
25
+ with:
26
+ bundler-cache: true
27
+ ruby-version: ruby
28
+
29
+ # Release
30
+ - uses: rubygems/release-gem@v1
@@ -7,7 +7,7 @@ jobs:
7
7
  runs-on: ubuntu-latest
8
8
 
9
9
  steps:
10
- - uses: actions/checkout@v3
10
+ - uses: actions/checkout@v4
11
11
  - uses: ruby/setup-ruby@v1
12
12
  with:
13
13
  bundler-cache: true
@@ -23,7 +23,9 @@ jobs:
23
23
  gemfile: gems/rails3.gemfile
24
24
  - ruby: 2.2
25
25
  - ruby: 2.3
26
+ gemfile: gems/sqlite3-1.3.gemfile
26
27
  - ruby: 2.4
28
+ gemfile: gems/sqlite3-1.3.gemfile
27
29
  - ruby: 2.5
28
30
  - ruby: 2.6
29
31
  - ruby: 2.6
@@ -31,9 +33,6 @@ jobs:
31
33
  test_features: "typhoeus"
32
34
  - ruby: 2.6
33
35
  gemfile: gems/octoshark.gemfile
34
- - ruby: 2.6
35
- gemfile: gems/rails3.gemfile
36
- bundler: 1.17.3
37
36
  - ruby: 2.7
38
37
  - ruby: 2.7
39
38
  prepend: true
@@ -61,7 +60,7 @@ jobs:
61
60
  runs-on: ${{ matrix.ruby == '2.2' && 'ubuntu-20.04' || 'ubuntu-latest' }}
62
61
 
63
62
  steps:
64
- - uses: actions/checkout@v3
63
+ - uses: actions/checkout@v4
65
64
  - uses: ruby/setup-ruby@v1
66
65
  with:
67
66
  bundler-cache: true
data/CHANGELOG.markdown CHANGED
@@ -1,5 +1,9 @@
1
1
  # Unreleased
2
2
 
3
+ # 5.4.0
4
+ * Add support for GoodJob (#506)
5
+ * Add support for Solid Queue (#508)
6
+
3
7
  # 5.3.8
4
8
  * Avoid inaccurate websocket queue time capturing (#494)
5
9
 
@@ -0,0 +1,3 @@
1
+ eval_gemfile("../Gemfile")
2
+
3
+ gem "sqlite3", "~> 1.3.5"
@@ -0,0 +1,49 @@
1
+ module ScoutApm
2
+ module BackgroundJobIntegrations
3
+ class GoodJob
4
+ UNKNOWN_QUEUE_PLACEHOLDER = 'default'.freeze
5
+ attr_reader :logger
6
+
7
+ def name
8
+ :good_job
9
+ end
10
+
11
+ def present?
12
+ defined?(::GoodJob::VERSION)
13
+ end
14
+
15
+ def forking?
16
+ false
17
+ end
18
+
19
+ def install
20
+ ActiveSupport.on_load(:active_job) do
21
+ include ScoutApm::Tracer
22
+
23
+ around_perform do |job, block|
24
+ # I have a sneaking suspicion there is a better way to handle Agent starting
25
+ # Maybe hook into GoodJob lifecycle events?
26
+ req = ScoutApm::RequestManager.lookup
27
+ latency = Time.now - (job.scheduled_at || job.enqueued_at) rescue 0
28
+ req.annotate_request(queue_latency: latency)
29
+
30
+ begin
31
+ req.start_layer ScoutApm::Layer.new("Queue", job.queue_name.presence || UNKNOWN_QUEUE_PLACEHOLDER)
32
+ started_queue = true # Following Convention
33
+ req.start_layer ScoutApm::Layer.new("Job", job.class.name)
34
+ started_job = true # Following Convention
35
+
36
+ block.call
37
+ rescue
38
+ req.error!
39
+ raise
40
+ ensure
41
+ req.stop_layer if started_job
42
+ req.stop_layer if started_queue
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,47 @@
1
+ module ScoutApm
2
+ module BackgroundJobIntegrations
3
+ class SolidQueue
4
+ UNKNOWN_QUEUE_PLACEHOLDER = 'default'.freeze
5
+ attr_reader :logger
6
+
7
+ def name
8
+ :solid_queue
9
+ end
10
+
11
+ def present?
12
+ defined?(::SolidQueue::VERSION)
13
+ end
14
+
15
+ def forking?
16
+ false
17
+ end
18
+
19
+ def install
20
+ ActiveSupport.on_load(:active_job) do
21
+ include ScoutApm::Tracer
22
+
23
+ around_perform do |job, block|
24
+ req = ScoutApm::RequestManager.lookup
25
+ latency = Time.now - (job.scheduled_at || job.enqueued_at) rescue 0
26
+ req.annotate_request(queue_latency: latency)
27
+
28
+ begin
29
+ req.start_layer ScoutApm::Layer.new("Queue", job.queue_name.presence || UNKNOWN_QUEUE_PLACEHOLDER)
30
+ started_queue = true # Following Convention
31
+ req.start_layer ScoutApm::Layer.new("Job", job.class.name)
32
+ started_job = true # Following Convention
33
+
34
+ block.call
35
+ rescue
36
+ req.error!
37
+ raise
38
+ ensure
39
+ req.stop_layer if started_job
40
+ req.stop_layer if started_queue
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -31,6 +31,8 @@ module ScoutApm
31
31
  ScoutApm::BackgroundJobIntegrations::DelayedJob.new,
32
32
  ScoutApm::BackgroundJobIntegrations::Que.new,
33
33
  ScoutApm::BackgroundJobIntegrations::Faktory.new,
34
+ ScoutApm::BackgroundJobIntegrations::GoodJob.new,
35
+ ScoutApm::BackgroundJobIntegrations::SolidQueue.new,
34
36
  ]
35
37
 
36
38
  FRAMEWORK_INTEGRATIONS = [
@@ -1,3 +1,3 @@
1
1
  module ScoutApm
2
- VERSION = "5.3.8"
2
+ VERSION = "5.4.0"
3
3
  end
data/lib/scout_apm.rb CHANGED
@@ -67,6 +67,8 @@ require 'scout_apm/background_job_integrations/shoryuken'
67
67
  require 'scout_apm/background_job_integrations/sneakers'
68
68
  require 'scout_apm/background_job_integrations/que'
69
69
  require 'scout_apm/background_job_integrations/legacy_sneakers'
70
+ require 'scout_apm/background_job_integrations/good_job'
71
+ require 'scout_apm/background_job_integrations/solid_queue'
70
72
 
71
73
  require 'scout_apm/framework_integrations/rails_2'
72
74
  require 'scout_apm/framework_integrations/rails_3_or_4'
data/scout_apm.gemspec CHANGED
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  # tests. Specific versions are pulled in using specific gemfiles, e.g.
35
35
  # `gems/rails3.gemfile`.
36
36
  s.add_development_dependency "activerecord"
37
- s.add_development_dependency "sqlite3"
37
+ s.add_development_dependency "sqlite3", "~> 1.4"
38
38
 
39
39
  s.add_development_dependency "rubocop"
40
40
  s.add_development_dependency "guard"
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scout_apm
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.8
4
+ version: 5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derek Haynes
8
8
  - Andre Lewis
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-04-03 00:00:00.000000000 Z
12
+ date: 2024-09-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
@@ -141,16 +141,16 @@ dependencies:
141
141
  name: sqlite3
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - ">="
144
+ - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '0'
146
+ version: '1.4'
147
147
  type: :development
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
- - - ">="
151
+ - - "~>"
152
152
  - !ruby/object:Gem::Version
153
- version: '0'
153
+ version: '1.4'
154
154
  - !ruby/object:Gem::Dependency
155
155
  name: rubocop
156
156
  requirement: !ruby/object:Gem::Requirement
@@ -216,6 +216,7 @@ extensions:
216
216
  - ext/rusage/extconf.rb
217
217
  extra_rdoc_files: []
218
218
  files:
219
+ - ".github/workflows/release.yml"
219
220
  - ".github/workflows/test.yml"
220
221
  - ".gitignore"
221
222
  - ".rubocop.yml"
@@ -239,6 +240,7 @@ files:
239
240
  - gems/rails5.gemfile
240
241
  - gems/rails6.gemfile
241
242
  - gems/sidekiq.gemfile
243
+ - gems/sqlite3-1.3.gemfile
242
244
  - gems/typhoeus.gemfile
243
245
  - lib/scout_apm.rb
244
246
  - lib/scout_apm/agent.rb
@@ -254,12 +256,14 @@ files:
254
256
  - lib/scout_apm/auto_instrument/rails.rb
255
257
  - lib/scout_apm/background_job_integrations/delayed_job.rb
256
258
  - lib/scout_apm/background_job_integrations/faktory.rb
259
+ - lib/scout_apm/background_job_integrations/good_job.rb
257
260
  - lib/scout_apm/background_job_integrations/legacy_sneakers.rb
258
261
  - lib/scout_apm/background_job_integrations/que.rb
259
262
  - lib/scout_apm/background_job_integrations/resque.rb
260
263
  - lib/scout_apm/background_job_integrations/shoryuken.rb
261
264
  - lib/scout_apm/background_job_integrations/sidekiq.rb
262
265
  - lib/scout_apm/background_job_integrations/sneakers.rb
266
+ - lib/scout_apm/background_job_integrations/solid_queue.rb
263
267
  - lib/scout_apm/background_recorder.rb
264
268
  - lib/scout_apm/background_worker.rb
265
269
  - lib/scout_apm/bucket_name_splitter.rb
@@ -485,7 +489,7 @@ homepage: https://github.com/scoutapp/scout_apm_ruby
485
489
  licenses:
486
490
  - MIT
487
491
  metadata: {}
488
- post_install_message:
492
+ post_install_message:
489
493
  rdoc_options: []
490
494
  require_paths:
491
495
  - lib
@@ -501,78 +505,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
501
505
  - !ruby/object:Gem::Version
502
506
  version: '0'
503
507
  requirements: []
504
- rubygems_version: 3.0.8
505
- signing_key:
508
+ rubygems_version: 3.5.16
509
+ signing_key:
506
510
  specification_version: 4
507
511
  summary: Ruby application performance monitoring
508
- test_files:
509
- - test/data/config_test_1.yml
510
- - test/test_helper.rb
511
- - test/tmp/README.md
512
- - test/unit/agent_context_test.rb
513
- - test/unit/agent_test.rb
514
- - test/unit/auto_instrument/anonymous_block_value.rb
515
- - test/unit/auto_instrument/assignments-instrumented.rb
516
- - test/unit/auto_instrument/assignments.rb
517
- - test/unit/auto_instrument/controller-ast.txt
518
- - test/unit/auto_instrument/controller-instrumented.rb
519
- - test/unit/auto_instrument/controller.rb
520
- - test/unit/auto_instrument/hanging_method.rb
521
- - test/unit/auto_instrument/hash_shorthand_controller-instrumented.rb
522
- - test/unit/auto_instrument/hash_shorthand_controller.rb
523
- - test/unit/auto_instrument/rescue_from-instrumented.rb
524
- - test/unit/auto_instrument/rescue_from.rb
525
- - test/unit/auto_instrument_test.rb
526
- - test/unit/background_job_integrations/sidekiq_test.rb
527
- - test/unit/config_test.rb
528
- - test/unit/context_test.rb
529
- - test/unit/db_query_metric_set_test.rb
530
- - test/unit/db_query_metric_stats_test.rb
531
- - test/unit/environment_test.rb
532
- - test/unit/error_service/error_buffer_test.rb
533
- - test/unit/error_service/ignored_exceptions_test.rb
534
- - test/unit/extensions/periodic_callbacks_test.rb
535
- - test/unit/extensions/transaction_callbacks_test.rb
536
- - test/unit/external_service_metric_set_test.rb
537
- - test/unit/external_service_metric_stats_test.rb
538
- - test/unit/fake_store_test.rb
539
- - test/unit/git_revision_test.rb
540
- - test/unit/histogram_test.rb
541
- - test/unit/ignored_uris_test.rb
542
- - test/unit/instruments/action_view_test.rb
543
- - test/unit/instruments/active_record_test.rb
544
- - test/unit/instruments/fixtures/test/_test_partial.html.erb
545
- - test/unit/instruments/fixtures/test/_test_partial_collection.html.erb
546
- - test/unit/instruments/fixtures/test_view.html.erb
547
- - test/unit/instruments/http_client_test.rb
548
- - test/unit/instruments/http_test.rb
549
- - test/unit/instruments/moped_test.rb
550
- - test/unit/instruments/net_http_test.rb
551
- - test/unit/instruments/percentile_sampler_test.rb
552
- - test/unit/instruments/redis_test.rb
553
- - test/unit/instruments/typhoeus_test.rb
554
- - test/unit/layaway_test.rb
555
- - test/unit/layer_children_set_test.rb
556
- - test/unit/layer_converters/depth_first_walker_test.rb
557
- - test/unit/layer_converters/metric_converter_test.rb
558
- - test/unit/layer_converters/stubs.rb
559
- - test/unit/limited_layer_test.rb
560
- - test/unit/logger_test.rb
561
- - test/unit/metric_set_test.rb
562
- - test/unit/remote/message_test.rb
563
- - test/unit/remote/route_test.rb
564
- - test/unit/remote/server_test.rb
565
- - test/unit/request_histograms_test.rb
566
- - test/unit/scored_item_set_test.rb
567
- - test/unit/serializers/payload_serializer_test.rb
568
- - test/unit/slow_request_policy_test.rb
569
- - test/unit/sql_sanitizer_test.rb
570
- - test/unit/store_test.rb
571
- - test/unit/tracer_test.rb
572
- - test/unit/tracked_request_test.rb
573
- - test/unit/transaction_test.rb
574
- - test/unit/transaction_time_consumed_test.rb
575
- - test/unit/utils/active_record_metric_name_test.rb
576
- - test/unit/utils/backtrace_parser_test.rb
577
- - test/unit/utils/numbers_test.rb
578
- - test/unit/utils/scm.rb
512
+ test_files: []