mnemosyne-ruby 1.17.0 → 2.1.1

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +36 -0
  3. data/.github/workflows/test.yml +21 -30
  4. data/.rubocop.yml +1 -1
  5. data/Appraisals +15 -23
  6. data/CHANGELOG.md +31 -1
  7. data/Gemfile +5 -4
  8. data/README.md +8 -7
  9. data/gemfiles/core.gemfile +2 -1
  10. data/gemfiles/faraday_10.gemfile +2 -1
  11. data/gemfiles/{faraday_09.gemfile → faraday_20.gemfile} +3 -2
  12. data/gemfiles/rails_61.gemfile +2 -1
  13. data/gemfiles/rails_70.gemfile +2 -1
  14. data/gemfiles/rails_71.gemfile +2 -1
  15. data/gemfiles/{rails_52.gemfile → rails_72.gemfile} +3 -2
  16. data/gemfiles/{rails_60.gemfile → rails_80.gemfile} +3 -2
  17. data/gemfiles/redis_40.gemfile +2 -1
  18. data/gemfiles/redis_50.gemfile +2 -1
  19. data/gemfiles/sidekiq_60.gemfile +2 -1
  20. data/gemfiles/sidekiq_70.gemfile +2 -1
  21. data/lib/mnemosyne/client.rb +1 -1
  22. data/lib/mnemosyne/global.rb +6 -2
  23. data/lib/mnemosyne/instrumenter.rb +1 -1
  24. data/lib/mnemosyne/middleware/rack.rb +7 -5
  25. data/lib/mnemosyne/middleware/sidekiq.rb +7 -5
  26. data/lib/mnemosyne/probes/acfs/request.rb +6 -2
  27. data/lib/mnemosyne/probes/action_controller/process_action.rb +6 -2
  28. data/lib/mnemosyne/probes/action_controller/renderers.rb +6 -3
  29. data/lib/mnemosyne/probes/action_view/render_partial.rb +6 -2
  30. data/lib/mnemosyne/probes/action_view/render_template.rb +6 -2
  31. data/lib/mnemosyne/probes/active_job/perform.rb +6 -2
  32. data/lib/mnemosyne/probes/active_record/instantiation.rb +6 -2
  33. data/lib/mnemosyne/probes/active_record/query.rb +6 -2
  34. data/lib/mnemosyne/probes/faraday/base.rb +1 -10
  35. data/lib/mnemosyne/probes/grape/endpoint_render.rb +5 -2
  36. data/lib/mnemosyne/probes/grape/endpoint_run.rb +6 -2
  37. data/lib/mnemosyne/probes/grape/endpoint_run_filters.rb +5 -2
  38. data/lib/mnemosyne/probes/mnemosyne/tracer.rb +6 -2
  39. data/lib/mnemosyne/probes/msgr/client.rb +1 -1
  40. data/lib/mnemosyne/probes/msgr/consumer.rb +5 -3
  41. data/lib/mnemosyne/probes/responder/respond.rb +5 -2
  42. data/lib/mnemosyne/probes/restify/base.rb +1 -1
  43. data/lib/mnemosyne/probes/sidekiq/client.rb +1 -1
  44. data/lib/mnemosyne/probes/view_component/render_component.rb +6 -2
  45. data/lib/mnemosyne/probes.rb +9 -11
  46. data/lib/mnemosyne/span.rb +5 -5
  47. data/lib/mnemosyne/trace.rb +7 -7
  48. data/lib/mnemosyne/version.rb +3 -3
  49. data/mnemosyne-ruby.gemspec +4 -3
  50. metadata +14 -14
  51. data/gemfiles/sidekiq_50.gemfile +0 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8cc4eb9f402b3b0b6bff2303ab053db952748357a70353db3bfcd095d7c5c3b8
4
- data.tar.gz: 2285a82061c02625dffc6bc660249cf5bc6c950c70968d858a4a2689711dca83
3
+ metadata.gz: 8e43cd3357ec07ccf972193e5985f115f841d62e02c9bcfd3af9e671886a141f
4
+ data.tar.gz: 14edb9c60d6a62d223d920f2e7e066c33adcf7d9e8ceeee1ca4b6796950a1a03
5
5
  SHA512:
6
- metadata.gz: 7378f99a3b5d170a027cd971234eb4256a7260d1d4ba5dffd7e0d7a3b94e2f3c3425fc1b920964dae34057b11a93043ef02dac97b8cdc6b779d46626e00a2224
7
- data.tar.gz: f3190633b22cd474a4fdc365984dc4a26516637243b2f446345cf6ca4862ed7af456fde353f11babf2a5d4b79870d4102056d7077e7106b887cb16b22d04654b
6
+ metadata.gz: 5ff54f453fae4c438d21e7bfaa7799d95c6823bf735cf3f9dfd45bcd0e87df6792c07f5c276f4f60ad7084387f86223bb299d5059118701780479a583e28f079
7
+ data.tar.gz: 9dd721a3140b9d6a2482317b84afa046aa4f01bf5b3dd06c5bcf50ed8638d6cb43d0cf1ca91ca679e0966e04044b369ff6a6d37d3be5a506bf4d894b4908a7e2
@@ -0,0 +1,36 @@
1
+ name: release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - v*
7
+
8
+ jobs:
9
+ rubygems:
10
+ if: github.repository == 'mnemosyne-mon/mnemosyne-ruby'
11
+ runs-on: ubuntu-24.04
12
+
13
+ permissions:
14
+ contents: write
15
+ id-token: write
16
+
17
+ env:
18
+ BUNDLE_JOBS: 4
19
+ BUNDLE_RETRY: 10
20
+ BUNDLE_WITHOUT: development test
21
+
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+
25
+ - uses: ruby/setup-ruby@v1
26
+ with:
27
+ ruby-version: ruby
28
+ bundler-cache: true
29
+
30
+ - uses: rubygems/release-gem@v1
31
+
32
+ - uses: taiki-e/create-gh-release-action@v1
33
+ with:
34
+ changelog: CHANGELOG.md
35
+ draft: true
36
+ token: ${{ secrets.GITHUB_TOKEN }}
@@ -6,65 +6,63 @@ on:
6
6
  jobs:
7
7
  test:
8
8
  name: Ruby ${{ matrix.ruby }} / ${{ matrix.suite }}
9
- runs-on: ubuntu-22.04
9
+ runs-on: ubuntu-24.04
10
10
 
11
11
  strategy:
12
12
  fail-fast: false
13
13
  matrix:
14
14
  ruby:
15
+ - "3.3"
15
16
  - "3.2"
16
17
  - "3.1"
17
- - "3.0"
18
- - "2.7"
19
18
  suite:
20
19
  - core
21
- - faraday-0.9
22
20
  - faraday-1.0
21
+ - faraday-2.0
23
22
  - msgr
24
23
  - rack
25
- - rails-5.2
26
- - rails-6.0
27
- - rails-6.1
28
- - rails-7.0
24
+ - rails-8.0
25
+ - rails-7.2
29
26
  - rails-7.1
27
+ - rails-7.0
28
+ - rails-6.1
30
29
  - redis-4.0
31
30
  - redis-5.0
32
31
  - redis-client
33
32
  - restify
34
- - sidekiq-5
35
33
  - sidekiq-6
36
34
  - sidekiq-7
37
35
  include:
38
36
  - suite: core
39
37
  spec: --tag ~probe
40
38
  gemfile: gemfiles/core.gemfile
41
- - suite: faraday-0.9
42
- spec: --tag probe:faraday
43
- gemfile: gemfiles/faraday_09.gemfile
44
39
  - suite: faraday-1.0
45
40
  spec: --tag probe:faraday
46
41
  gemfile: gemfiles/faraday_10.gemfile
42
+ - suite: faraday-2.0
43
+ spec: --tag probe:faraday
44
+ gemfile: gemfiles/faraday_20.gemfile
47
45
  - suite: msgr
48
46
  spec: --tag probe:msgr
49
47
  gemfile: gemfiles/core.gemfile
50
48
  - suite: rack
51
49
  spec: --tag probe:rack
52
50
  gemfile: gemfiles/core.gemfile
53
- - suite: rails-5.2
51
+ - suite: rails-8.0
54
52
  spec: --tag probe:rails --tag ~probe
55
- gemfile: gemfiles/rails_52.gemfile
56
- - suite: rails-6.0
53
+ gemfile: gemfiles/rails_80.gemfile
54
+ - suite: rails-7.2
57
55
  spec: --tag probe:rails --tag ~probe
58
- gemfile: gemfiles/rails_60.gemfile
59
- - suite: rails-6.1
56
+ gemfile: gemfiles/rails_72.gemfile
57
+ - suite: rails-7.1
60
58
  spec: --tag probe:rails --tag ~probe
61
- gemfile: gemfiles/rails_61.gemfile
59
+ gemfile: gemfiles/rails_71.gemfile
62
60
  - suite: rails-7.0
63
61
  spec: --tag probe:rails --tag ~probe
64
62
  gemfile: gemfiles/rails_70.gemfile
65
- - suite: rails-7.1
63
+ - suite: rails-6.1
66
64
  spec: --tag probe:rails --tag ~probe
67
- gemfile: gemfiles/rails_71.gemfile
65
+ gemfile: gemfiles/rails_61.gemfile
68
66
  - suite: redis-4.0
69
67
  spec: --tag probe:redis
70
68
  gemfile: gemfiles/redis_40.gemfile
@@ -77,9 +75,6 @@ jobs:
77
75
  - suite: restify
78
76
  spec: --tag probe:restify
79
77
  gemfile: gemfiles/core.gemfile
80
- - suite: sidekiq-5
81
- spec: --tag probe:sidekiq
82
- gemfile: gemfiles/sidekiq_50.gemfile
83
78
  - suite: sidekiq-6
84
79
  spec: --tag probe:sidekiq
85
80
  gemfile: gemfiles/sidekiq_60.gemfile
@@ -87,12 +82,8 @@ jobs:
87
82
  spec: --tag probe:sidekiq
88
83
  gemfile: gemfiles/sidekiq_70.gemfile
89
84
  exclude:
90
- - suite: rails-5.2
91
- ruby: '3.2'
92
- - suite: rails-5.2
93
- ruby: '3.1'
94
- - suite: rails-5.2
95
- ruby: '3.0'
85
+ - ruby: "3.1"
86
+ suite: rails-8.0
96
87
 
97
88
  env:
98
89
  BUNDLE_GEMFILE: ${{ matrix.gemfile }}
@@ -125,7 +116,7 @@ jobs:
125
116
 
126
117
  rubocop:
127
118
  name: rubocop
128
- runs-on: ubuntu-22.04
119
+ runs-on: ubuntu-24.04
129
120
 
130
121
  env:
131
122
  BUNDLE_WITHOUT: development test
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.7
2
+ TargetRubyVersion: 3.1
3
3
  Exclude:
4
4
  - 'vendor/**/*'
5
5
  - 'gemfiles/**/*'
data/Appraisals CHANGED
@@ -4,63 +4,63 @@ appraise 'core' do
4
4
  remove_gem 'rubocop'
5
5
  end
6
6
 
7
- appraise 'faraday-09' do
7
+ appraise 'faraday-10' do
8
8
  remove_gem 'rubocop'
9
9
 
10
10
  group :test do
11
- gem 'faraday', '~> 0.9'
11
+ gem 'faraday', '~> 1.0'
12
12
  end
13
13
  end
14
14
 
15
- appraise 'faraday-10' do
15
+ appraise 'faraday-20' do
16
16
  remove_gem 'rubocop'
17
17
 
18
18
  group :test do
19
- gem 'faraday', '~> 1.0'
19
+ gem 'faraday', '~> 2.0'
20
20
  end
21
21
  end
22
22
 
23
- appraise 'rails-71' do
23
+ appraise 'rails-80' do
24
24
  remove_gem 'rubocop'
25
25
 
26
26
  group :test do
27
- gem 'rails', '~> 7.1.0'
28
- gem 'sqlite3', '~> 1.4'
27
+ gem 'rails', '~> 8.0.0'
28
+ gem 'sqlite3', '~> 2.0'
29
29
  end
30
30
  end
31
31
 
32
- appraise 'rails-70' do
32
+ appraise 'rails-72' do
33
33
  remove_gem 'rubocop'
34
34
 
35
35
  group :test do
36
- gem 'rails', '~> 7.0.0'
36
+ gem 'rails', '~> 7.2.0'
37
37
  gem 'sqlite3', '~> 1.4'
38
38
  end
39
39
  end
40
40
 
41
- appraise 'rails-61' do
41
+ appraise 'rails-71' do
42
42
  remove_gem 'rubocop'
43
43
 
44
44
  group :test do
45
- gem 'rails', '~> 6.1.0'
45
+ gem 'rails', '~> 7.1.0'
46
46
  gem 'sqlite3', '~> 1.4'
47
47
  end
48
48
  end
49
49
 
50
- appraise 'rails-60' do
50
+ appraise 'rails-70' do
51
51
  remove_gem 'rubocop'
52
52
 
53
53
  group :test do
54
- gem 'rails', '~> 6.0.0'
54
+ gem 'rails', '~> 7.0.0'
55
55
  gem 'sqlite3', '~> 1.4'
56
56
  end
57
57
  end
58
58
 
59
- appraise 'rails-52' do
59
+ appraise 'rails-61' do
60
60
  remove_gem 'rubocop'
61
61
 
62
62
  group :test do
63
- gem 'rails', '~> 5.2.0'
63
+ gem 'rails', '~> 6.1.0'
64
64
  gem 'sqlite3', '~> 1.4'
65
65
  end
66
66
  end
@@ -81,14 +81,6 @@ appraise 'redis-50' do
81
81
  end
82
82
  end
83
83
 
84
- appraise 'sidekiq-50' do
85
- remove_gem 'rubocop'
86
-
87
- group :test do
88
- gem 'sidekiq', '~> 5.0'
89
- end
90
- end
91
-
92
84
  appraise 'sidekiq-60' do
93
85
  remove_gem 'rubocop'
94
86
 
data/CHANGELOG.md CHANGED
@@ -6,6 +6,33 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [2.1.1] - 2024-12-13
10
+
11
+ ### Added
12
+
13
+ - Fix issue with automated release
14
+
15
+ ## [2.1.0] - 2024-12-13
16
+
17
+ ### Added
18
+
19
+ - Increase compatibility of Kernel#require patch
20
+ - Add support for Rails 7.2
21
+ - Add support for Rails 8.0
22
+
23
+ ## [2.0.0] - 2024-02-29
24
+
25
+ ### Removed
26
+
27
+ - Dropped support for Ruby < 3.1
28
+ - Dropped support for Rails < 6.1
29
+ - Dropped support for Sidekiq < 6.0
30
+ - Dropped support for Faraday < 1.0
31
+
32
+ ### Added
33
+
34
+ - Added Faraday 2.0 to test matrix
35
+
9
36
  ## [1.17.0] - 2023-11-28
10
37
 
11
38
  ### Added
@@ -212,7 +239,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
212
239
 
213
240
  - Add platform identifier
214
241
 
215
- [Unreleased]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.17.0...HEAD
242
+ [Unreleased]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v2.1.1...HEAD
243
+ [2.1.1]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v2.1.0...v2.1.1
244
+ [2.1.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v2.0.0...v2.1.0
245
+ [2.0.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.17.0...v2.0.0
216
246
  [1.17.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.16.0...v1.17.0
217
247
  [1.16.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.15.0...v1.16.0
218
248
  [1.15.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.14.0...v1.15.0
data/Gemfile CHANGED
@@ -6,10 +6,11 @@ source 'https://rubygems.org'
6
6
  gemspec
7
7
 
8
8
  gem 'rake', '~> 13.0'
9
- gem 'rubocop', '~> 1.57.0'
9
+ gem 'rake-release', '~> 1.3.0'
10
+ gem 'rspec', '~> 3.6'
11
+ gem 'rubocop', '~> 1.68.0'
10
12
 
11
13
  group :test do
12
- gem 'rspec', '~> 3.6'
13
14
  gem 'timecop', '~> 0.9.1'
14
15
 
15
16
  gem 'faraday'
@@ -19,13 +20,13 @@ group :test do
19
20
  gem 'redis-client'
20
21
  gem 'restify'
21
22
  gem 'sidekiq'
22
- gem 'sqlite3'
23
23
  gem 'webmock'
24
+
25
+ gem 'sqlite3', '~> 2.0'
24
26
  end
25
27
 
26
28
  group :development do
27
29
  gem 'appraisal'
28
- gem 'rake-release', '~> 1.3.0'
29
30
 
30
31
  gem 'pry', require: false
31
32
  gem 'pry-byebug', require: false
data/README.md CHANGED
@@ -6,14 +6,19 @@ Supported probes:
6
6
 
7
7
  * Acfs: Remote calls including tracing middleware
8
8
  * ActionController: Processing actions and rendering
9
- * ActiveView: Template and Partial rendering
9
+ * ActionDispatch: Error capturing
10
+ * ActiveJob: Background job execution
10
11
  * ActiveRecord: SQL query time
12
+ * ActiveView: Template and Partial rendering
13
+ * Faraday: HTTP client operations and tracing injection
11
14
  * Grape: Endpoint run, filter and render times
12
15
  * Mnemosyne: Custom traces
16
+ * Msgr: Event publishing and consumer processing
17
+ * Rack: Middleware for request tracing
18
+ * Redis: Client operations
13
19
  * Responders: render time
14
20
  * Restify: Remote calls including tracing middleware
15
21
  * Sidekiq: Client and server tracing
16
- * Rack: Middleware for request tracing
17
22
  * ViewComponent: Component rendering (needs [additional configuration](https://viewcomponent.org/guide/instrumentation.html))
18
23
 
19
24
  ## Installation
@@ -21,15 +26,11 @@ Supported probes:
21
26
  Add this line to your Gemfile:
22
27
 
23
28
  ```ruby
24
- gem 'mnemosyne-ruby', '~> 1.0'
29
+ gem 'mnemosyne-ruby', '~> 2.0'
25
30
  ```
26
31
 
27
32
  Note: Removing support for ancient Ruby or Rails versions will not result in a new major. Please be extra careful when using ancient Ruby or Rails versions and updating gems.
28
33
 
29
- ## Usage
30
-
31
- TODO
32
-
33
34
  ## License
34
35
 
35
36
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -11,10 +11,11 @@ group :test do
11
11
  gem "msgr"
12
12
  gem "rails"
13
13
  gem "redis"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq"
16
- gem "sqlite3"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 2.0"
18
19
  end
19
20
 
20
21
  group :development do
@@ -11,10 +11,11 @@ group :test do
11
11
  gem "msgr"
12
12
  gem "rails"
13
13
  gem "redis"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq"
16
- gem "sqlite3"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 2.0"
18
19
  end
19
20
 
20
21
  group :development do
@@ -7,14 +7,15 @@ gem "rake", "~> 13.0"
7
7
  group :test do
8
8
  gem "rspec", "~> 3.6"
9
9
  gem "timecop", "~> 0.9.1"
10
- gem "faraday", "~> 0.9"
10
+ gem "faraday", "~> 2.0"
11
11
  gem "msgr"
12
12
  gem "rails"
13
13
  gem "redis"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq"
16
- gem "sqlite3"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 2.0"
18
19
  end
19
20
 
20
21
  group :development do
@@ -11,10 +11,11 @@ group :test do
11
11
  gem "msgr"
12
12
  gem "rails", "~> 6.1.0"
13
13
  gem "redis"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq"
16
- gem "sqlite3", "~> 1.4"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 1.4"
18
19
  end
19
20
 
20
21
  group :development do
@@ -11,10 +11,11 @@ group :test do
11
11
  gem "msgr"
12
12
  gem "rails", "~> 7.0.0"
13
13
  gem "redis"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq"
16
- gem "sqlite3", "~> 1.4"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 1.4"
18
19
  end
19
20
 
20
21
  group :development do
@@ -11,10 +11,11 @@ group :test do
11
11
  gem "msgr"
12
12
  gem "rails", "~> 7.1.0"
13
13
  gem "redis"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq"
16
- gem "sqlite3", "~> 1.4"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 1.4"
18
19
  end
19
20
 
20
21
  group :development do
@@ -9,12 +9,13 @@ group :test do
9
9
  gem "timecop", "~> 0.9.1"
10
10
  gem "faraday"
11
11
  gem "msgr"
12
- gem "rails", "~> 5.2.0"
12
+ gem "rails", "~> 7.2.0"
13
13
  gem "redis"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq"
16
- gem "sqlite3", "~> 1.4"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 1.4"
18
19
  end
19
20
 
20
21
  group :development do
@@ -9,12 +9,13 @@ group :test do
9
9
  gem "timecop", "~> 0.9.1"
10
10
  gem "faraday"
11
11
  gem "msgr"
12
- gem "rails", "~> 6.0.0"
12
+ gem "rails", "~> 8.0.0"
13
13
  gem "redis"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq"
16
- gem "sqlite3", "~> 1.4"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 2.0"
18
19
  end
19
20
 
20
21
  group :development do
@@ -11,10 +11,11 @@ group :test do
11
11
  gem "msgr"
12
12
  gem "rails"
13
13
  gem "redis", "~> 4.0"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq"
16
- gem "sqlite3"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 2.0"
18
19
  end
19
20
 
20
21
  group :development do
@@ -11,10 +11,11 @@ group :test do
11
11
  gem "msgr"
12
12
  gem "rails"
13
13
  gem "redis", "~> 5.0"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq"
16
- gem "sqlite3"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 2.0"
18
19
  end
19
20
 
20
21
  group :development do
@@ -11,10 +11,11 @@ group :test do
11
11
  gem "msgr"
12
12
  gem "rails"
13
13
  gem "redis"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq", "~> 6.0"
16
- gem "sqlite3"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 2.0"
18
19
  end
19
20
 
20
21
  group :development do
@@ -11,10 +11,11 @@ group :test do
11
11
  gem "msgr"
12
12
  gem "rails"
13
13
  gem "redis"
14
+ gem "redis-client"
14
15
  gem "restify"
15
16
  gem "sidekiq", "~> 7.0"
16
- gem "sqlite3"
17
17
  gem "webmock"
18
+ gem "sqlite3", "~> 2.0"
18
19
  end
19
20
 
20
21
  group :development do
@@ -15,7 +15,7 @@ module Mnemosyne
15
15
  logger.info "[Mnemosyne] Connect to #{@config.server}..."
16
16
 
17
17
  connection = ::Bunny.new @config.amqp,
18
- logger: logger,
18
+ logger:,
19
19
  heartbeat: :server
20
20
 
21
21
  connection.start
@@ -3,8 +3,12 @@
3
3
  module Mnemosyne
4
4
  module Global
5
5
  def trace(name, meta: {}, &block)
6
- ::ActiveSupport::Notifications.instrument 'trace.mnemosyne',
7
- name: name, meta: meta, &block
6
+ ::ActiveSupport::Notifications.instrument(
7
+ 'trace.mnemosyne',
8
+ name:,
9
+ meta:,
10
+ &block
11
+ )
8
12
  end
9
13
 
10
14
  def attach_error(err)
@@ -66,7 +66,7 @@ module Mnemosyne
66
66
 
67
67
  client = Client.new(config)
68
68
 
69
- @instance = new(config: config, client: client)
69
+ @instance = new(config:, client:)
70
70
  end
71
71
  rescue StandardError => e
72
72
  ::Mnemosyne::Logging.logger.warn(Mnemosyne) do
@@ -16,9 +16,9 @@ module Mnemosyne
16
16
  @body.respond_to?(*args)
17
17
  end
18
18
 
19
- def method_missing(*args, &block)
19
+ def method_missing(*args, &)
20
20
  super if args.first && args.first.to_s == 'to_ary'
21
- @body.__send__(*args, &block)
21
+ @body.__send__(*args, &)
22
22
  end
23
23
 
24
24
  def close
@@ -64,9 +64,11 @@ module Mnemosyne
64
64
  ::SecureRandom.uuid
65
65
  end
66
66
 
67
- trace = ::Mnemosyne::Instrumenter.trace 'app.web.request.rack',
68
- transaction: transaction,
69
- origin: origin
67
+ trace = ::Mnemosyne::Instrumenter.trace(
68
+ 'app.web.request.rack',
69
+ transaction:,
70
+ origin:
71
+ )
70
72
 
71
73
  if trace
72
74
  trace.start!
@@ -9,15 +9,17 @@ module Mnemosyne
9
9
 
10
10
  meta = {
11
11
  raw: job,
12
- queue: queue,
12
+ queue:,
13
13
  worker: worker.class.name,
14
14
  arguments: job['args']
15
15
  }
16
16
 
17
- trace = ::Mnemosyne::Instrumenter.trace 'app.job.perform.sidekiq',
18
- transaction: transaction,
19
- origin: origin,
20
- meta: meta
17
+ trace = ::Mnemosyne::Instrumenter.trace(
18
+ 'app.job.perform.sidekiq',
19
+ transaction:,
20
+ origin:,
21
+ meta:
22
+ )
21
23
 
22
24
  trace&.start!
23
25
 
@@ -25,8 +25,12 @@ module Mnemosyne
25
25
  backtrace: callers[1..]
26
26
  }
27
27
 
28
- span = ::Mnemosyne::Span.new 'external.run.acfs',
29
- start: start, finish: finish, meta: meta
28
+ span = ::Mnemosyne::Span.new(
29
+ 'external.run.acfs',
30
+ start:,
31
+ finish:,
32
+ meta:
33
+ )
30
34
 
31
35
  trace << span
32
36
  end
@@ -17,8 +17,12 @@ module Mnemosyne
17
17
  format: payload[:format]
18
18
  }
19
19
 
20
- span = ::Mnemosyne::Span.new 'app.controller.request.rails',
21
- start: start, finish: finish, meta: meta
20
+ span = ::Mnemosyne::Span.new(
21
+ 'app.controller.request.rails',
22
+ start:,
23
+ finish:,
24
+ meta:
25
+ )
22
26
 
23
27
  trace << span
24
28
  end
@@ -17,15 +17,18 @@ module Mnemosyne
17
17
  start = ::Mnemosyne::Clock.to_tick(start)
18
18
  finish = ::Mnemosyne::Clock.to_tick(finish)
19
19
 
20
- span = ::Mnemosyne::Span.new 'app.controller.renderers.rails',
21
- start: start, finish: finish
20
+ span = ::Mnemosyne::Span.new(
21
+ 'app.controller.renderers.rails',
22
+ start:,
23
+ finish:
24
+ )
22
25
 
23
26
  trace << span
24
27
  end
25
28
  end
26
29
 
27
30
  module Instrumentation
28
- def render_to_body(*args, &block)
31
+ def render_to_body(*args, &)
29
32
  ::ActiveSupport::Notifications.instrument CATEGORY do
30
33
  super
31
34
  end
@@ -11,8 +11,12 @@ module Mnemosyne
11
11
  start = ::Mnemosyne::Clock.to_tick(start)
12
12
  finish = ::Mnemosyne::Clock.to_tick(finish)
13
13
 
14
- span = ::Mnemosyne::Span.new 'view.render.template.rails',
15
- start: start, finish: finish, meta: payload
14
+ span = ::Mnemosyne::Span.new(
15
+ 'view.render.template.rails',
16
+ start:,
17
+ finish:,
18
+ meta: payload
19
+ )
16
20
 
17
21
  trace << span
18
22
  end
@@ -11,8 +11,12 @@ module Mnemosyne
11
11
  start = ::Mnemosyne::Clock.to_tick(start)
12
12
  finish = ::Mnemosyne::Clock.to_tick(finish)
13
13
 
14
- span = ::Mnemosyne::Span.new 'view.render.template.rails',
15
- start: start, finish: finish, meta: payload
14
+ span = ::Mnemosyne::Span.new(
15
+ 'view.render.template.rails',
16
+ start:,
17
+ finish:,
18
+ meta: payload
19
+ )
16
20
 
17
21
  trace << span
18
22
  end
@@ -20,8 +20,12 @@ module Mnemosyne
20
20
  queue: job.queue_name
21
21
  }
22
22
 
23
- span = ::Mnemosyne::Span.new 'app.job.perform.active_job',
24
- start: start, finish: finish, meta: meta
23
+ span = ::Mnemosyne::Span.new(
24
+ 'app.job.perform.active_job',
25
+ start:,
26
+ finish:,
27
+ meta:
28
+ )
25
29
 
26
30
  trace << span
27
31
  end
@@ -16,8 +16,12 @@ module Mnemosyne
16
16
  class_name: payload[:class_name]
17
17
  }
18
18
 
19
- span = ::Mnemosyne::Span.new 'db.instantiation.active_record',
20
- start: start, finish: finish, meta: meta
19
+ span = ::Mnemosyne::Span.new(
20
+ 'db.instantiation.active_record',
21
+ start:,
22
+ finish:,
23
+ meta:
24
+ )
21
25
 
22
26
  trace << span
23
27
  end
@@ -18,8 +18,12 @@ module Mnemosyne
18
18
  binds: extract_bind_values(payload)
19
19
  }
20
20
 
21
- span = ::Mnemosyne::Span.new 'db.query.active_record',
22
- start: start, finish: finish, meta: meta
21
+ span = ::Mnemosyne::Span.new(
22
+ 'db.query.active_record',
23
+ start:,
24
+ finish:,
25
+ meta:
26
+ )
23
27
 
24
28
  trace << span
25
29
  end
@@ -17,16 +17,7 @@ module Mnemosyne
17
17
 
18
18
  module Extension
19
19
  def lock!
20
- unless @handlers.include?('Mnemosyne::Middleware::Faraday')
21
- if ::Faraday::VERSION < '1.0' &&
22
- respond_to?(:is_adapter?, true) &&
23
- (idx = @handlers.find_index {|m| is_adapter?(m) })
24
-
25
- insert(idx, ::Mnemosyne::Middleware::Faraday)
26
- else
27
- use(::Mnemosyne::Middleware::Faraday)
28
- end
29
- end
20
+ use(::Mnemosyne::Middleware::Faraday) unless @handlers.include?('Mnemosyne::Middleware::Faraday')
30
21
 
31
22
  super
32
23
  end
@@ -14,8 +14,11 @@ module Mnemosyne
14
14
  endpoint = payload[:endpoint]
15
15
  return unless endpoint
16
16
 
17
- span = ::Mnemosyne::Span.new 'view.render.grape',
18
- start: start, finish: finish
17
+ span = ::Mnemosyne::Span.new(
18
+ 'view.render.grape',
19
+ start:,
20
+ finish:
21
+ )
19
22
 
20
23
  trace << span
21
24
  end
@@ -19,8 +19,12 @@ module Mnemosyne
19
19
  format: extract_format(payload[:env])
20
20
  }
21
21
 
22
- span = ::Mnemosyne::Span.new 'app.controller.request.grape',
23
- start: start, finish: finish, meta: meta
22
+ span = ::Mnemosyne::Span.new(
23
+ 'app.controller.request.grape',
24
+ start:,
25
+ finish:,
26
+ meta:
27
+ )
24
28
 
25
29
  trace << span
26
30
  end
@@ -14,8 +14,11 @@ module Mnemosyne
14
14
  endpoint = payload[:endpoint]
15
15
  return unless endpoint
16
16
 
17
- span = ::Mnemosyne::Span.new 'app.controller.filter.grape',
18
- start: start, finish: finish
17
+ span = ::Mnemosyne::Span.new(
18
+ 'app.controller.filter.grape',
19
+ start:,
20
+ finish:
21
+ )
19
22
 
20
23
  trace << span
21
24
  end
@@ -11,8 +11,12 @@ module Mnemosyne
11
11
  start = ::Mnemosyne::Clock.to_tick(start)
12
12
  finish = ::Mnemosyne::Clock.to_tick(finish)
13
13
 
14
- span = ::Mnemosyne::Span.new 'custom.trace',
15
- start: start, finish: finish, meta: payload
14
+ span = ::Mnemosyne::Span.new(
15
+ 'custom.trace',
16
+ start:,
17
+ finish:,
18
+ meta: payload
19
+ )
16
20
 
17
21
  trace << span
18
22
  end
@@ -16,7 +16,7 @@ module Mnemosyne
16
16
  def publish(payload, options = {})
17
17
  if (trace = ::Mnemosyne::Instrumenter.current_trace)
18
18
  meta = {}
19
- span = ::Mnemosyne::Span.new(NAME, meta: meta)
19
+ span = ::Mnemosyne::Span.new(NAME, meta:)
20
20
  span.start!
21
21
 
22
22
  options[:headers] ||= {}
@@ -24,9 +24,11 @@ module Mnemosyne
24
24
  ::SecureRandom.uuid
25
25
  end
26
26
 
27
- trace = ::Mnemosyne::Instrumenter.trace NAME,
28
- transaction: transaction,
29
- origin: origin
27
+ trace = ::Mnemosyne::Instrumenter.trace(
28
+ NAME,
29
+ transaction:,
30
+ origin:
31
+ )
30
32
 
31
33
  if trace
32
34
  trace.meta[:properties] = {
@@ -16,8 +16,11 @@ module Mnemosyne
16
16
  start = ::Mnemosyne::Clock.to_tick(start)
17
17
  finish = ::Mnemosyne::Clock.to_tick(finish)
18
18
 
19
- span = ::Mnemosyne::Span.new 'app.responder.respond',
20
- start: start, finish: finish
19
+ span = ::Mnemosyne::Span.new(
20
+ 'app.responder.respond',
21
+ start:,
22
+ finish:
23
+ )
21
24
 
22
25
  trace << span
23
26
  end
@@ -13,7 +13,7 @@ module Mnemosyne
13
13
  def call(request)
14
14
  if (trace = ::Mnemosyne::Instrumenter.current_trace)
15
15
  meta = {url: request.uri.to_s, method: request.method}
16
- span = ::Mnemosyne::Span.new 'external.http.restify', meta: meta
16
+ span = ::Mnemosyne::Span.new('external.http.restify', meta:)
17
17
 
18
18
  span.start!
19
19
 
@@ -24,7 +24,7 @@ module Mnemosyne
24
24
  raw: job.clone
25
25
  }
26
26
 
27
- span = ::Mnemosyne::Span.new('external.job.sidekiq', meta: meta)
27
+ span = ::Mnemosyne::Span.new('external.job.sidekiq', meta:)
28
28
  span.finish! oneshot: true
29
29
 
30
30
  job['mnemosyne.transaction'] = trace.transaction
@@ -11,8 +11,12 @@ module Mnemosyne
11
11
  start = ::Mnemosyne::Clock.to_tick(start)
12
12
  finish = ::Mnemosyne::Clock.to_tick(finish)
13
13
 
14
- span = ::Mnemosyne::Span.new 'view.render.component.view_component',
15
- start: start, finish: finish, meta: payload
14
+ span = ::Mnemosyne::Span.new(
15
+ 'view.render.component.view_component',
16
+ start:,
17
+ finish:,
18
+ meta: payload
19
+ )
16
20
 
17
21
  trace << span
18
22
  end
@@ -21,20 +21,18 @@ module Mnemosyne
21
21
  @registry ||= ::Mnemosyne::Registry.new
22
22
  end
23
23
  end
24
- end
25
- end
26
24
 
27
- module Kernel
28
- alias require_without_mn require
25
+ module Loader
26
+ module_function
29
27
 
30
- def require(name)
31
- ret = require_without_mn(name)
32
-
33
- begin
34
- ::Mnemosyne::Probes.required(name)
35
- rescue Exception # rubocop:disable Lint/RescueException,Lint/SuppressedException
28
+ def require(name)
29
+ super(name).tap do
30
+ ::Mnemosyne::Probes.required(name)
31
+ rescue Exception # rubocop:disable Lint/RescueException,Lint/SuppressedException
32
+ end
33
+ end
36
34
  end
37
35
 
38
- ret
36
+ ::Kernel.prepend(Loader)
39
37
  end
40
38
  end
@@ -37,12 +37,12 @@ module Mnemosyne
37
37
 
38
38
  def serialize
39
39
  {
40
- uuid: uuid,
41
- name: name,
42
- type: type,
43
- start: start,
40
+ uuid:,
41
+ name:,
42
+ type:,
43
+ start:,
44
44
  stop: finish,
45
- meta: meta
45
+ meta:
46
46
  }
47
47
  end
48
48
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Mnemosyne
4
4
  class Trace < Span
5
- BT_REGEXP = /^((?:[a-zA-Z]:)?[^:]+):(\d+)(?::in `([^']+)')?$/.freeze
5
+ BT_REGEXP = /^((?:[a-zA-Z]:)?[^:]+):(\d+)(?::in `([^']+)')?$/
6
6
 
7
7
  attr_reader :uuid, :transaction, :origin, :span, :errors
8
8
 
@@ -46,13 +46,13 @@ module Mnemosyne
46
46
 
47
47
  def serialize
48
48
  {
49
- uuid: uuid,
50
- origin: origin,
51
- transaction: transaction,
52
- name: name,
53
- start: start,
49
+ uuid:,
50
+ origin:,
51
+ transaction:,
52
+ name:,
53
+ start:,
54
54
  stop: finish,
55
- meta: meta,
55
+ meta:,
56
56
  span: @span.map(&:serialize),
57
57
  errors: @errors.map(&:serialize)
58
58
  }
@@ -2,9 +2,9 @@
2
2
 
3
3
  module Mnemosyne
4
4
  module VERSION
5
- MAJOR = 1
6
- MINOR = 17
7
- PATCH = 0
5
+ MAJOR = 2
6
+ MINOR = 1
7
+ PATCH = 1
8
8
  STAGE = nil
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH, STAGE].compact.join('.')
@@ -26,7 +26,8 @@ Gem::Specification.new do |spec|
26
26
  spec.executables = spec.files.grep(%r{^bin/}) {|f| File.basename(f) }
27
27
  spec.require_paths = %w[lib]
28
28
 
29
- spec.required_ruby_version = '>= 2.7'
30
- spec.add_runtime_dependency 'activesupport', '>= 4'
31
- spec.add_runtime_dependency 'bunny'
29
+ spec.required_ruby_version = '>= 3.1'
30
+
31
+ spec.add_dependency 'activesupport', '>= 6.1'
32
+ spec.add_dependency 'bunny'
32
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mnemosyne-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.17.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Graichen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-28 00:00:00.000000000 Z
11
+ date: 2024-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4'
19
+ version: '6.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '4'
26
+ version: '6.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bunny
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,7 +38,7 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description:
41
+ description:
42
42
  email:
43
43
  - jgraichen@altimos.de
44
44
  executables: []
@@ -46,6 +46,7 @@ extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
48
  - ".editorconfig"
49
+ - ".github/workflows/release.yml"
49
50
  - ".github/workflows/test.yml"
50
51
  - ".gitignore"
51
52
  - ".markdownlint.yml"
@@ -59,16 +60,15 @@ files:
59
60
  - README.md
60
61
  - Rakefile
61
62
  - gemfiles/core.gemfile
62
- - gemfiles/faraday_09.gemfile
63
63
  - gemfiles/faraday_10.gemfile
64
- - gemfiles/rails_52.gemfile
65
- - gemfiles/rails_60.gemfile
64
+ - gemfiles/faraday_20.gemfile
66
65
  - gemfiles/rails_61.gemfile
67
66
  - gemfiles/rails_70.gemfile
68
67
  - gemfiles/rails_71.gemfile
68
+ - gemfiles/rails_72.gemfile
69
+ - gemfiles/rails_80.gemfile
69
70
  - gemfiles/redis_40.gemfile
70
71
  - gemfiles/redis_50.gemfile
71
- - gemfiles/sidekiq_50.gemfile
72
72
  - gemfiles/sidekiq_60.gemfile
73
73
  - gemfiles/sidekiq_70.gemfile
74
74
  - lib/mnemosyne-ruby.rb
@@ -123,7 +123,7 @@ licenses:
123
123
  - MIT
124
124
  metadata:
125
125
  rubygems_mfa_required: 'true'
126
- post_install_message:
126
+ post_install_message:
127
127
  rdoc_options: []
128
128
  require_paths:
129
129
  - lib
@@ -131,15 +131,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
131
  requirements:
132
132
  - - ">="
133
133
  - !ruby/object:Gem::Version
134
- version: '2.7'
134
+ version: '3.1'
135
135
  required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - ">="
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  requirements: []
141
- rubygems_version: 3.4.22
142
- signing_key:
141
+ rubygems_version: 3.5.22
142
+ signing_key:
143
143
  specification_version: 4
144
144
  summary: Ruby/Rails client for Mnemosyne APM
145
145
  test_files: []
@@ -1,27 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rake", "~> 13.0"
6
-
7
- group :test do
8
- gem "rspec", "~> 3.6"
9
- gem "timecop", "~> 0.9.1"
10
- gem "faraday"
11
- gem "msgr"
12
- gem "rails"
13
- gem "redis"
14
- gem "restify"
15
- gem "sidekiq", "~> 5.0"
16
- gem "sqlite3"
17
- gem "webmock"
18
- end
19
-
20
- group :development do
21
- gem "appraisal"
22
- gem "rake-release", "~> 1.3.0"
23
- gem "pry", require: false
24
- gem "pry-byebug", require: false
25
- end
26
-
27
- gemspec path: "../"