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.
- checksums.yaml +4 -4
- data/.github/workflows/release.yml +36 -0
- data/.github/workflows/test.yml +21 -30
- data/.rubocop.yml +1 -1
- data/Appraisals +15 -23
- data/CHANGELOG.md +31 -1
- data/Gemfile +5 -4
- data/README.md +8 -7
- data/gemfiles/core.gemfile +2 -1
- data/gemfiles/faraday_10.gemfile +2 -1
- data/gemfiles/{faraday_09.gemfile → faraday_20.gemfile} +3 -2
- data/gemfiles/rails_61.gemfile +2 -1
- data/gemfiles/rails_70.gemfile +2 -1
- data/gemfiles/rails_71.gemfile +2 -1
- data/gemfiles/{rails_52.gemfile → rails_72.gemfile} +3 -2
- data/gemfiles/{rails_60.gemfile → rails_80.gemfile} +3 -2
- data/gemfiles/redis_40.gemfile +2 -1
- data/gemfiles/redis_50.gemfile +2 -1
- data/gemfiles/sidekiq_60.gemfile +2 -1
- data/gemfiles/sidekiq_70.gemfile +2 -1
- data/lib/mnemosyne/client.rb +1 -1
- data/lib/mnemosyne/global.rb +6 -2
- data/lib/mnemosyne/instrumenter.rb +1 -1
- data/lib/mnemosyne/middleware/rack.rb +7 -5
- data/lib/mnemosyne/middleware/sidekiq.rb +7 -5
- data/lib/mnemosyne/probes/acfs/request.rb +6 -2
- data/lib/mnemosyne/probes/action_controller/process_action.rb +6 -2
- data/lib/mnemosyne/probes/action_controller/renderers.rb +6 -3
- data/lib/mnemosyne/probes/action_view/render_partial.rb +6 -2
- data/lib/mnemosyne/probes/action_view/render_template.rb +6 -2
- data/lib/mnemosyne/probes/active_job/perform.rb +6 -2
- data/lib/mnemosyne/probes/active_record/instantiation.rb +6 -2
- data/lib/mnemosyne/probes/active_record/query.rb +6 -2
- data/lib/mnemosyne/probes/faraday/base.rb +1 -10
- data/lib/mnemosyne/probes/grape/endpoint_render.rb +5 -2
- data/lib/mnemosyne/probes/grape/endpoint_run.rb +6 -2
- data/lib/mnemosyne/probes/grape/endpoint_run_filters.rb +5 -2
- data/lib/mnemosyne/probes/mnemosyne/tracer.rb +6 -2
- data/lib/mnemosyne/probes/msgr/client.rb +1 -1
- data/lib/mnemosyne/probes/msgr/consumer.rb +5 -3
- data/lib/mnemosyne/probes/responder/respond.rb +5 -2
- data/lib/mnemosyne/probes/restify/base.rb +1 -1
- data/lib/mnemosyne/probes/sidekiq/client.rb +1 -1
- data/lib/mnemosyne/probes/view_component/render_component.rb +6 -2
- data/lib/mnemosyne/probes.rb +9 -11
- data/lib/mnemosyne/span.rb +5 -5
- data/lib/mnemosyne/trace.rb +7 -7
- data/lib/mnemosyne/version.rb +3 -3
- data/mnemosyne-ruby.gemspec +4 -3
- metadata +14 -14
- data/gemfiles/sidekiq_50.gemfile +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e43cd3357ec07ccf972193e5985f115f841d62e02c9bcfd3af9e671886a141f
|
4
|
+
data.tar.gz: 14edb9c60d6a62d223d920f2e7e066c33adcf7d9e8ceeee1ca4b6796950a1a03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 }}
|
data/.github/workflows/test.yml
CHANGED
@@ -6,65 +6,63 @@ on:
|
|
6
6
|
jobs:
|
7
7
|
test:
|
8
8
|
name: Ruby ${{ matrix.ruby }} / ${{ matrix.suite }}
|
9
|
-
runs-on: ubuntu-
|
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-
|
26
|
-
- rails-
|
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-
|
51
|
+
- suite: rails-8.0
|
54
52
|
spec: --tag probe:rails --tag ~probe
|
55
|
-
gemfile: gemfiles/
|
56
|
-
- suite: rails-
|
53
|
+
gemfile: gemfiles/rails_80.gemfile
|
54
|
+
- suite: rails-7.2
|
57
55
|
spec: --tag probe:rails --tag ~probe
|
58
|
-
gemfile: gemfiles/
|
59
|
-
- suite: rails-
|
56
|
+
gemfile: gemfiles/rails_72.gemfile
|
57
|
+
- suite: rails-7.1
|
60
58
|
spec: --tag probe:rails --tag ~probe
|
61
|
-
gemfile: gemfiles/
|
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-
|
63
|
+
- suite: rails-6.1
|
66
64
|
spec: --tag probe:rails --tag ~probe
|
67
|
-
gemfile: gemfiles/
|
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
|
-
-
|
91
|
-
|
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-
|
119
|
+
runs-on: ubuntu-24.04
|
129
120
|
|
130
121
|
env:
|
131
122
|
BUNDLE_WITHOUT: development test
|
data/.rubocop.yml
CHANGED
data/Appraisals
CHANGED
@@ -4,63 +4,63 @@ appraise 'core' do
|
|
4
4
|
remove_gem 'rubocop'
|
5
5
|
end
|
6
6
|
|
7
|
-
appraise 'faraday-
|
7
|
+
appraise 'faraday-10' do
|
8
8
|
remove_gem 'rubocop'
|
9
9
|
|
10
10
|
group :test do
|
11
|
-
gem 'faraday', '~> 0
|
11
|
+
gem 'faraday', '~> 1.0'
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
appraise 'faraday-
|
15
|
+
appraise 'faraday-20' do
|
16
16
|
remove_gem 'rubocop'
|
17
17
|
|
18
18
|
group :test do
|
19
|
-
gem 'faraday', '~>
|
19
|
+
gem 'faraday', '~> 2.0'
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
appraise 'rails-
|
23
|
+
appraise 'rails-80' do
|
24
24
|
remove_gem 'rubocop'
|
25
25
|
|
26
26
|
group :test do
|
27
|
-
gem 'rails', '~>
|
28
|
-
gem 'sqlite3', '~>
|
27
|
+
gem 'rails', '~> 8.0.0'
|
28
|
+
gem 'sqlite3', '~> 2.0'
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
appraise 'rails-
|
32
|
+
appraise 'rails-72' do
|
33
33
|
remove_gem 'rubocop'
|
34
34
|
|
35
35
|
group :test do
|
36
|
-
gem 'rails', '~> 7.
|
36
|
+
gem 'rails', '~> 7.2.0'
|
37
37
|
gem 'sqlite3', '~> 1.4'
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
appraise 'rails-
|
41
|
+
appraise 'rails-71' do
|
42
42
|
remove_gem 'rubocop'
|
43
43
|
|
44
44
|
group :test do
|
45
|
-
gem 'rails', '~>
|
45
|
+
gem 'rails', '~> 7.1.0'
|
46
46
|
gem 'sqlite3', '~> 1.4'
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
appraise 'rails-
|
50
|
+
appraise 'rails-70' do
|
51
51
|
remove_gem 'rubocop'
|
52
52
|
|
53
53
|
group :test do
|
54
|
-
gem 'rails', '~>
|
54
|
+
gem 'rails', '~> 7.0.0'
|
55
55
|
gem 'sqlite3', '~> 1.4'
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
appraise 'rails-
|
59
|
+
appraise 'rails-61' do
|
60
60
|
remove_gem 'rubocop'
|
61
61
|
|
62
62
|
group :test do
|
63
|
-
gem 'rails', '~>
|
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/
|
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 '
|
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
|
-
*
|
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', '~>
|
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).
|
data/gemfiles/core.gemfile
CHANGED
data/gemfiles/faraday_10.gemfile
CHANGED
@@ -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
|
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
|
data/gemfiles/rails_61.gemfile
CHANGED
data/gemfiles/rails_70.gemfile
CHANGED
data/gemfiles/rails_71.gemfile
CHANGED
@@ -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", "~>
|
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", "~>
|
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
|
data/gemfiles/redis_40.gemfile
CHANGED
data/gemfiles/redis_50.gemfile
CHANGED
data/gemfiles/sidekiq_60.gemfile
CHANGED
data/gemfiles/sidekiq_70.gemfile
CHANGED
data/lib/mnemosyne/client.rb
CHANGED
data/lib/mnemosyne/global.rb
CHANGED
@@ -3,8 +3,12 @@
|
|
3
3
|
module Mnemosyne
|
4
4
|
module Global
|
5
5
|
def trace(name, meta: {}, &block)
|
6
|
-
::ActiveSupport::Notifications.instrument
|
7
|
-
|
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)
|
@@ -16,9 +16,9 @@ module Mnemosyne
|
|
16
16
|
@body.respond_to?(*args)
|
17
17
|
end
|
18
18
|
|
19
|
-
def method_missing(*args, &
|
19
|
+
def method_missing(*args, &)
|
20
20
|
super if args.first && args.first.to_s == 'to_ary'
|
21
|
-
@body.__send__(*args, &
|
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
|
68
|
-
|
69
|
-
|
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
|
12
|
+
queue:,
|
13
13
|
worker: worker.class.name,
|
14
14
|
arguments: job['args']
|
15
15
|
}
|
16
16
|
|
17
|
-
trace = ::Mnemosyne::Instrumenter.trace
|
18
|
-
|
19
|
-
|
20
|
-
|
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
|
29
|
-
|
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
|
21
|
-
|
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
|
21
|
-
|
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, &
|
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
|
15
|
-
|
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
|
15
|
-
|
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
|
24
|
-
|
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
|
20
|
-
|
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
|
22
|
-
|
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
|
18
|
-
|
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
|
23
|
-
|
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
|
18
|
-
|
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
|
15
|
-
|
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:
|
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
|
28
|
-
|
29
|
-
|
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
|
20
|
-
|
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
|
16
|
+
span = ::Mnemosyne::Span.new('external.http.restify', meta:)
|
17
17
|
|
18
18
|
span.start!
|
19
19
|
|
@@ -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
|
15
|
-
|
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
|
data/lib/mnemosyne/probes.rb
CHANGED
@@ -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
|
28
|
-
|
25
|
+
module Loader
|
26
|
+
module_function
|
29
27
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
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
|
-
|
36
|
+
::Kernel.prepend(Loader)
|
39
37
|
end
|
40
38
|
end
|
data/lib/mnemosyne/span.rb
CHANGED
data/lib/mnemosyne/trace.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Mnemosyne
|
4
4
|
class Trace < Span
|
5
|
-
BT_REGEXP = /^((?:[a-zA-Z]:)?[^:]+):(\d+)(?::in `([^']+)')
|
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
|
50
|
-
origin
|
51
|
-
transaction
|
52
|
-
name
|
53
|
-
start
|
49
|
+
uuid:,
|
50
|
+
origin:,
|
51
|
+
transaction:,
|
52
|
+
name:,
|
53
|
+
start:,
|
54
54
|
stop: finish,
|
55
|
-
meta
|
55
|
+
meta:,
|
56
56
|
span: @span.map(&:serialize),
|
57
57
|
errors: @errors.map(&:serialize)
|
58
58
|
}
|
data/lib/mnemosyne/version.rb
CHANGED
data/mnemosyne-ruby.gemspec
CHANGED
@@ -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 = '>=
|
30
|
-
|
31
|
-
spec.
|
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.
|
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:
|
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: '
|
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: '
|
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/
|
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: '
|
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.
|
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: []
|
data/gemfiles/sidekiq_50.gemfile
DELETED
@@ -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: "../"
|