mnemosyne-ruby 1.1.0 → 1.2.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/CHANGELOG.md +4 -0
- data/Gemfile +1 -0
- data/lib/mnemosyne/middleware/rack.rb +30 -14
- data/lib/mnemosyne/probes/restify/base.rb +25 -2
- data/lib/mnemosyne/version.rb +1 -1
- metadata +2 -3
- data/lib/mnemosyne/middleware/restify.rb +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9627e0a03b472040c3b65023a44f1e1cea612bf9
|
4
|
+
data.tar.gz: f76fea84c479995a59b4151b752af13e6a3a33c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ad571be34543f3de3437a05c1c9413f8c90be17153af484f0f3b6627c032ec455a73463452278438b44c85bcb3c92aa14800c1c355b0c307fd2e06d53bbc513
|
7
|
+
data.tar.gz: 7ed59cb08efd1066173b08b32e2c0cf67c2e80cecbabd3a4fe504e1cb9e304f0f48472cada9cba9209f1f36052e3a7c0a11a2a919832d4b671e98987ebe9c429
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -60,27 +60,19 @@ module Mnemosyne
|
|
60
60
|
::SecureRandom.uuid
|
61
61
|
end
|
62
62
|
|
63
|
-
meta = {
|
64
|
-
method: env['REQUEST_METHOD'],
|
65
|
-
path: env['REQUEST_PATH'],
|
66
|
-
query: env['QUERY_STRING'],
|
67
|
-
protocol: env['SERVER_PROTOCOL'],
|
68
|
-
headers: {
|
69
|
-
'Accept': env['HTTP_ACCEPT'],
|
70
|
-
'Host': env['HTTP_HOST'],
|
71
|
-
'User-Agent': env['HTTP_USER_AGENT']
|
72
|
-
}
|
73
|
-
}
|
74
|
-
|
75
63
|
trace = ::Mnemosyne::Instrumenter.trace 'app.web.request.rack',
|
76
64
|
transaction: transaction,
|
77
|
-
origin: origin
|
78
|
-
meta: meta
|
65
|
+
origin: origin
|
79
66
|
|
80
67
|
if trace
|
81
68
|
trace.start!
|
82
69
|
|
70
|
+
scan_request(trace, env)
|
71
|
+
|
83
72
|
response = @app.call env
|
73
|
+
|
74
|
+
scan_response(trace, response)
|
75
|
+
|
84
76
|
response[2] = Proxy.new(response[2]) { trace.submit }
|
85
77
|
response
|
86
78
|
else
|
@@ -92,6 +84,30 @@ module Mnemosyne
|
|
92
84
|
ensure
|
93
85
|
trace.release if trace
|
94
86
|
end
|
87
|
+
|
88
|
+
private
|
89
|
+
|
90
|
+
def scan_request(trace, env)
|
91
|
+
trace.meta[:method] = env['REQUEST_METHOD']
|
92
|
+
trace.meta[:path] = env['REQUEST_PATH']
|
93
|
+
trace.meta[:query] = env['QUERY_STRING']
|
94
|
+
trace.meta[:protocol] = env['SERVER_PROTOCOL']
|
95
|
+
trace.meta[:headers] = {
|
96
|
+
'Accept': env['HTTP_ACCEPT'],
|
97
|
+
'Host': env['HTTP_HOST'],
|
98
|
+
'User-Agent': env['HTTP_USER_AGENT']
|
99
|
+
}
|
100
|
+
end
|
101
|
+
|
102
|
+
def scan_response(trace, response)
|
103
|
+
status, headers, = response
|
104
|
+
|
105
|
+
trace.meta[:status] = status
|
106
|
+
|
107
|
+
return unless headers
|
108
|
+
|
109
|
+
trace.meta[:content_type] = headers['Content-Type']
|
110
|
+
end
|
95
111
|
end
|
96
112
|
end
|
97
113
|
end
|
@@ -6,9 +6,32 @@ module Mnemosyne
|
|
6
6
|
module Base
|
7
7
|
class Probe < ::Mnemosyne::Probe
|
8
8
|
def setup
|
9
|
-
|
9
|
+
::Restify::Adapter::Base.prepend Instrumentation
|
10
|
+
end
|
11
|
+
|
12
|
+
module Instrumentation
|
13
|
+
def call(request)
|
14
|
+
if (trace = ::Mnemosyne::Instrumenter.current_trace)
|
15
|
+
meta = {url: request.uri.to_s, method: request.method}
|
16
|
+
|
17
|
+
span = ::Mnemosyne::Span.new 'external.http.restify', \
|
18
|
+
meta: meta
|
19
|
+
|
20
|
+
span.start!
|
21
|
+
|
22
|
+
request.headers['X-Mnemosyne-Transaction'] = trace.transaction
|
23
|
+
request.headers['X-Mnemosyne-Origin'] = span.uuid
|
10
24
|
|
11
|
-
|
25
|
+
super.tap do |x|
|
26
|
+
x.add_observer do |_, _response, _err|
|
27
|
+
span.finish!
|
28
|
+
trace << span
|
29
|
+
end
|
30
|
+
end
|
31
|
+
else
|
32
|
+
super
|
33
|
+
end
|
34
|
+
end
|
12
35
|
end
|
13
36
|
end
|
14
37
|
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.2.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: 2017-
|
11
|
+
date: 2017-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bunny
|
@@ -133,7 +133,6 @@ files:
|
|
133
133
|
- lib/mnemosyne/instrumenter.rb
|
134
134
|
- lib/mnemosyne/middleware/acfs.rb
|
135
135
|
- lib/mnemosyne/middleware/rack.rb
|
136
|
-
- lib/mnemosyne/middleware/restify.rb
|
137
136
|
- lib/mnemosyne/middleware/sidekiq.rb
|
138
137
|
- lib/mnemosyne/probe.rb
|
139
138
|
- lib/mnemosyne/probes.rb
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Mnemosyne
|
4
|
-
module Middleware
|
5
|
-
module Restify
|
6
|
-
def call(request)
|
7
|
-
if (trace = ::Mnemosyne::Instrumenter.current_trace)
|
8
|
-
meta = {url: request.uri.to_s, method: request.method}
|
9
|
-
|
10
|
-
span = ::Mnemosyne::Span.new('external.http.restify', meta: meta)
|
11
|
-
span.start!
|
12
|
-
|
13
|
-
request.headers['X-Mnemosyne-Transaction'] = trace.transaction
|
14
|
-
request.headers['X-Mnemosyne-Origin'] = span.uuid
|
15
|
-
|
16
|
-
super.tap do |x|
|
17
|
-
x.add_observer do |_, _response, _err|
|
18
|
-
span.finish!
|
19
|
-
trace << span
|
20
|
-
end
|
21
|
-
end
|
22
|
-
else
|
23
|
-
super
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|