mnemosyne-ruby 1.7.1 → 1.11.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 +4 -4
- data/.editorconfig +8 -0
- data/.github/workflows/build.yml +93 -0
- data/.github/workflows/lint.yml +25 -0
- data/.rubocop.yml +37 -26
- data/.travis.yml +28 -26
- data/Appraisals +20 -11
- data/CHANGELOG.md +24 -1
- data/Gemfile +18 -11
- data/README.md +2 -0
- data/Rakefile +7 -3
- data/gemfiles/rails_50.gemfile +19 -12
- data/gemfiles/rails_51.gemfile +19 -12
- data/gemfiles/rails_52.gemfile +19 -12
- data/gemfiles/rails_60.gemfile +27 -0
- data/lib/mnemosyne/configuration.rb +2 -2
- data/lib/mnemosyne/global.rb +1 -1
- data/lib/mnemosyne/instrumenter.rb +8 -5
- data/lib/mnemosyne/middleware/faraday.rb +2 -2
- data/lib/mnemosyne/middleware/rack.rb +21 -13
- data/lib/mnemosyne/middleware/sidekiq.rb +3 -3
- data/lib/mnemosyne/probes.rb +1 -1
- data/lib/mnemosyne/probes/action_controller/renderers.rb +1 -1
- data/lib/mnemosyne/probes/action_dispatch/show_exceptions.rb +1 -1
- data/lib/mnemosyne/probes/faraday/base.rb +5 -3
- data/lib/mnemosyne/probes/grape/endpoint_run.rb +1 -1
- data/lib/mnemosyne/probes/msgr/client.rb +2 -2
- data/lib/mnemosyne/probes/msgr/consumer.rb +4 -4
- data/lib/mnemosyne/probes/responder/respond.rb +0 -1
- data/lib/mnemosyne/railtie.rb +1 -1
- data/lib/mnemosyne/registry.rb +1 -0
- data/lib/mnemosyne/trace.rb +6 -1
- data/lib/mnemosyne/version.rb +2 -2
- metadata +7 -4
- data/gemfiles/rails_42.gemfile +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d21523f741fef0a9443c7c93e81f220183ffd1cf19f7cdd985d69c76dee0ec51
|
4
|
+
data.tar.gz: ab0c1a21e65bf42ad5bb9eb92539421246643ec195257ca95a5024aa6217589b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af9d3e285a017330119b9ced137fb3cf4c0059789359620170df6e4a26897036dda5ff787ee5d77d6e6960a77fc6b86443215d46f14def921ba7cbd737edc410
|
7
|
+
data.tar.gz: 9a36770c25abbdeb8c3ddb38a0fb4424228065fd3c58c364aa52538d0ddf5ca5ead683da36a18604ee71ff08880a9a65c461b536cddeb914d370c03655a34b73
|
data/.editorconfig
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
name: Build
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
branches-ignore: [debian]
|
5
|
+
|
6
|
+
jobs:
|
7
|
+
test:
|
8
|
+
name: Ruby ${{ matrix.ruby }} / ${{ matrix.suite }}
|
9
|
+
runs-on: ubuntu-18.04
|
10
|
+
|
11
|
+
strategy:
|
12
|
+
fail-fast: false
|
13
|
+
matrix:
|
14
|
+
ruby: ['2.7', '2.6', '2.5']
|
15
|
+
suite:
|
16
|
+
- core
|
17
|
+
- faraday-0.9
|
18
|
+
- faraday-1.0
|
19
|
+
- msgr
|
20
|
+
- rack
|
21
|
+
- rails-5.0
|
22
|
+
- rails-5.1
|
23
|
+
- rails-5.2
|
24
|
+
- rails-6.0
|
25
|
+
- restify
|
26
|
+
- sidekiq-5
|
27
|
+
- sidekiq-6
|
28
|
+
include:
|
29
|
+
- suite: core
|
30
|
+
spec: --tag ~probe
|
31
|
+
- suite: faraday-0.9
|
32
|
+
spec: --tag probe:faraday
|
33
|
+
env: FARADAY_VERSION='~> 0.9'
|
34
|
+
- suite: faraday-1.0
|
35
|
+
spec: --tag probe:faraday
|
36
|
+
env: FARADAY_VERSION='~> 1.0'
|
37
|
+
- suite: msgr
|
38
|
+
spec: --tag probe:msgr
|
39
|
+
- suite: rack
|
40
|
+
spec: --tag probe:rack
|
41
|
+
- suite: rails-5.0
|
42
|
+
spec: --tag probe:rails --tag ~probe
|
43
|
+
env: BUNDLE_GEMFILE=gemfiles/rails_50.gemfile
|
44
|
+
- suite: rails-5.1
|
45
|
+
spec: --tag probe:rails --tag ~probe
|
46
|
+
env: BUNDLE_GEMFILE=gemfiles/rails_51.gemfile
|
47
|
+
- suite: rails-5.2
|
48
|
+
spec: --tag probe:rails --tag ~probe
|
49
|
+
env: BUNDLE_GEMFILE=gemfiles/rails_52.gemfile
|
50
|
+
- suite: rails-6.0
|
51
|
+
spec: --tag probe:rails --tag ~probe
|
52
|
+
env: BUNDLE_GEMFILE=gemfiles/rails_60.gemfile
|
53
|
+
- suite: restify
|
54
|
+
spec: --tag probe:restify
|
55
|
+
- suite: sidekiq-5
|
56
|
+
spec: --tag probe:sidekiq
|
57
|
+
env: SIDEKIQ_VERSION='~> 5.0'
|
58
|
+
- suite: sidekiq-6
|
59
|
+
spec: --tag probe:sidekiq
|
60
|
+
env: SIDEKIQ_VERSION='~> 6.0'
|
61
|
+
|
62
|
+
|
63
|
+
services:
|
64
|
+
rabbitmq:
|
65
|
+
image: rabbitmq:latest
|
66
|
+
ports: [5672/tcp]
|
67
|
+
options: --health-cmd "rabbitmqctl node_health_check" --health-interval 10s --health-timeout 5s --health-retries 5
|
68
|
+
|
69
|
+
steps:
|
70
|
+
- uses: actions/checkout@master
|
71
|
+
|
72
|
+
- uses: actions/setup-ruby@v1
|
73
|
+
with:
|
74
|
+
ruby-version: ${{ matrix.ruby }}
|
75
|
+
|
76
|
+
- uses: actions/cache@v1
|
77
|
+
with:
|
78
|
+
path: vendor
|
79
|
+
key: v1-ruby-${{ matrix.ruby }}-suite-${{ matrix.suite }}
|
80
|
+
|
81
|
+
- name: Install Ruby dependencies
|
82
|
+
run: |
|
83
|
+
set -x
|
84
|
+
gem install bundler --version '1.17.3'
|
85
|
+
bundle config path "$(pwd)/vendor/bundle"
|
86
|
+
bundle config without development
|
87
|
+
${{ matrix.env }} bundle update --jobs=$(nproc) --retry=3
|
88
|
+
|
89
|
+
- name: Run rspec
|
90
|
+
env:
|
91
|
+
AMQP_SERVER: amqp://localhost:${{ job.services.rabbitmq.ports[5672] }}
|
92
|
+
run: |
|
93
|
+
${{ matrix.env }} bundle exec rspec --color ${{ matrix.spec }}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
name: Lint
|
2
|
+
on: [push]
|
3
|
+
jobs:
|
4
|
+
rubocop:
|
5
|
+
name: rubocop
|
6
|
+
runs-on: ubuntu-18.04
|
7
|
+
|
8
|
+
steps:
|
9
|
+
- uses: actions/checkout@master
|
10
|
+
- uses: actions/setup-ruby@v1
|
11
|
+
with:
|
12
|
+
ruby-version: 2.6
|
13
|
+
- uses: actions/cache@v1
|
14
|
+
with:
|
15
|
+
path: vendor
|
16
|
+
key: v1-ruby-2.6
|
17
|
+
|
18
|
+
- name: Run bundle install
|
19
|
+
run: |
|
20
|
+
bundle config path "$(pwd)/vendor/bundle"
|
21
|
+
bundle config without development,test
|
22
|
+
bundle install --jobs=4 --retry=3
|
23
|
+
|
24
|
+
- name: Run rubocop
|
25
|
+
run: bundle exec rubocop --parallel --color
|
data/.rubocop.yml
CHANGED
@@ -1,14 +1,11 @@
|
|
1
1
|
AllCops:
|
2
|
-
TargetRubyVersion: 2.
|
2
|
+
TargetRubyVersion: 2.5
|
3
3
|
Exclude:
|
4
4
|
- 'vendor/**/*'
|
5
5
|
- 'gemfiles/**/*'
|
6
6
|
|
7
|
-
Rails:
|
8
|
-
Enabled: false
|
9
|
-
|
10
7
|
|
11
|
-
Layout/
|
8
|
+
Layout/ArgumentAlignment:
|
12
9
|
EnforcedStyle: with_fixed_indentation
|
13
10
|
|
14
11
|
Layout/CaseIndentation:
|
@@ -18,6 +15,11 @@ Layout/CaseIndentation:
|
|
18
15
|
- end
|
19
16
|
IndentOneStep: true
|
20
17
|
|
18
|
+
Layout/LineLength:
|
19
|
+
Exclude:
|
20
|
+
- '*.gemspec'
|
21
|
+
- 'spec/**/*'
|
22
|
+
|
21
23
|
Layout/MultilineMethodCallIndentation:
|
22
24
|
EnforcedStyle: indented
|
23
25
|
|
@@ -30,8 +32,36 @@ Layout/SpaceInsideHashLiteralBraces:
|
|
30
32
|
EnforcedStyle: no_space
|
31
33
|
|
32
34
|
|
33
|
-
|
34
|
-
|
35
|
+
Metrics/AbcSize:
|
36
|
+
Enabled: false
|
37
|
+
|
38
|
+
Metrics/BlockLength:
|
39
|
+
Exclude:
|
40
|
+
- 'spec/**/*'
|
41
|
+
|
42
|
+
Metrics/ParameterLists:
|
43
|
+
Enabled: false
|
44
|
+
|
45
|
+
Metrics/MethodLength:
|
46
|
+
Enabled: false
|
47
|
+
|
48
|
+
|
49
|
+
Naming/FileName:
|
50
|
+
Exclude:
|
51
|
+
- lib/mnemosyne-ruby.rb
|
52
|
+
|
53
|
+
|
54
|
+
Style/Documentation:
|
55
|
+
Enabled: false
|
56
|
+
|
57
|
+
Style/HashEachMethods:
|
58
|
+
Enabled: false
|
59
|
+
|
60
|
+
Style/HashTransformKeys:
|
61
|
+
Enabled: false
|
62
|
+
|
63
|
+
Style/HashTransformValues:
|
64
|
+
Enabled: false
|
35
65
|
|
36
66
|
Style/RaiseArgs:
|
37
67
|
EnforcedStyle: compact
|
@@ -46,22 +76,3 @@ Style/Semicolon:
|
|
46
76
|
Style/RescueModifier:
|
47
77
|
Exclude:
|
48
78
|
- '**/*_spec.rb'
|
49
|
-
|
50
|
-
|
51
|
-
Metrics/LineLength:
|
52
|
-
Exclude:
|
53
|
-
- '*.gemspec'
|
54
|
-
- 'spec/**/*'
|
55
|
-
|
56
|
-
Metrics/BlockLength:
|
57
|
-
Exclude:
|
58
|
-
- 'spec/**/*'
|
59
|
-
|
60
|
-
Metrics/ParameterLists:
|
61
|
-
Enabled: false
|
62
|
-
|
63
|
-
Metrics/MethodLength:
|
64
|
-
Enabled: false
|
65
|
-
|
66
|
-
Style/Documentation:
|
67
|
-
Enabled: false
|
data/.travis.yml
CHANGED
@@ -8,32 +8,34 @@ addons:
|
|
8
8
|
packages:
|
9
9
|
- rabbitmq-server
|
10
10
|
rvm:
|
11
|
-
- 2.
|
12
|
-
- 2.
|
13
|
-
- 2.
|
14
|
-
- 2.
|
15
|
-
|
16
|
-
-
|
17
|
-
-
|
18
|
-
-
|
19
|
-
-
|
11
|
+
- 2.7.0
|
12
|
+
- 2.6.5
|
13
|
+
- 2.5.7
|
14
|
+
- 2.4.9
|
15
|
+
env:
|
16
|
+
- SPEC='--tag ~probe'
|
17
|
+
- SPEC='--tag probe:faraday' FARADAY_VERSION='~> 0.9'
|
18
|
+
- SPEC='--tag probe:faraday' FARADAY_VERSION='~> 1.0'
|
19
|
+
- SPEC='--tag probe:msgr'
|
20
|
+
- SPEC='--tag probe:rack'
|
21
|
+
- SPEC='--tag probe:rails --tag ~probe' BUNDLE_GEMFILE=gemfiles/rails_42.gemfile
|
22
|
+
- SPEC='--tag probe:rails --tag ~probe' BUNDLE_GEMFILE=gemfiles/rails_50.gemfile
|
23
|
+
- SPEC='--tag probe:rails --tag ~probe' BUNDLE_GEMFILE=gemfiles/rails_51.gemfile
|
24
|
+
- SPEC='--tag probe:rails --tag ~probe' BUNDLE_GEMFILE=gemfiles/rails_52.gemfile
|
25
|
+
- SPEC='--tag probe:rails --tag ~probe' BUNDLE_GEMFILE=gemfiles/rails_60.gemfile
|
26
|
+
- SPEC='--tag probe:restify'
|
27
|
+
- SPEC='--tag probe:sidekiq' SIDEKIQ_VERSION='~> 5.0'
|
28
|
+
- SPEC='--tag probe:sidekiq' SIDEKIQ_VERSION='~> 6.0'
|
29
|
+
|
20
30
|
before_install:
|
21
31
|
- echo yes | rvm gemset delete global
|
22
|
-
- gem install bundler
|
32
|
+
- gem install bundler --version '~> 1.0'
|
23
33
|
script:
|
24
|
-
- bundle exec
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
deploy:
|
33
|
-
provider: rubygems
|
34
|
-
api_key:
|
35
|
-
secure: s7hUPxL4RULQ398GXk6Ko/y3QtUy7bZMTzcC4sL9Opsw76IRhOY0n+c6r+S8wHH3n+cRxiLpUyXRAsLMhjd67Rn+qaBoVbEfyzZKt1EAYyskFdPf40Jlq3FjOjRjAJW+hLDYloLXqqgLIrx/ybOv0YOfKyGKmk6eBNCx9S5GPJzt15WAM4Lz+TxNuR82YhsDybcGtTtLJ1WCF5FeQ297l2OESgvikRoADhIIM3HVk6Msyqw7RwFlpoIFGPRhXZD7UmML981rxK4Gxkh5xKGJiInjzL8lYOgT3KIfSLwtp9JoDbtpKbzdIQfA8Z35aRzpLjofPFxxYsKjwmCfdKxvJf5E5hTlenrILqSIovuknHb9oNOp0aCdp52N4+B8BZl7n1muQzr1AKy/ogtkTAgmlPs5tW+qx2h6E5MU0wfy6sS0AqKtVcGaZ1u85llifY2TvYriHReBIf8vddOe6LLbDcPnaTrTnAdsk/Bx9n+Zd8A2l3vzam9RbwTjlr7ZezIY67RRknfScEO+qCt9cfdAKf57ZdpiAecDFEr9V/CdAPEBevxaoiTwzFrjO+N9BY57eGHJsPda8NwNsrBraGBgcgKOXWeg9MowfU+wWpUSbeAJDZ2zZabGRKJkXpbRNNnf3webPSaXfb9qeWrCHXXbuI8JO+PQmx6OX8IHGjqyE1E=
|
36
|
-
gem: mnemosyne-ruby
|
37
|
-
on:
|
38
|
-
tags: true
|
39
|
-
repo: mnemosyne-mon/mnemosyne-ruby
|
34
|
+
- bundle exec rspec ${SPEC}
|
35
|
+
|
36
|
+
matrix:
|
37
|
+
exclude:
|
38
|
+
- rvm: 2.4.9
|
39
|
+
env: SPEC='--tag probe:rails --tag ~probe' BUNDLE_GEMFILE=gemfiles/rails_60.gemfile
|
40
|
+
- rvm: 2.4.9
|
41
|
+
env: SPEC='--tag probe:sidekiq' SIDEKIQ_VERSION='~> 6.0'
|
data/Appraisals
CHANGED
@@ -1,20 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
appraise 'rails-60' do
|
4
|
+
group :test do
|
5
|
+
gem 'rails', '~> 6.0.0', require: false
|
6
|
+
gem 'sqlite3', '~> 1.4', require: false
|
7
|
+
end
|
8
|
+
end
|
1
9
|
|
2
10
|
appraise 'rails-52' do
|
3
|
-
|
4
|
-
|
11
|
+
group :test do
|
12
|
+
gem 'rails', '~> 5.2.0', require: false
|
13
|
+
gem 'sqlite3', '~> 1.4', require: false
|
14
|
+
end
|
5
15
|
end
|
6
16
|
|
7
17
|
appraise 'rails-51' do
|
8
|
-
|
9
|
-
|
18
|
+
group :test do
|
19
|
+
gem 'rails', '~> 5.1.0', require: false
|
20
|
+
gem 'sqlite3', '~> 1.4', require: false
|
21
|
+
end
|
10
22
|
end
|
11
23
|
|
12
24
|
appraise 'rails-50' do
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
appraise 'rails-42' do
|
18
|
-
gem 'rails', '~> 4.2.0', require: false
|
19
|
-
gem 'sqlite3', '~> 1.3.6', require: false
|
25
|
+
group :test do
|
26
|
+
gem 'rails', '~> 5.0.0', require: false
|
27
|
+
gem 'sqlite3', '~> 1.3.6', require: false
|
28
|
+
end
|
20
29
|
end
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,26 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
|
+
### Removed
|
8
|
+
- Support for Ruby 2.4 and Rails 4.2
|
9
|
+
|
10
|
+
### Fixed
|
11
|
+
- Deprecation warnings due to block capture and keyword arguments
|
12
|
+
|
13
|
+
## [1.10.0] - 2020-03-05
|
14
|
+
### Added
|
15
|
+
- Support for Faraday 1.0
|
16
|
+
|
17
|
+
## [1.9.0] - 2019-12-17
|
18
|
+
### Fixed
|
19
|
+
- [Rack] Fix exceptions raised on trace submit corrupting the response
|
20
|
+
|
21
|
+
### Added
|
22
|
+
- Rack: Collect redirect locations (#14)
|
23
|
+
|
24
|
+
## [1.8.0] - 2019-10-25
|
25
|
+
### Added
|
26
|
+
- Improve compatibility with Rails 6.0
|
7
27
|
|
8
28
|
## [1.7.1] - 2019-06-15
|
9
29
|
### Fixed
|
@@ -82,7 +102,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
82
102
|
### Added
|
83
103
|
- Add platform identifier
|
84
104
|
|
85
|
-
[
|
105
|
+
[Unreleased]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.10.0...HEAD
|
106
|
+
[1.10.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.9.0...v1.10.0
|
107
|
+
[1.9.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.8.0...v1.9.0
|
108
|
+
[1.8.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.7.1...v1.8.0
|
86
109
|
[1.7.1]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.7.0...v1.7.1
|
87
110
|
[1.7.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.6.2...v1.7.0
|
88
111
|
[1.6.2]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.6.1...v1.6.2
|
data/Gemfile
CHANGED
@@ -5,19 +5,26 @@ source 'https://rubygems.org'
|
|
5
5
|
# Specify your gem's dependencies in mnemosyne.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
gem 'appraisal'
|
9
8
|
gem 'rake', '~> 12.0'
|
10
9
|
gem 'rspec', '~> 3.6'
|
11
|
-
gem 'rubocop', '~> 0.
|
10
|
+
gem 'rubocop', '~> 0.80.1'
|
12
11
|
gem 'timecop', '~> 0.9.1'
|
13
12
|
|
14
|
-
|
15
|
-
gem '
|
13
|
+
group :test do
|
14
|
+
gem 'faraday', ENV['FARADAY_VERSION'], require: false
|
15
|
+
gem 'msgr', ENV['MSGR_VERSION'], require: false
|
16
|
+
gem 'restify', ENV['RESTIFY_VERSION'], require: false
|
17
|
+
gem 'sidekiq', ENV['SIDEKIQ_VERSION'], require: false
|
16
18
|
|
17
|
-
gem '
|
18
|
-
gem '
|
19
|
-
gem '
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
gem '
|
19
|
+
gem 'rails', require: false
|
20
|
+
gem 'sqlite3', require: false
|
21
|
+
gem 'webmock', require: false
|
22
|
+
end
|
23
|
+
|
24
|
+
group :development do
|
25
|
+
gem 'appraisal'
|
26
|
+
gem 'rake-release', '~> 1.2.1'
|
27
|
+
|
28
|
+
gem 'pry', require: false
|
29
|
+
gem 'pry-byebug', require: false
|
30
|
+
end
|
data/README.md
CHANGED
@@ -31,6 +31,8 @@ Or install it yourself as:
|
|
31
31
|
|
32
32
|
$ gem install mnemosyne
|
33
33
|
|
34
|
+
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.
|
35
|
+
|
34
36
|
## Usage
|
35
37
|
|
36
38
|
TODO
|
data/Rakefile
CHANGED
@@ -1,13 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'rake/release/task'
|
4
4
|
require 'rspec/core/rake_task'
|
5
5
|
require 'rubocop/rake_task'
|
6
6
|
|
7
|
-
|
7
|
+
task default: %i[rubocop spec]
|
8
8
|
|
9
9
|
RuboCop::RakeTask.new(:rubocop) do |task|
|
10
10
|
task.fail_on_error = false
|
11
11
|
end
|
12
12
|
|
13
|
-
|
13
|
+
RSpec::Core::RakeTask.new(:spec)
|
14
|
+
|
15
|
+
Rake::Release::Task.new do |spec|
|
16
|
+
spec.sign_tag = true
|
17
|
+
end
|
data/gemfiles/rails_50.gemfile
CHANGED
@@ -2,19 +2,26 @@
|
|
2
2
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
|
-
gem "appraisal"
|
6
5
|
gem "rake", "~> 12.0"
|
7
6
|
gem "rspec", "~> 3.6"
|
8
|
-
gem "rubocop", "~> 0.
|
9
|
-
gem "timecop", "~> 0.
|
10
|
-
|
11
|
-
|
12
|
-
gem "faraday", require: false
|
13
|
-
gem "msgr", require: false
|
14
|
-
gem "
|
15
|
-
gem "
|
16
|
-
gem "
|
17
|
-
gem "sqlite3", "~> 1.3.6", require: false
|
18
|
-
gem "webmock", require: false
|
7
|
+
gem "rubocop", "~> 0.80.1"
|
8
|
+
gem "timecop", "~> 0.9.1"
|
9
|
+
|
10
|
+
group :test do
|
11
|
+
gem "faraday", nil, require: false
|
12
|
+
gem "msgr", nil, require: false
|
13
|
+
gem "restify", nil, require: false
|
14
|
+
gem "sidekiq", nil, require: false
|
15
|
+
gem "rails", "~> 5.0.0", require: false
|
16
|
+
gem "sqlite3", "~> 1.3.6", require: false
|
17
|
+
gem "webmock", require: false
|
18
|
+
end
|
19
|
+
|
20
|
+
group :development do
|
21
|
+
gem "appraisal"
|
22
|
+
gem "rake-release", "~> 1.2.1"
|
23
|
+
gem "pry", require: false
|
24
|
+
gem "pry-byebug", require: false
|
25
|
+
end
|
19
26
|
|
20
27
|
gemspec path: "../"
|
data/gemfiles/rails_51.gemfile
CHANGED
@@ -2,19 +2,26 @@
|
|
2
2
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
|
-
gem "appraisal"
|
6
5
|
gem "rake", "~> 12.0"
|
7
6
|
gem "rspec", "~> 3.6"
|
8
|
-
gem "rubocop", "~> 0.
|
9
|
-
gem "timecop", "~> 0.
|
10
|
-
|
11
|
-
|
12
|
-
gem "faraday", require: false
|
13
|
-
gem "msgr", require: false
|
14
|
-
gem "
|
15
|
-
gem "
|
16
|
-
gem "
|
17
|
-
gem "sqlite3", "~> 1.4", require: false
|
18
|
-
gem "webmock", require: false
|
7
|
+
gem "rubocop", "~> 0.80.1"
|
8
|
+
gem "timecop", "~> 0.9.1"
|
9
|
+
|
10
|
+
group :test do
|
11
|
+
gem "faraday", nil, require: false
|
12
|
+
gem "msgr", nil, require: false
|
13
|
+
gem "restify", nil, require: false
|
14
|
+
gem "sidekiq", nil, require: false
|
15
|
+
gem "rails", "~> 5.1.0", require: false
|
16
|
+
gem "sqlite3", "~> 1.4", require: false
|
17
|
+
gem "webmock", require: false
|
18
|
+
end
|
19
|
+
|
20
|
+
group :development do
|
21
|
+
gem "appraisal"
|
22
|
+
gem "rake-release", "~> 1.2.1"
|
23
|
+
gem "pry", require: false
|
24
|
+
gem "pry-byebug", require: false
|
25
|
+
end
|
19
26
|
|
20
27
|
gemspec path: "../"
|
data/gemfiles/rails_52.gemfile
CHANGED
@@ -2,19 +2,26 @@
|
|
2
2
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
|
-
gem "appraisal"
|
6
5
|
gem "rake", "~> 12.0"
|
7
6
|
gem "rspec", "~> 3.6"
|
8
|
-
gem "rubocop", "~> 0.
|
9
|
-
gem "timecop", "~> 0.
|
10
|
-
|
11
|
-
|
12
|
-
gem "faraday", require: false
|
13
|
-
gem "msgr", require: false
|
14
|
-
gem "
|
15
|
-
gem "
|
16
|
-
gem "
|
17
|
-
gem "sqlite3", "~> 1.4", require: false
|
18
|
-
gem "webmock", require: false
|
7
|
+
gem "rubocop", "~> 0.80.1"
|
8
|
+
gem "timecop", "~> 0.9.1"
|
9
|
+
|
10
|
+
group :test do
|
11
|
+
gem "faraday", nil, require: false
|
12
|
+
gem "msgr", nil, require: false
|
13
|
+
gem "restify", nil, require: false
|
14
|
+
gem "sidekiq", nil, require: false
|
15
|
+
gem "rails", "~> 5.2.0", require: false
|
16
|
+
gem "sqlite3", "~> 1.4", require: false
|
17
|
+
gem "webmock", require: false
|
18
|
+
end
|
19
|
+
|
20
|
+
group :development do
|
21
|
+
gem "appraisal"
|
22
|
+
gem "rake-release", "~> 1.2.1"
|
23
|
+
gem "pry", require: false
|
24
|
+
gem "pry-byebug", require: false
|
25
|
+
end
|
19
26
|
|
20
27
|
gemspec path: "../"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "rake", "~> 12.0"
|
6
|
+
gem "rspec", "~> 3.6"
|
7
|
+
gem "rubocop", "~> 0.80.1"
|
8
|
+
gem "timecop", "~> 0.9.1"
|
9
|
+
|
10
|
+
group :test do
|
11
|
+
gem "faraday", nil, require: false
|
12
|
+
gem "msgr", nil, require: false
|
13
|
+
gem "restify", nil, require: false
|
14
|
+
gem "sidekiq", nil, require: false
|
15
|
+
gem "rails", "~> 6.0.0", require: false
|
16
|
+
gem "sqlite3", "~> 1.4", require: false
|
17
|
+
gem "webmock", require: false
|
18
|
+
end
|
19
|
+
|
20
|
+
group :development do
|
21
|
+
gem "appraisal"
|
22
|
+
gem "rake-release", "~> 1.2.1"
|
23
|
+
gem "pry", require: false
|
24
|
+
gem "pry-byebug", require: false
|
25
|
+
end
|
26
|
+
|
27
|
+
gemspec path: "../"
|
@@ -13,7 +13,7 @@ module Mnemosyne
|
|
13
13
|
attr_reader :exchange
|
14
14
|
attr_reader :server
|
15
15
|
|
16
|
-
def initialize(config)
|
16
|
+
def initialize(config)
|
17
17
|
@platform = config.fetch('platform', 'default').to_s.strip.freeze
|
18
18
|
@application = config.fetch('application', nil).to_s.strip.freeze
|
19
19
|
@enabled = config.fetch('enabled', true)
|
@@ -57,7 +57,7 @@ module Mnemosyne
|
|
57
57
|
'amqps' => 5671
|
58
58
|
}.freeze
|
59
59
|
|
60
|
-
def make_amqp_uri(amqp)
|
60
|
+
def make_amqp_uri(amqp)
|
61
61
|
uri = URI('')
|
62
62
|
|
63
63
|
uri.scheme = amqp[:scheme]
|
data/lib/mnemosyne/global.rb
CHANGED
@@ -5,13 +5,13 @@ module Mnemosyne
|
|
5
5
|
def trace(name, meta: {})
|
6
6
|
::ActiveSupport::Notifications.instrument 'trace.mnemosyne',
|
7
7
|
name: name, meta: meta do
|
8
|
-
|
9
8
|
yield
|
10
9
|
end
|
11
10
|
end
|
12
11
|
|
13
12
|
def attach_error(err)
|
14
13
|
return unless (trace = ::Mnemosyne::Instrumenter.current_trace)
|
14
|
+
|
15
15
|
trace.attach_error(err)
|
16
16
|
end
|
17
17
|
end
|
@@ -27,10 +27,11 @@ module Mnemosyne
|
|
27
27
|
def trace(name, **kwargs)
|
28
28
|
if (trace = current_trace)
|
29
29
|
return yield trace if block_given?
|
30
|
+
|
30
31
|
return trace
|
31
32
|
end
|
32
33
|
|
33
|
-
trace = self.current_trace = Trace.new(self, name, kwargs)
|
34
|
+
trace = self.current_trace = Trace.new(self, name, **kwargs)
|
34
35
|
|
35
36
|
return trace unless block_given?
|
36
37
|
|
@@ -67,9 +68,9 @@ module Mnemosyne
|
|
67
68
|
|
68
69
|
@instance = new(config: config, client: client)
|
69
70
|
end
|
70
|
-
rescue StandardError =>
|
71
|
+
rescue StandardError => e
|
71
72
|
::Mnemosyne::Logging.logger.warn(Mnemosyne) do
|
72
|
-
"Unable to start instrumenter: #{
|
73
|
+
"Unable to start instrumenter: #{e}"
|
73
74
|
end
|
74
75
|
|
75
76
|
raise
|
@@ -84,13 +85,15 @@ module Mnemosyne
|
|
84
85
|
@instance = old
|
85
86
|
end
|
86
87
|
|
87
|
-
def trace(*args)
|
88
|
+
def trace(*args, **kwargs)
|
88
89
|
return unless (instrumenter = instance)
|
89
|
-
|
90
|
+
|
91
|
+
instrumenter.trace(*args, **kwargs)
|
90
92
|
end
|
91
93
|
|
92
94
|
def current_trace
|
93
95
|
return unless (instrumenter = instance)
|
96
|
+
|
94
97
|
instrumenter.current_trace
|
95
98
|
end
|
96
99
|
end
|
@@ -21,10 +21,10 @@ module Mnemosyne
|
|
21
21
|
|
22
22
|
env[:request_headers].merge!({
|
23
23
|
'X-Mnemosyne-Transaction' => trace.transaction,
|
24
|
-
'X-Mnemosyne-Origin' => span.uuid
|
24
|
+
'X-Mnemosyne-Origin' => span.uuid
|
25
25
|
}.reject {|_, v| v.nil? })
|
26
26
|
|
27
|
-
@app.call(env).on_complete do |env|
|
27
|
+
@app.call(env).on_complete do |env| # rubocop:disable Lint/ShadowingOuterLocalVariable
|
28
28
|
span.meta[:status] = env[:status]
|
29
29
|
|
30
30
|
trace << span.finish!
|
@@ -16,24 +16,20 @@ module Mnemosyne
|
|
16
16
|
@body.respond_to?(*args)
|
17
17
|
end
|
18
18
|
|
19
|
-
def method_missing(*args)
|
19
|
+
def method_missing(*args, &block)
|
20
20
|
super if args.first && args.first.to_s == 'to_ary'
|
21
|
-
|
22
|
-
if block_given?
|
23
|
-
@body.__send__(*args, &Proc.new)
|
24
|
-
else
|
25
|
-
@body.__send__(*args)
|
26
|
-
end
|
21
|
+
@body.__send__(*args, &block)
|
27
22
|
end
|
28
23
|
|
29
24
|
def close
|
30
25
|
return if @closed
|
26
|
+
|
31
27
|
@closed = true
|
32
28
|
|
33
29
|
begin
|
34
30
|
@body.close if @body.respond_to? :close
|
35
31
|
ensure
|
36
|
-
|
32
|
+
_submit_trace
|
37
33
|
end
|
38
34
|
end
|
39
35
|
|
@@ -41,19 +37,28 @@ module Mnemosyne
|
|
41
37
|
@closed
|
42
38
|
end
|
43
39
|
|
44
|
-
def each(*args)
|
45
|
-
@body.each(*args, &
|
40
|
+
def each(*args, &block)
|
41
|
+
@body.each(*args, &block)
|
46
42
|
rescue StandardError, LoadError, SyntaxError => e
|
47
43
|
@trace.attach_error(e)
|
48
44
|
raise
|
49
45
|
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def _submit_trace
|
50
|
+
@trace.submit
|
51
|
+
rescue Exception => e # rubocop:disable Lint/RescueException
|
52
|
+
::Mnemosyne::Logging.logger.error \
|
53
|
+
"Error while submitting trace: #{e}\n #{e.backtrace.join("\n ")}"
|
54
|
+
end
|
50
55
|
end
|
51
56
|
|
52
57
|
def initialize(app)
|
53
58
|
@app = app
|
54
59
|
end
|
55
60
|
|
56
|
-
def call(env)
|
61
|
+
def call(env)
|
57
62
|
origin = env.fetch('HTTP_X_MNEMOSYNE_ORIGIN', false)
|
58
63
|
transaction = env.fetch('HTTP_X_MNEMOSYNE_TRANSACTION') do
|
59
64
|
::SecureRandom.uuid
|
@@ -85,7 +90,7 @@ module Mnemosyne
|
|
85
90
|
|
86
91
|
raise
|
87
92
|
ensure
|
88
|
-
trace
|
93
|
+
trace&.release
|
89
94
|
end
|
90
95
|
|
91
96
|
private
|
@@ -109,7 +114,10 @@ module Mnemosyne
|
|
109
114
|
|
110
115
|
return unless headers
|
111
116
|
|
112
|
-
trace.meta
|
117
|
+
trace.meta.merge!({
|
118
|
+
content_type: headers['Content-Type'],
|
119
|
+
location: headers['Location']
|
120
|
+
}.compact)
|
113
121
|
end
|
114
122
|
end
|
115
123
|
end
|
@@ -19,11 +19,11 @@ module Mnemosyne
|
|
19
19
|
origin: origin,
|
20
20
|
meta: meta
|
21
21
|
|
22
|
-
trace
|
22
|
+
trace&.start!
|
23
23
|
|
24
24
|
yield
|
25
|
-
rescue StandardError, LoadError, SyntaxError =>
|
26
|
-
trace.attach_error(
|
25
|
+
rescue StandardError, LoadError, SyntaxError => e
|
26
|
+
trace.attach_error(e)
|
27
27
|
raise
|
28
28
|
ensure
|
29
29
|
if trace
|
data/lib/mnemosyne/probes.rb
CHANGED
@@ -17,9 +17,11 @@ module Mnemosyne
|
|
17
17
|
|
18
18
|
module Extension
|
19
19
|
def lock!
|
20
|
-
|
21
|
-
if
|
22
|
-
|
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
|
+
|
23
25
|
insert(idx, ::Mnemosyne::Middleware::Faraday)
|
24
26
|
else
|
25
27
|
use(::Mnemosyne::Middleware::Faraday)
|
@@ -4,11 +4,11 @@ module Mnemosyne
|
|
4
4
|
module Probes
|
5
5
|
module Msgr
|
6
6
|
module Client
|
7
|
-
NAME = 'external.publish.msgr'
|
7
|
+
NAME = 'external.publish.msgr'
|
8
8
|
|
9
9
|
class Probe < ::Mnemosyne::Probe
|
10
10
|
def setup
|
11
|
-
::Msgr::Client.
|
11
|
+
::Msgr::Client.prepend Instrumentation
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -4,16 +4,16 @@ module Mnemosyne
|
|
4
4
|
module Probes
|
5
5
|
module Msgr
|
6
6
|
module Consumer
|
7
|
-
NAME = 'app.messaging.receive.msgr'
|
7
|
+
NAME = 'app.messaging.receive.msgr'
|
8
8
|
|
9
9
|
class Probe < ::Mnemosyne::Probe
|
10
10
|
def setup
|
11
|
-
::Msgr::Consumer.
|
11
|
+
::Msgr::Consumer.prepend Instrumentation
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
module Instrumentation
|
16
|
-
def dispatch(message)
|
16
|
+
def dispatch(message)
|
17
17
|
route = message.route
|
18
18
|
metadata = message.metadata
|
19
19
|
headers = metadata.headers || {}
|
@@ -57,7 +57,7 @@ module Mnemosyne
|
|
57
57
|
|
58
58
|
super
|
59
59
|
rescue StandardError, LoadError, SyntaxError => e
|
60
|
-
trace
|
60
|
+
trace&.attach_error(e)
|
61
61
|
raise
|
62
62
|
ensure
|
63
63
|
if trace
|
data/lib/mnemosyne/railtie.rb
CHANGED
data/lib/mnemosyne/registry.rb
CHANGED
data/lib/mnemosyne/trace.rb
CHANGED
@@ -57,12 +57,13 @@ module Mnemosyne
|
|
57
57
|
end
|
58
58
|
|
59
59
|
Error = Struct.new(:error) do
|
60
|
-
BT_REGEXP = /^((?:[a-zA-Z]:)?[^:]+):(\d+)(?::in `([^']+)')
|
60
|
+
BT_REGEXP = /^((?:[a-zA-Z]:)?[^:]+):(\d+)(?::in `([^']+)')?$/.freeze
|
61
61
|
|
62
62
|
def serialize
|
63
63
|
{
|
64
64
|
type: error.class.name,
|
65
65
|
text: error.message.to_s,
|
66
|
+
cause: serialize_cause,
|
66
67
|
stacktrace: serialize_backtrace
|
67
68
|
}.compact
|
68
69
|
end
|
@@ -78,6 +79,10 @@ module Mnemosyne
|
|
78
79
|
{file: md[1], line: md[2], call: md[3], raw: md[0]}
|
79
80
|
end
|
80
81
|
end
|
82
|
+
|
83
|
+
def serialize_cause
|
84
|
+
self.class.new(error.cause).serialize if error.cause
|
85
|
+
end
|
81
86
|
end
|
82
87
|
end
|
83
88
|
end
|
data/lib/mnemosyne/version.rb
CHANGED
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: 1.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Graichen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -59,6 +59,9 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
+
- ".editorconfig"
|
63
|
+
- ".github/workflows/build.yml"
|
64
|
+
- ".github/workflows/lint.yml"
|
62
65
|
- ".gitignore"
|
63
66
|
- ".rspec"
|
64
67
|
- ".rubocop.yml"
|
@@ -69,10 +72,10 @@ files:
|
|
69
72
|
- LICENSE
|
70
73
|
- README.md
|
71
74
|
- Rakefile
|
72
|
-
- gemfiles/rails_42.gemfile
|
73
75
|
- gemfiles/rails_50.gemfile
|
74
76
|
- gemfiles/rails_51.gemfile
|
75
77
|
- gemfiles/rails_52.gemfile
|
78
|
+
- gemfiles/rails_60.gemfile
|
76
79
|
- lib/mnemosyne-ruby.rb
|
77
80
|
- lib/mnemosyne.rb
|
78
81
|
- lib/mnemosyne/client.rb
|
@@ -134,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
137
|
- !ruby/object:Gem::Version
|
135
138
|
version: '0'
|
136
139
|
requirements: []
|
137
|
-
rubygems_version: 3.
|
140
|
+
rubygems_version: 3.2.1
|
138
141
|
signing_key:
|
139
142
|
specification_version: 4
|
140
143
|
summary: Ruby/Rails client for Mnemosyne APM
|
data/gemfiles/rails_42.gemfile
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "appraisal"
|
6
|
-
gem "rake", "~> 12.0"
|
7
|
-
gem "rspec", "~> 3.6"
|
8
|
-
gem "rubocop", "~> 0.67.1"
|
9
|
-
gem "timecop", "~> 0.8.0"
|
10
|
-
gem "pry", require: false
|
11
|
-
gem "pry-byebug", require: false
|
12
|
-
gem "faraday", require: false
|
13
|
-
gem "msgr", require: false
|
14
|
-
gem "rails", "~> 4.2.0", require: false
|
15
|
-
gem "restify", require: false
|
16
|
-
gem "sidekiq", require: false
|
17
|
-
gem "sqlite3", "~> 1.3.6", require: false
|
18
|
-
gem "webmock", require: false
|
19
|
-
|
20
|
-
gemspec path: "../"
|