startback 0.10.1 → 0.11.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/startback/audit/prometheus.rb +2 -9
- data/lib/startback/audit/shared.rb +17 -0
- data/lib/startback/audit/trailer.rb +5 -9
- data/lib/startback/audit.rb +1 -0
- data/lib/startback/support/log_formatter.rb +2 -0
- data/lib/startback/support/robustness.rb +2 -0
- data/lib/startback/version.rb +2 -2
- data/lib/startback/web/api.rb +1 -0
- data/spec/unit/audit/test_trailer.rb +18 -1
- data/spec/unit/support/test_robusteness.rb +11 -1
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 929e1ab2d7ab916eadc828ecf2d1695c14c9a43d117198457e03c70c8b479ba4
|
4
|
+
data.tar.gz: 2f3d212acd31e00b1910aca3c3c1154a5e8a130962aeb002c184c6a70da17ab2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90d448f505406727db9cd5c1db1d2fdb14b5df6ed546566ae9f3db4e573dbe43e43968f5885c9602c5ca198ceb8a7801aca769e499ef4d10acaaf2be318f779f
|
7
|
+
data.tar.gz: 01b21d439cc5b7d1c8ff218620b7eec13a8496919c941863df25d8d01f4d2c6d11b727a6c4269015ef61d1d8063ebe1487909c3b238c84c06c5211eccc568423
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require_relative 'shared'
|
1
2
|
require 'prometheus/client'
|
2
3
|
|
3
4
|
module Startback
|
@@ -23,6 +24,7 @@ module Startback
|
|
23
24
|
# input at construction time.
|
24
25
|
#
|
25
26
|
class Prometheus
|
27
|
+
include Shared
|
26
28
|
|
27
29
|
def initialize(options = {})
|
28
30
|
@prefix = options[:prefix] || "startback"
|
@@ -62,7 +64,6 @@ module Startback
|
|
62
64
|
def ignore_safely
|
63
65
|
yield
|
64
66
|
rescue => ex
|
65
|
-
puts ex.class.to_s + "\n" + ex.message + "\n" + ex.backtrace.join("\n")
|
66
67
|
nil
|
67
68
|
end
|
68
69
|
|
@@ -81,14 +82,6 @@ module Startback
|
|
81
82
|
Startback::VERSION
|
82
83
|
end
|
83
84
|
|
84
|
-
def op_name(op)
|
85
|
-
case op
|
86
|
-
when String then op
|
87
|
-
when Class then op.name
|
88
|
-
else op.class.name
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
85
|
end # class Prometheus
|
93
86
|
end # module Audit
|
94
87
|
end # module Startback
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Startback
|
2
|
+
module Audit
|
3
|
+
module Shared
|
4
|
+
|
5
|
+
def op_name(op)
|
6
|
+
return op.op_name if op.respond_to?(:op_name)
|
7
|
+
|
8
|
+
case op
|
9
|
+
when String then op
|
10
|
+
when Class then op.name
|
11
|
+
else op.class.name
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end # module Shared
|
16
|
+
end # module Audit
|
17
|
+
end # module Startback
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require_relative 'shared'
|
1
2
|
require 'forwardable'
|
2
3
|
module Startback
|
3
4
|
module Audit
|
@@ -45,6 +46,7 @@ module Startback
|
|
45
46
|
# input at construction time.
|
46
47
|
#
|
47
48
|
class Trailer
|
49
|
+
include Shared
|
48
50
|
extend Forwardable
|
49
51
|
def_delegators :@logger, :debug, :info, :warn, :error, :fatal
|
50
52
|
|
@@ -85,20 +87,14 @@ module Startback
|
|
85
87
|
log_msg
|
86
88
|
end
|
87
89
|
|
88
|
-
def op_name(op)
|
89
|
-
case op
|
90
|
-
when String then op
|
91
|
-
when Class then op.name
|
92
|
-
else op.class.name
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
90
|
def op_context(op)
|
97
91
|
sanitize(op.respond_to?(:context, false) ? op.context.to_h : {})
|
98
92
|
end
|
99
93
|
|
100
94
|
def op_data(op)
|
101
|
-
data = if op.respond_to?(:
|
95
|
+
data = if op.respond_to?(:op_data, false)
|
96
|
+
op.op_data
|
97
|
+
elsif op.respond_to?(:to_trail, false)
|
102
98
|
op.to_trail
|
103
99
|
elsif op.respond_to?(:input, false)
|
104
100
|
op.input
|
data/lib/startback/audit.rb
CHANGED
@@ -67,6 +67,8 @@ module Startback
|
|
67
67
|
log_msg.dup
|
68
68
|
elsif log_msg.is_a?(String)
|
69
69
|
log_msg = { op: "#{log_msg}#{method.nil? ? '' : '#'+method.to_s}" }
|
70
|
+
elsif log_msg.is_a?(Exception)
|
71
|
+
log_msg = { error: log_msg }
|
70
72
|
else
|
71
73
|
log_msg = log_msg.class unless log_msg.is_a?(Module)
|
72
74
|
log_msg = { op: "#{log_msg.name}##{method}" }
|
data/lib/startback/version.rb
CHANGED
data/lib/startback/web/api.rb
CHANGED
@@ -8,13 +8,30 @@ module Startback
|
|
8
8
|
Trailer.new("/tmp/trail.log")
|
9
9
|
}
|
10
10
|
|
11
|
+
describe "op_name" do
|
12
|
+
|
13
|
+
def op_name(op, trailer = self.trailer)
|
14
|
+
trailer.send(:op_name, op)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'uses op_name in priority if provided' do
|
18
|
+
op = OpenStruct.new(op_name: "foo")
|
19
|
+
expect(op_name(op)).to eql("foo")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
11
23
|
describe "op_data" do
|
12
24
|
|
13
25
|
def op_data(op, trailer = self.trailer)
|
14
26
|
trailer.send(:op_data, op)
|
15
27
|
end
|
16
28
|
|
17
|
-
it 'uses
|
29
|
+
it 'uses op_data in priority if provided' do
|
30
|
+
op = OpenStruct.new(op_data: { foo: "bar" }, input: 12, request: 13)
|
31
|
+
expect(op_data(op)).to eql({ foo: "bar" })
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'uses to_trail then' do
|
18
35
|
op = OpenStruct.new(to_trail: { foo: "bar" }, input: 12, request: 13)
|
19
36
|
expect(op_data(op)).to eql({ foo: "bar" })
|
20
37
|
end
|
@@ -135,6 +135,16 @@ module Startback
|
|
135
135
|
expect(logger).to be_a(::Logger)
|
136
136
|
end
|
137
137
|
|
138
|
+
it 'works fine with a Exception only' do
|
139
|
+
exception = StandardError.new('hello')
|
140
|
+
expected = {
|
141
|
+
error: exception
|
142
|
+
}
|
143
|
+
log_msg, logger = parse_args(exception)
|
144
|
+
expect(log_msg).to eql(expected)
|
145
|
+
expect(logger).to be_a(::Logger)
|
146
|
+
end
|
147
|
+
|
138
148
|
it 'works fine with a string and a context with logger' do
|
139
149
|
expected = {
|
140
150
|
op: "a message"
|
@@ -216,4 +226,4 @@ module Startback
|
|
216
226
|
|
217
227
|
end
|
218
228
|
end
|
219
|
-
end
|
229
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: startback
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bernard Lambeau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -270,20 +270,20 @@ dependencies:
|
|
270
270
|
requirements:
|
271
271
|
- - ">="
|
272
272
|
- !ruby/object:Gem::Version
|
273
|
-
version: 0.
|
273
|
+
version: 0.19.0
|
274
274
|
- - "<"
|
275
275
|
- !ruby/object:Gem::Version
|
276
|
-
version: 0.
|
276
|
+
version: 0.20.0
|
277
277
|
type: :runtime
|
278
278
|
prerelease: false
|
279
279
|
version_requirements: !ruby/object:Gem::Requirement
|
280
280
|
requirements:
|
281
281
|
- - ">="
|
282
282
|
- !ruby/object:Gem::Version
|
283
|
-
version: 0.
|
283
|
+
version: 0.19.0
|
284
284
|
- - "<"
|
285
285
|
- !ruby/object:Gem::Version
|
286
|
-
version: 0.
|
286
|
+
version: 0.20.0
|
287
287
|
- !ruby/object:Gem::Dependency
|
288
288
|
name: tzinfo
|
289
289
|
requirement: !ruby/object:Gem::Requirement
|
@@ -383,6 +383,7 @@ files:
|
|
383
383
|
- lib/startback.rb
|
384
384
|
- lib/startback/audit.rb
|
385
385
|
- lib/startback/audit/prometheus.rb
|
386
|
+
- lib/startback/audit/shared.rb
|
386
387
|
- lib/startback/audit/trailer.rb
|
387
388
|
- lib/startback/bus.rb
|
388
389
|
- lib/startback/bus/bunny.rb
|
@@ -472,7 +473,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
472
473
|
- !ruby/object:Gem::Version
|
473
474
|
version: '0'
|
474
475
|
requirements: []
|
475
|
-
rubygems_version: 3.
|
476
|
+
rubygems_version: 3.3.7
|
476
477
|
signing_key:
|
477
478
|
specification_version: 4
|
478
479
|
summary: Got Your Ruby Back
|