mnemosyne-ruby 1.5.1 → 1.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +4 -2
- data/.rubocop.yml +5 -1
- data/.travis.yml +26 -20
- data/Appraisals +20 -0
- data/CHANGELOG.md +83 -56
- data/Gemfile +12 -16
- data/gemfiles/rails_42.gemfile +20 -0
- data/gemfiles/rails_50.gemfile +20 -0
- data/gemfiles/rails_51.gemfile +20 -0
- data/gemfiles/rails_52.gemfile +20 -0
- data/lib/mnemosyne-ruby.rb +0 -1
- data/lib/mnemosyne.rb +2 -0
- data/lib/mnemosyne/configuration.rb +1 -1
- data/lib/mnemosyne/instrumenter.rb +1 -3
- data/lib/mnemosyne/middleware/acfs.rb +1 -1
- data/lib/mnemosyne/probes/active_record/instantiation.rb +32 -0
- data/lib/mnemosyne/probes/active_record/query.rb +16 -1
- data/lib/mnemosyne/probes/faraday/base.rb +50 -0
- data/lib/mnemosyne/version.rb +1 -1
- data/mnemosyne-ruby.gemspec +3 -3
- metadata +20 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f6c8d36a42e84e754dc65cf09409ba7a916a40961ec9ddbf7b1642afb96d92a
|
4
|
+
data.tar.gz: baf625dc9039554e968f2ed485b117dbd9dae5ae9ececa2e6b9fc8ae9b985d43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e67f54ef807765c50ec14f70608f1dc542fc55a4107cab5671a31ae7af89b797d4248a1ef1e6376ce86b9ab8ce1fd5ff4097adfb51faa8bb32a0cb7a22e7f450
|
7
|
+
data.tar.gz: cb994c75a109e7e56290d8c7ca950dc83b790d86e875eaf8637d3992cf18ace3a33d6eb26563dfaa567cb19cebb087c5b164ea61294a15b3cc857a3175ac4632
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
AllCops:
|
2
2
|
TargetRubyVersion: 2.2
|
3
|
+
Exclude:
|
4
|
+
- 'vendor/**/*'
|
5
|
+
- 'gemfiles/**/*'
|
3
6
|
|
4
7
|
Rails:
|
5
8
|
Enabled: false
|
@@ -47,7 +50,8 @@ Style/RescueModifier:
|
|
47
50
|
|
48
51
|
Metrics/LineLength:
|
49
52
|
Exclude:
|
50
|
-
- '
|
53
|
+
- '*.gemspec'
|
54
|
+
- 'spec/**/*'
|
51
55
|
|
52
56
|
Metrics/BlockLength:
|
53
57
|
Exclude:
|
data/.travis.yml
CHANGED
@@ -2,28 +2,34 @@ language: ruby
|
|
2
2
|
cache: bundler
|
3
3
|
sudo: required
|
4
4
|
services:
|
5
|
-
- rabbitmq
|
5
|
+
- rabbitmq
|
6
6
|
rvm:
|
7
|
-
- 2.
|
8
|
-
- 2.
|
9
|
-
- 2.
|
7
|
+
- 2.6.3
|
8
|
+
- 2.5.5
|
9
|
+
- 2.4.6
|
10
|
+
- 2.3.8
|
11
|
+
gemfile:
|
12
|
+
- gemfiles/rails_52.gemfile
|
13
|
+
- gemfiles/rails_51.gemfile
|
14
|
+
- gemfiles/rails_50.gemfile
|
15
|
+
- gemfiles/rails_42.gemfile
|
10
16
|
before_install:
|
11
|
-
-
|
12
|
-
- gem install bundler
|
17
|
+
- echo yes | rvm gemset delete global
|
18
|
+
- gem install bundler -v'~>1.0'
|
13
19
|
script:
|
14
|
-
- bundle exec rake rubocop
|
15
|
-
- bundle exec rake spec
|
20
|
+
- bundle exec rake rubocop
|
21
|
+
- bundle exec rake spec
|
16
22
|
jobs:
|
17
23
|
include:
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
- stage: Release
|
25
|
+
rvm: 2.6.3
|
26
|
+
install: skip
|
27
|
+
script: skip
|
28
|
+
deploy:
|
29
|
+
provider: rubygems
|
30
|
+
api_key:
|
31
|
+
secure: s7hUPxL4RULQ398GXk6Ko/y3QtUy7bZMTzcC4sL9Opsw76IRhOY0n+c6r+S8wHH3n+cRxiLpUyXRAsLMhjd67Rn+qaBoVbEfyzZKt1EAYyskFdPf40Jlq3FjOjRjAJW+hLDYloLXqqgLIrx/ybOv0YOfKyGKmk6eBNCx9S5GPJzt15WAM4Lz+TxNuR82YhsDybcGtTtLJ1WCF5FeQ297l2OESgvikRoADhIIM3HVk6Msyqw7RwFlpoIFGPRhXZD7UmML981rxK4Gxkh5xKGJiInjzL8lYOgT3KIfSLwtp9JoDbtpKbzdIQfA8Z35aRzpLjofPFxxYsKjwmCfdKxvJf5E5hTlenrILqSIovuknHb9oNOp0aCdp52N4+B8BZl7n1muQzr1AKy/ogtkTAgmlPs5tW+qx2h6E5MU0wfy6sS0AqKtVcGaZ1u85llifY2TvYriHReBIf8vddOe6LLbDcPnaTrTnAdsk/Bx9n+Zd8A2l3vzam9RbwTjlr7ZezIY67RRknfScEO+qCt9cfdAKf57ZdpiAecDFEr9V/CdAPEBevxaoiTwzFrjO+N9BY57eGHJsPda8NwNsrBraGBgcgKOXWeg9MowfU+wWpUSbeAJDZ2zZabGRKJkXpbRNNnf3webPSaXfb9qeWrCHXXbuI8JO+PQmx6OX8IHGjqyE1E=
|
32
|
+
gem: mnemosyne-ruby
|
33
|
+
on:
|
34
|
+
tags: true
|
35
|
+
repo: mnemosyne-mon/mnemosyne-ruby
|
data/Appraisals
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
|
2
|
+
appraise 'rails-52' do
|
3
|
+
gem 'rails', '~> 5.2.0', require: false
|
4
|
+
gem 'sqlite3', '~> 1.4', require: false
|
5
|
+
end
|
6
|
+
|
7
|
+
appraise 'rails-51' do
|
8
|
+
gem 'rails', '~> 5.1.0', require: false
|
9
|
+
gem 'sqlite3', '~> 1.4', require: false
|
10
|
+
end
|
11
|
+
|
12
|
+
appraise 'rails-50' do
|
13
|
+
gem 'rails', '~> 5.0.0', require: false
|
14
|
+
gem 'sqlite3', '~> 1.3.6', require: false
|
15
|
+
end
|
16
|
+
|
17
|
+
appraise 'rails-42' do
|
18
|
+
gem 'rails', '~> 4.2.0', require: false
|
19
|
+
gem 'sqlite3', '~> 1.3.6', require: false
|
20
|
+
end
|
data/CHANGELOG.md
CHANGED
@@ -1,57 +1,84 @@
|
|
1
1
|
# Changelog
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
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
|
+
|
6
|
+
## [Unreleased]
|
7
|
+
|
8
|
+
## [1.6.1] - 2019-05-14
|
9
|
+
### Fixed
|
10
|
+
- Fix release pipeline; no code changed
|
11
|
+
|
12
|
+
## [1.6.0] - 2019-05-14
|
13
|
+
### Added
|
14
|
+
- Add faraday probe (#11)
|
15
|
+
|
16
|
+
## [1.5.1] - 2019-05-14
|
17
|
+
### Fixed
|
18
|
+
- Avoid using internal AMQP constant: Fix compat with amq-protocol 2.3+
|
19
|
+
|
20
|
+
## [1.5.0] - 2019-05-14
|
21
|
+
### Added
|
22
|
+
- Add ActiveJob perform probe
|
23
|
+
|
24
|
+
### Changed
|
25
|
+
- Capture endpoint names for grape web requests
|
26
|
+
- `attach_error` accepts errors without backtraces and string messages
|
27
|
+
|
28
|
+
## [1.4.0] - 2019-05-14
|
29
|
+
### Added
|
30
|
+
- Add global `#attach_error` for manual error reporting
|
31
|
+
|
32
|
+
## [1.3.0] - 2019-05-14
|
33
|
+
### Added
|
34
|
+
- Add exception serialization to trace and protocol
|
35
|
+
- Add exception reporting to Sidekiq, Msgr, Rack and Rails
|
36
|
+
|
37
|
+
## [1.2.1] - 2019-05-14
|
38
|
+
### Changed
|
39
|
+
- Improve AMQP connection recovery
|
40
|
+
- Fix dynamic probe loading
|
41
|
+
|
42
|
+
## [1.2.0] - 2019-05-14
|
43
|
+
### Added
|
44
|
+
- Collect response metadata in rack instrumentation
|
45
|
+
|
46
|
+
## [1.1.0] - 2019-05-14
|
47
|
+
### Added
|
48
|
+
- Add metadata to rack instrumentation
|
49
|
+
- Add msgr server & client instrumentation
|
50
|
+
- Add sidekiq client instrumentation
|
51
|
+
- Add sidekiq server instrumentation
|
52
|
+
- Add acfs request parameter tracing
|
53
|
+
|
54
|
+
## [1.0.1] - 2019-05-14
|
55
|
+
### Fixed
|
56
|
+
- Fix issue with `enabled` configuration flag (#1)
|
57
|
+
|
58
|
+
## [1.0.0] - 2019-05-14
|
59
|
+
### Fixed
|
60
|
+
- Fix issue with acfs middleware on non-tracing contexts
|
61
|
+
|
62
|
+
### Changed
|
63
|
+
- Simplify restify probe to only extend base adapter
|
64
|
+
- Remove FQDN lookup as it failed on missing RDNS
|
65
|
+
|
66
|
+
## 0.2.0 - 2019-05-14
|
67
|
+
### Changed
|
68
|
+
- Rename gem to mnemosyne-ruby due to name conflict
|
69
|
+
|
70
|
+
### Added
|
71
|
+
- Add platform identifier
|
72
|
+
|
73
|
+
[Unreleased]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.6.1...HEAD
|
74
|
+
[1.6.1]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.6.0...v1.6.1
|
75
|
+
[1.6.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.5.1...v1.6.0
|
76
|
+
[1.5.1]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.5.0...v1.5.1
|
77
|
+
[1.5.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.4.0...v1.5.0
|
78
|
+
[1.4.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.3.0...v1.4.0
|
79
|
+
[1.3.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.2.1...v1.3.0
|
80
|
+
[1.2.1]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.2.0...v1.2.1
|
81
|
+
[1.2.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.1.0...v1.2.0
|
82
|
+
[1.1.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.0.1...v1.1.0
|
83
|
+
[1.0.1]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v1.0.0...v1.0.1
|
84
|
+
[1.0.0]: https://github.com/mnemosyne-mon/mnemosyne-ruby/compare/v0.2.0...v1.0.0
|
data/Gemfile
CHANGED
@@ -5,23 +5,19 @@ source 'https://rubygems.org'
|
|
5
5
|
# Specify your gem's dependencies in mnemosyne.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
+
gem 'appraisal'
|
8
9
|
gem 'rake', '~> 12.0'
|
9
10
|
gem 'rspec', '~> 3.6'
|
10
|
-
gem 'rubocop', '~> 0.
|
11
|
-
gem 'timecop', '~> 0.
|
11
|
+
gem 'rubocop', '~> 0.67.1'
|
12
|
+
gem 'timecop', '~> 0.9.1'
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
gem 'pry-byebug', require: false
|
16
|
-
end
|
14
|
+
gem 'pry', require: false
|
15
|
+
gem 'pry-byebug', require: false
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
gem 'rubocop', '~> 0.50.0'
|
17
|
+
gem 'faraday', require: false
|
18
|
+
gem 'msgr', require: false
|
19
|
+
gem 'rails', require: false
|
20
|
+
gem 'restify', require: false
|
21
|
+
gem 'sidekiq', require: false
|
22
|
+
gem 'sqlite3', require: false
|
23
|
+
gem 'webmock', require: false
|
@@ -0,0 +1,20 @@
|
|
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: "../"
|
@@ -0,0 +1,20 @@
|
|
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", "~> 5.0.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: "../"
|
@@ -0,0 +1,20 @@
|
|
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", "~> 5.1.0", require: false
|
15
|
+
gem "restify", require: false
|
16
|
+
gem "sidekiq", require: false
|
17
|
+
gem "sqlite3", "~> 1.4", require: false
|
18
|
+
gem "webmock", require: false
|
19
|
+
|
20
|
+
gemspec path: "../"
|
@@ -0,0 +1,20 @@
|
|
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", "~> 5.2.0", require: false
|
15
|
+
gem "restify", require: false
|
16
|
+
gem "sidekiq", require: false
|
17
|
+
gem "sqlite3", "~> 1.4", require: false
|
18
|
+
gem "webmock", require: false
|
19
|
+
|
20
|
+
gemspec path: "../"
|
data/lib/mnemosyne-ruby.rb
CHANGED
data/lib/mnemosyne.rb
CHANGED
@@ -35,6 +35,8 @@ module Mnemosyne
|
|
35
35
|
require 'mnemosyne/probes/action_view/render_template'
|
36
36
|
require 'mnemosyne/probes/active_job/perform'
|
37
37
|
require 'mnemosyne/probes/active_record/query'
|
38
|
+
require 'mnemosyne/probes/active_record/instantiation'
|
39
|
+
require 'mnemosyne/probes/faraday/base'
|
38
40
|
require 'mnemosyne/probes/grape/endpoint_render'
|
39
41
|
require 'mnemosyne/probes/grape/endpoint_run'
|
40
42
|
require 'mnemosyne/probes/grape/endpoint_run_filters'
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'thread'
|
4
|
-
|
5
3
|
module Mnemosyne
|
6
4
|
class Instrumenter
|
7
5
|
IDENT = :__mnemosyne_current_trace
|
@@ -32,7 +30,7 @@ module Mnemosyne
|
|
32
30
|
return trace
|
33
31
|
end
|
34
32
|
|
35
|
-
trace = self.current_trace = Trace.new(self, name,
|
33
|
+
trace = self.current_trace = Trace.new(self, name, kwargs)
|
36
34
|
|
37
35
|
return trace unless block_given?
|
38
36
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Mnemosyne
|
4
|
+
module Probes
|
5
|
+
module ActiveRecord
|
6
|
+
module Instantiation
|
7
|
+
class Probe < ::Mnemosyne::Probe
|
8
|
+
subscribe 'instantiation.active_record'
|
9
|
+
|
10
|
+
def call(trace, _name, start, finish, _id, payload)
|
11
|
+
start = ::Mnemosyne::Clock.to_tick(start)
|
12
|
+
finish = ::Mnemosyne::Clock.to_tick(finish)
|
13
|
+
|
14
|
+
meta = {
|
15
|
+
count: payload[:record_count],
|
16
|
+
class_name: payload[:class_name]
|
17
|
+
}
|
18
|
+
|
19
|
+
span = ::Mnemosyne::Span.new 'db.instantiation.active_record',
|
20
|
+
start: start, finish: finish, meta: meta
|
21
|
+
|
22
|
+
trace << span
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
register 'ActiveRecord::Base',
|
29
|
+
'active_record',
|
30
|
+
ActiveRecord::Instantiation::Probe.new
|
31
|
+
end
|
32
|
+
end
|
@@ -14,7 +14,8 @@ module Mnemosyne
|
|
14
14
|
finish = ::Mnemosyne::Clock.to_tick(finish)
|
15
15
|
|
16
16
|
meta = {
|
17
|
-
sql: payload[:sql]
|
17
|
+
sql: payload[:sql],
|
18
|
+
binds: extract_bind_values(payload)
|
18
19
|
}
|
19
20
|
|
20
21
|
span = ::Mnemosyne::Span.new 'db.query.active_record',
|
@@ -22,6 +23,20 @@ module Mnemosyne
|
|
22
23
|
|
23
24
|
trace << span
|
24
25
|
end
|
26
|
+
|
27
|
+
def extract_bind_values(payload)
|
28
|
+
return if payload[:binds].empty?
|
29
|
+
|
30
|
+
payload[:binds].map do |bind|
|
31
|
+
if bind.is_a?(Array)
|
32
|
+
bind[0].type_cast_for_database(bind[1])
|
33
|
+
else
|
34
|
+
bind.value_for_database
|
35
|
+
end
|
36
|
+
end
|
37
|
+
rescue StandardError
|
38
|
+
[]
|
39
|
+
end
|
25
40
|
end
|
26
41
|
end
|
27
42
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Mnemosyne
|
4
|
+
module Probes
|
5
|
+
module Faraday
|
6
|
+
module Base
|
7
|
+
class Probe < ::Mnemosyne::Probe
|
8
|
+
def setup
|
9
|
+
::Faraday.default_connection_options = {
|
10
|
+
builder: ::Faraday::RackBuilder.new do |faraday|
|
11
|
+
faraday.use Probe::Middleware
|
12
|
+
faraday.adapter ::Faraday.default_adapter
|
13
|
+
end
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
class Middleware
|
18
|
+
def initialize(app)
|
19
|
+
@app = app
|
20
|
+
end
|
21
|
+
|
22
|
+
def call(env)
|
23
|
+
trace = ::Mnemosyne::Instrumenter.current_trace
|
24
|
+
|
25
|
+
return @app.call(env) unless trace
|
26
|
+
|
27
|
+
span = ::Mnemosyne::Span.new 'external.http.faraday', \
|
28
|
+
meta: {url: env[:url].to_s, method: env[:method]}
|
29
|
+
|
30
|
+
span.start!
|
31
|
+
|
32
|
+
env[:request_headers].merge!({
|
33
|
+
'X-Mnemosyne-Transaction' => trace.transaction,
|
34
|
+
'X-Mnemosyne-Origin' => span.uuid,
|
35
|
+
}.reject {|_, v| v.nil? })
|
36
|
+
|
37
|
+
@app.call(env).on_complete do |env|
|
38
|
+
span.meta[:status] = env[:status]
|
39
|
+
|
40
|
+
trace << span.finish!
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
register 'Faraday', 'faraday', Faraday::Base::Probe.new
|
49
|
+
end
|
50
|
+
end
|
data/lib/mnemosyne/version.rb
CHANGED
data/mnemosyne-ruby.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
lib = File.expand_path('
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
require 'mnemosyne/version'
|
6
6
|
|
@@ -22,8 +22,8 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^bin/}) {|f| File.basename(f) }
|
23
23
|
spec.require_paths = %w[lib]
|
24
24
|
|
25
|
-
spec.add_runtime_dependency 'bunny'
|
26
25
|
spec.add_runtime_dependency 'activesupport', '>= 4'
|
26
|
+
spec.add_runtime_dependency 'bunny'
|
27
27
|
|
28
|
-
spec.add_development_dependency 'bundler'
|
28
|
+
spec.add_development_dependency 'bundler'
|
29
29
|
end
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mnemosyne-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.1
|
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: 2019-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '4'
|
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: '4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: bunny
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
description:
|
56
56
|
email:
|
57
57
|
- jgraichen@altimos.de
|
@@ -63,11 +63,16 @@ files:
|
|
63
63
|
- ".rspec"
|
64
64
|
- ".rubocop.yml"
|
65
65
|
- ".travis.yml"
|
66
|
+
- Appraisals
|
66
67
|
- CHANGELOG.md
|
67
68
|
- Gemfile
|
68
69
|
- LICENSE
|
69
70
|
- README.md
|
70
71
|
- Rakefile
|
72
|
+
- gemfiles/rails_42.gemfile
|
73
|
+
- gemfiles/rails_50.gemfile
|
74
|
+
- gemfiles/rails_51.gemfile
|
75
|
+
- gemfiles/rails_52.gemfile
|
71
76
|
- lib/mnemosyne-ruby.rb
|
72
77
|
- lib/mnemosyne.rb
|
73
78
|
- lib/mnemosyne/client.rb
|
@@ -88,7 +93,9 @@ files:
|
|
88
93
|
- lib/mnemosyne/probes/action_view/render_partial.rb
|
89
94
|
- lib/mnemosyne/probes/action_view/render_template.rb
|
90
95
|
- lib/mnemosyne/probes/active_job/perform.rb
|
96
|
+
- lib/mnemosyne/probes/active_record/instantiation.rb
|
91
97
|
- lib/mnemosyne/probes/active_record/query.rb
|
98
|
+
- lib/mnemosyne/probes/faraday/base.rb
|
92
99
|
- lib/mnemosyne/probes/grape/endpoint_render.rb
|
93
100
|
- lib/mnemosyne/probes/grape/endpoint_run.rb
|
94
101
|
- lib/mnemosyne/probes/grape/endpoint_run_filters.rb
|
@@ -126,8 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
133
|
- !ruby/object:Gem::Version
|
127
134
|
version: '0'
|
128
135
|
requirements: []
|
129
|
-
|
130
|
-
rubygems_version: 2.7.4
|
136
|
+
rubygems_version: 3.0.3
|
131
137
|
signing_key:
|
132
138
|
specification_version: 4
|
133
139
|
summary: Ruby/Rails client for Mnemosyne APM
|