lenjador 2.0.0 → 2.2.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/ci.yml +25 -0
- data/.gitignore +0 -2
- data/.rubocop.yml +3 -3
- data/.ruby-version +1 -1
- data/Gemfile.lock +78 -0
- data/lenjador.gemspec +6 -9
- data/lib/lenjador/adapters/stdout_adapter.rb +1 -1
- data/lib/lenjador/adapters/stdout_json_adapter.rb +1 -6
- data/lib/lenjador/preprocessors/blacklist.rb +3 -2
- data/lib/lenjador/preprocessors/whitelist.rb +2 -2
- data/lib/lenjador/utils.rb +39 -35
- data/lib/lenjador.rb +6 -0
- data/spec/lenjador/adapters/stdout_json_adapter_spec.rb +2 -2
- data/spec/lenjador/preprocessors/whitelist_spec.rb +0 -16
- data/spec/lenjador/utils_spec.rb +23 -1
- data/spec/lenjador_spec.rb +19 -0
- data/spec/spec_helper.rb +1 -1
- metadata +23 -9
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9d2c05e9a5e41ddcfb2274063ae0b5d75387a5657e9effb6440e1d0ac9aa10e2
|
|
4
|
+
data.tar.gz: f5e80262d179b4320f7db1e2f1998b9a6160c57868a14dbf3d74d73420289e2a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a051c066866a827ca68e7b207a5f37f73ce7eb73bc1a33afca8523f2b51d2c44f47bd3d7d87d07ac2e7498f03298ac5120d314718c906043cf17b5ed913c6711
|
|
7
|
+
data.tar.gz: 212cc99147c9d533b82fb92594259ebf65eb49e9cf61e006d8460b874dec01e2cba6b4f15e898e3b199186c569fbcb488923e26ba05dc76a925292a9d1501f0f
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Ruby
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ master ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ master ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
ruby-version: ['2.6', '2.7']
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v2
|
|
17
|
+
with:
|
|
18
|
+
submodules: true
|
|
19
|
+
- name: Set up Ruby
|
|
20
|
+
uses: ruby/setup-ruby@v1
|
|
21
|
+
with:
|
|
22
|
+
ruby-version: ${{ matrix.ruby-version }}
|
|
23
|
+
bundler-cache: true
|
|
24
|
+
- name: Run lint & tests
|
|
25
|
+
run: bundle exec rake
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
inherit_gem:
|
|
2
2
|
rubocop-salemove: config/default.yml
|
|
3
3
|
|
|
4
|
+
AllCops:
|
|
5
|
+
TargetRubyVersion: 2.6
|
|
6
|
+
|
|
4
7
|
Style/FrozenStringLiteralComment:
|
|
5
8
|
Enabled: yes
|
|
6
9
|
EnforcedStyle: always
|
|
@@ -34,8 +37,5 @@ RSpec/MultipleExpectations:
|
|
|
34
37
|
Style/SafeNavigation:
|
|
35
38
|
Enabled: no
|
|
36
39
|
|
|
37
|
-
Performance/RegexpMatch:
|
|
38
|
-
Enabled: no
|
|
39
|
-
|
|
40
40
|
Style/SingleLineMethods:
|
|
41
41
|
Enabled: no
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ruby-2.
|
|
1
|
+
ruby-2.7.1
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
lenjador (2.2.1)
|
|
5
|
+
lru_redux
|
|
6
|
+
oj (~> 3.6)
|
|
7
|
+
|
|
8
|
+
GEM
|
|
9
|
+
remote: https://rubygems.org/
|
|
10
|
+
specs:
|
|
11
|
+
ast (2.4.2)
|
|
12
|
+
benchmark-ips (2.8.4)
|
|
13
|
+
coderay (1.1.3)
|
|
14
|
+
diff-lcs (1.4.4)
|
|
15
|
+
lru_redux (1.1.0)
|
|
16
|
+
method_source (1.0.0)
|
|
17
|
+
oj (3.11.5)
|
|
18
|
+
opentelemetry-api (0.17.0)
|
|
19
|
+
parallel (1.20.1)
|
|
20
|
+
parser (3.0.1.1)
|
|
21
|
+
ast (~> 2.4.1)
|
|
22
|
+
pry (0.14.1)
|
|
23
|
+
coderay (~> 1.1)
|
|
24
|
+
method_source (~> 1.0)
|
|
25
|
+
rainbow (3.0.0)
|
|
26
|
+
rake (13.0.3)
|
|
27
|
+
regexp_parser (2.1.1)
|
|
28
|
+
rexml (3.2.5)
|
|
29
|
+
rspec (3.10.0)
|
|
30
|
+
rspec-core (~> 3.10.0)
|
|
31
|
+
rspec-expectations (~> 3.10.0)
|
|
32
|
+
rspec-mocks (~> 3.10.0)
|
|
33
|
+
rspec-core (3.10.1)
|
|
34
|
+
rspec-support (~> 3.10.0)
|
|
35
|
+
rspec-expectations (3.10.1)
|
|
36
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
37
|
+
rspec-support (~> 3.10.0)
|
|
38
|
+
rspec-mocks (3.10.2)
|
|
39
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
40
|
+
rspec-support (~> 3.10.0)
|
|
41
|
+
rspec-support (3.10.2)
|
|
42
|
+
rubocop (0.93.1)
|
|
43
|
+
parallel (~> 1.10)
|
|
44
|
+
parser (>= 2.7.1.5)
|
|
45
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
46
|
+
regexp_parser (>= 1.8)
|
|
47
|
+
rexml
|
|
48
|
+
rubocop-ast (>= 0.6.0)
|
|
49
|
+
ruby-progressbar (~> 1.7)
|
|
50
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
|
51
|
+
rubocop-ast (1.5.0)
|
|
52
|
+
parser (>= 3.0.1.1)
|
|
53
|
+
rubocop-rspec (1.44.1)
|
|
54
|
+
rubocop (~> 0.87)
|
|
55
|
+
rubocop-ast (>= 0.7.1)
|
|
56
|
+
rubocop-salemove (0.0.5)
|
|
57
|
+
rubocop (~> 0.82)
|
|
58
|
+
rubocop-rspec (~> 1.15)
|
|
59
|
+
ruby-prof (1.4.3)
|
|
60
|
+
ruby-progressbar (1.11.0)
|
|
61
|
+
unicode-display_width (1.7.0)
|
|
62
|
+
|
|
63
|
+
PLATFORMS
|
|
64
|
+
ruby
|
|
65
|
+
|
|
66
|
+
DEPENDENCIES
|
|
67
|
+
benchmark-ips
|
|
68
|
+
bundler
|
|
69
|
+
lenjador!
|
|
70
|
+
opentelemetry-api
|
|
71
|
+
pry
|
|
72
|
+
rake
|
|
73
|
+
rspec
|
|
74
|
+
rubocop-salemove
|
|
75
|
+
ruby-prof
|
|
76
|
+
|
|
77
|
+
BUNDLED WITH
|
|
78
|
+
2.1.4
|
data/lenjador.gemspec
CHANGED
|
@@ -4,13 +4,14 @@ lib = File.expand_path('lib', __dir__)
|
|
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |gem|
|
|
7
|
-
gem.name =
|
|
8
|
-
gem.version = '2.
|
|
7
|
+
gem.name = 'lenjador'
|
|
8
|
+
gem.version = '2.2.1'
|
|
9
9
|
gem.authors = ['Salemove']
|
|
10
10
|
gem.email = ['support@salemove.com']
|
|
11
11
|
gem.description = "It's lenjadoric"
|
|
12
12
|
gem.summary = 'What description said'
|
|
13
13
|
gem.license = 'MIT'
|
|
14
|
+
gem.required_ruby_version = '>= 2.6'
|
|
14
15
|
|
|
15
16
|
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
|
16
17
|
gem.executables = gem.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
@@ -18,18 +19,14 @@ Gem::Specification.new do |gem|
|
|
|
18
19
|
gem.require_paths = ['lib']
|
|
19
20
|
|
|
20
21
|
gem.add_dependency 'lru_redux'
|
|
21
|
-
|
|
22
|
-
if RUBY_PLATFORM =~ /java/
|
|
23
|
-
gem.add_dependency 'jrjackson'
|
|
24
|
-
else
|
|
25
|
-
gem.add_dependency 'oj', '~> 3.6'
|
|
26
|
-
gem.add_development_dependency 'ruby-prof'
|
|
27
|
-
end
|
|
22
|
+
gem.add_dependency 'oj', '~> 3.6'
|
|
28
23
|
|
|
29
24
|
gem.add_development_dependency 'benchmark-ips'
|
|
30
25
|
gem.add_development_dependency 'bundler'
|
|
26
|
+
gem.add_development_dependency 'opentelemetry-api'
|
|
31
27
|
gem.add_development_dependency 'pry'
|
|
32
28
|
gem.add_development_dependency 'rake'
|
|
33
29
|
gem.add_development_dependency 'rspec'
|
|
34
30
|
gem.add_development_dependency 'rubocop-salemove'
|
|
31
|
+
gem.add_development_dependency 'ruby-prof'
|
|
35
32
|
end
|
|
@@ -5,7 +5,6 @@ class Lenjador
|
|
|
5
5
|
class StdoutJsonAdapter
|
|
6
6
|
def initialize(service_name)
|
|
7
7
|
@application_name = Utils.application_name(service_name)
|
|
8
|
-
@mutex = Mutex.new if RUBY_ENGINE == 'jruby'
|
|
9
8
|
end
|
|
10
9
|
|
|
11
10
|
def log(level, metadata = {})
|
|
@@ -20,13 +19,9 @@ class Lenjador
|
|
|
20
19
|
def print_line(str)
|
|
21
20
|
$stdout.puts(str)
|
|
22
21
|
end
|
|
23
|
-
elsif RUBY_ENGINE == 'jruby'
|
|
24
|
-
def print_line(str)
|
|
25
|
-
@mutex.synchronize { $stdout.write(str + "\n") }
|
|
26
|
-
end
|
|
27
22
|
else
|
|
28
23
|
def print_line(str)
|
|
29
|
-
$stdout.write(str
|
|
24
|
+
$stdout.write("#{str}\n")
|
|
30
25
|
end
|
|
31
26
|
end
|
|
32
27
|
end
|
|
@@ -20,7 +20,8 @@ class Lenjador
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def process(data)
|
|
23
|
-
|
|
23
|
+
case data
|
|
24
|
+
when Hash
|
|
24
25
|
data.inject({}) do |mem, (key, val)|
|
|
25
26
|
if (field = @fields_to_process[key.to_s])
|
|
26
27
|
send(action_method(field[:action]), mem, key, val)
|
|
@@ -28,7 +29,7 @@ class Lenjador
|
|
|
28
29
|
mem.merge(key => process(val))
|
|
29
30
|
end
|
|
30
31
|
end
|
|
31
|
-
|
|
32
|
+
when Array
|
|
32
33
|
data.inject([]) do |mem, val|
|
|
33
34
|
mem + [process(val)]
|
|
34
35
|
end
|
|
@@ -7,7 +7,7 @@ require 'lenjador/preprocessors/strategies/prune'
|
|
|
7
7
|
class Lenjador
|
|
8
8
|
module Preprocessors
|
|
9
9
|
class Whitelist
|
|
10
|
-
DEFAULT_WHITELIST = %w[/id /message /correlation_id /queue].freeze
|
|
10
|
+
DEFAULT_WHITELIST = %w[/id /message /correlation_id /queue /trace_id /span_id].freeze
|
|
11
11
|
MASK_SYMBOL = '*'
|
|
12
12
|
MASKED_VALUE = MASK_SYMBOL * 5
|
|
13
13
|
|
|
@@ -45,7 +45,7 @@ class Lenjador
|
|
|
45
45
|
def build_trie(config)
|
|
46
46
|
pointers = (config[:pointers] || []) + DEFAULT_WHITELIST
|
|
47
47
|
|
|
48
|
-
pointers.reduce(JSONPointerTrie.new(config)) do |trie, pointer|
|
|
48
|
+
pointers.reduce(JSONPointerTrie.new(**config)) do |trie, pointer|
|
|
49
49
|
validate_pointer(pointer)
|
|
50
50
|
|
|
51
51
|
trie.insert(decode(pointer))
|
data/lib/lenjador/utils.rb
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'time'
|
|
4
|
+
require 'oj'
|
|
4
5
|
|
|
5
6
|
class Lenjador
|
|
6
7
|
module Utils
|
|
7
8
|
DECIMAL_FRACTION_OF_SECOND = 3
|
|
8
9
|
NO_TRACE_INFORMATION = {}.freeze
|
|
10
|
+
DUMP_OPTIONS = {
|
|
11
|
+
mode: :custom,
|
|
12
|
+
time_format: :xmlschema,
|
|
13
|
+
second_precision: 3
|
|
14
|
+
}.freeze
|
|
9
15
|
|
|
10
16
|
# Build logstash json compatible event
|
|
11
17
|
#
|
|
@@ -43,28 +49,8 @@ class Lenjador
|
|
|
43
49
|
end
|
|
44
50
|
private_class_method :overwritable_params
|
|
45
51
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
DUMP_OPTIONS = {
|
|
50
|
-
timezone: 'utc',
|
|
51
|
-
date_format: "YYYY-MM-dd'T'HH:mm:ss.SSSX"
|
|
52
|
-
}.freeze
|
|
53
|
-
|
|
54
|
-
def self.generate_json(obj)
|
|
55
|
-
JrJackson::Json.dump(obj, DUMP_OPTIONS)
|
|
56
|
-
end
|
|
57
|
-
else
|
|
58
|
-
require 'oj'
|
|
59
|
-
DUMP_OPTIONS = {
|
|
60
|
-
mode: :custom,
|
|
61
|
-
time_format: :xmlschema,
|
|
62
|
-
second_precision: 3
|
|
63
|
-
}.freeze
|
|
64
|
-
|
|
65
|
-
def self.generate_json(obj)
|
|
66
|
-
Oj.dump(obj, DUMP_OPTIONS)
|
|
67
|
-
end
|
|
52
|
+
def self.generate_json(obj)
|
|
53
|
+
Oj.dump(obj, DUMP_OPTIONS)
|
|
68
54
|
end
|
|
69
55
|
|
|
70
56
|
def self.underscore(input)
|
|
@@ -77,17 +63,37 @@ class Lenjador
|
|
|
77
63
|
word
|
|
78
64
|
end
|
|
79
65
|
|
|
80
|
-
# Tracing information
|
|
81
|
-
#
|
|
82
|
-
# Tracing information is included only if OpenTracing is defined and if it
|
|
83
|
-
# supports method called `active_span` (version >= 0.4.1). We use
|
|
84
|
-
# SpanContext#trace_id and SpanContext#span_id methods to retrieve tracing
|
|
85
|
-
# information. These methods are not yet supported by the OpenTracing API,
|
|
86
|
-
# so we first check if these methods exist. Popular tracing libraries
|
|
87
|
-
# already implement them. These methods are likely to be added to the API
|
|
88
|
-
# very soon: https://github.com/opentracing/specification/blob/master/rfc/trace_identifiers.md
|
|
89
66
|
def self.tracing_information
|
|
90
|
-
|
|
67
|
+
tracing_information_from_opentelemetry ||
|
|
68
|
+
tracing_information_from_opentracing ||
|
|
69
|
+
NO_TRACE_INFORMATION
|
|
70
|
+
end
|
|
71
|
+
private_class_method :tracing_information
|
|
72
|
+
|
|
73
|
+
def self.tracing_information_from_opentelemetry
|
|
74
|
+
return nil unless defined?(OpenTelemetry)
|
|
75
|
+
|
|
76
|
+
current_span_context = OpenTelemetry::Trace.current_span.context
|
|
77
|
+
return nil unless current_span_context.valid?
|
|
78
|
+
|
|
79
|
+
{
|
|
80
|
+
trace_id: current_span_context.hex_trace_id,
|
|
81
|
+
span_id: current_span_context.hex_span_id
|
|
82
|
+
}
|
|
83
|
+
end
|
|
84
|
+
private_class_method :tracing_information_from_opentelemetry
|
|
85
|
+
|
|
86
|
+
# Tracing information is included only if OpenTracing supports method
|
|
87
|
+
# called `active_span` (version >= 0.4.1). We use SpanContext#trace_id and
|
|
88
|
+
# SpanContext#span_id methods to retrieve tracing information. These
|
|
89
|
+
# methods are not yet supported by the OpenTracing API, so we first check
|
|
90
|
+
# if these methods exist. Popular tracing libraries already implement them.
|
|
91
|
+
# These methods are likely to be added to the API very soon:
|
|
92
|
+
# https://github.com/opentracing/specification/blob/master/rfc/trace_identifiers.md
|
|
93
|
+
#
|
|
94
|
+
# @deprecated Use OpenTelemetry instead
|
|
95
|
+
def self.tracing_information_from_opentracing
|
|
96
|
+
return nil if !defined?(OpenTracing) || !OpenTracing.respond_to?(:active_span)
|
|
91
97
|
|
|
92
98
|
context = OpenTracing.active_span&.context
|
|
93
99
|
if context && context.respond_to?(:trace_id) && context.respond_to?(:span_id)
|
|
@@ -95,10 +101,8 @@ class Lenjador
|
|
|
95
101
|
trace_id: context.trace_id,
|
|
96
102
|
span_id: context.span_id
|
|
97
103
|
}
|
|
98
|
-
else
|
|
99
|
-
NO_TRACE_INFORMATION
|
|
100
104
|
end
|
|
101
105
|
end
|
|
102
|
-
private_class_method :
|
|
106
|
+
private_class_method :tracing_information_from_opentracing
|
|
103
107
|
end
|
|
104
108
|
end
|
data/lib/lenjador.rb
CHANGED
|
@@ -58,6 +58,12 @@ class Lenjador
|
|
|
58
58
|
|
|
59
59
|
def fatal?; @level <= Severity::FATAL; end
|
|
60
60
|
|
|
61
|
+
def level=(new_level)
|
|
62
|
+
raise ArgumentError, "invalid log level: #{new_level}" unless new_level.is_a?(Integer)
|
|
63
|
+
|
|
64
|
+
@level = new_level
|
|
65
|
+
end
|
|
66
|
+
|
|
61
67
|
private
|
|
62
68
|
|
|
63
69
|
def log(level, *args, &block)
|
|
@@ -16,7 +16,7 @@ describe Lenjador::Adapters::StdoutJsonAdapter do
|
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
describe '#log' do
|
|
19
|
+
describe '#log' do # rubocop:disable RSpec/MultipleMemoizedHelpers
|
|
20
20
|
let(:adapter) { described_class.new(service_name) }
|
|
21
21
|
let(:metadata) { {x: 'y'} }
|
|
22
22
|
let(:event) { {a: 'b', x: 'y'} }
|
|
@@ -34,7 +34,7 @@ describe Lenjador::Adapters::StdoutJsonAdapter do
|
|
|
34
34
|
|
|
35
35
|
it 'sends serialized event to $stdout' do
|
|
36
36
|
adapter.log(info, metadata)
|
|
37
|
-
expect(output).to eq
|
|
37
|
+
expect(output).to eq("#{serialized_event}\n")
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
40
|
|
|
@@ -146,14 +146,6 @@ RSpec.describe Lenjador::Preprocessors::Whitelist do
|
|
|
146
146
|
end
|
|
147
147
|
end
|
|
148
148
|
|
|
149
|
-
context 'with whitelisted hash' do
|
|
150
|
-
let(:pointers) { ['/data'] }
|
|
151
|
-
|
|
152
|
-
it 'masks hash' do
|
|
153
|
-
expect(processed_data).to include(data: {field: '*****'})
|
|
154
|
-
end
|
|
155
|
-
end
|
|
156
|
-
|
|
157
149
|
context 'when boolean present' do
|
|
158
150
|
let(:data) { {bool: true} }
|
|
159
151
|
|
|
@@ -320,14 +312,6 @@ RSpec.describe Lenjador::Preprocessors::Whitelist do
|
|
|
320
312
|
end
|
|
321
313
|
end
|
|
322
314
|
|
|
323
|
-
context 'with whitelisted hash' do
|
|
324
|
-
let(:pointers) { ['/data'] }
|
|
325
|
-
|
|
326
|
-
it 'masks hash' do
|
|
327
|
-
expect(processed_data).to include(data: {})
|
|
328
|
-
end
|
|
329
|
-
end
|
|
330
|
-
|
|
331
315
|
def process(pointers, data)
|
|
332
316
|
described_class.new(pointers: pointers, action: :prune).process(data)
|
|
333
317
|
end
|
data/spec/lenjador/utils_spec.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'spec_helper'
|
|
4
|
+
require 'opentelemetry-api'
|
|
4
5
|
|
|
5
6
|
describe Lenjador::Utils do
|
|
6
7
|
let(:now) { Time.utc(2015, 10, 11, 23, 10, 21, 123_456) }
|
|
@@ -46,7 +47,28 @@ describe Lenjador::Utils do
|
|
|
46
47
|
end
|
|
47
48
|
end
|
|
48
49
|
|
|
49
|
-
context 'when
|
|
50
|
+
context 'when OpenTelemetry is defined' do
|
|
51
|
+
it 'includes trace information' do
|
|
52
|
+
provider = OpenTelemetry.tracer_provider
|
|
53
|
+
|
|
54
|
+
tracer = provider.tracer('my_app', '1.0')
|
|
55
|
+
recorded_event = tracer.in_span('my_task') do |_task_span|
|
|
56
|
+
event
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
expect(recorded_event).to include(
|
|
60
|
+
trace_id: instance_of(String),
|
|
61
|
+
span_id: instance_of(String)
|
|
62
|
+
)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it 'does not include trace information if span is invalid' do
|
|
66
|
+
expect(OpenTelemetry::Trace.current_span.context).not_to be_valid
|
|
67
|
+
expect(event).not_to include(:trace_id, :span_id)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
context 'when OpenTracing is defined' do # rubocop:disable RSpec/MultipleMemoizedHelpers
|
|
50
72
|
let(:trace_id) { 'trace-id' }
|
|
51
73
|
let(:span_id) { 'span-id' }
|
|
52
74
|
|
data/spec/lenjador_spec.rb
CHANGED
|
@@ -128,4 +128,23 @@ describe Lenjador do
|
|
|
128
128
|
end
|
|
129
129
|
end
|
|
130
130
|
end
|
|
131
|
+
|
|
132
|
+
it 'allows changing log level on existing instance' do
|
|
133
|
+
logger = described_class.build('test_service', level: 'info')
|
|
134
|
+
|
|
135
|
+
logger.level = ::Logger::DEBUG
|
|
136
|
+
expect(logger.debug?).to eq(true)
|
|
137
|
+
|
|
138
|
+
logger.level = ::Logger::INFO
|
|
139
|
+
expect(logger.debug?).to eq(false)
|
|
140
|
+
expect(logger.info?).to eq(true)
|
|
141
|
+
|
|
142
|
+
logger.level = ::Logger::WARN
|
|
143
|
+
expect(logger.info?).to eq(false)
|
|
144
|
+
expect(logger.warn?).to eq(true)
|
|
145
|
+
|
|
146
|
+
logger.level = ::Logger::ERROR
|
|
147
|
+
expect(logger.warn?).to eq(false)
|
|
148
|
+
expect(logger.error?).to eq(true)
|
|
149
|
+
end
|
|
131
150
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -5,7 +5,7 @@ Bundler.setup
|
|
|
5
5
|
|
|
6
6
|
require 'lenjador'
|
|
7
7
|
|
|
8
|
-
Dir[File.dirname(__FILE__)
|
|
8
|
+
Dir["#{File.dirname(__FILE__)}/support/*.rb"].sort.each { |f| require f }
|
|
9
9
|
|
|
10
10
|
RSpec.configure do |config|
|
|
11
11
|
config.run_all_when_everything_filtered = true
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lenjador
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Salemove
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-09-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: lru_redux
|
|
@@ -39,7 +39,7 @@ dependencies:
|
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '3.6'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: benchmark-ips
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - ">="
|
|
@@ -53,7 +53,7 @@ dependencies:
|
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: bundler
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - ">="
|
|
@@ -67,7 +67,7 @@ dependencies:
|
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '0'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
70
|
+
name: opentelemetry-api
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - ">="
|
|
@@ -136,6 +136,20 @@ dependencies:
|
|
|
136
136
|
- - ">="
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
138
|
version: '0'
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: ruby-prof
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - ">="
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: '0'
|
|
146
|
+
type: :development
|
|
147
|
+
prerelease: false
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - ">="
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: '0'
|
|
139
153
|
description: It's lenjadoric
|
|
140
154
|
email:
|
|
141
155
|
- support@salemove.com
|
|
@@ -143,13 +157,14 @@ executables: []
|
|
|
143
157
|
extensions: []
|
|
144
158
|
extra_rdoc_files: []
|
|
145
159
|
files:
|
|
160
|
+
- ".github/workflows/ci.yml"
|
|
146
161
|
- ".gitignore"
|
|
147
162
|
- ".rspec"
|
|
148
163
|
- ".rubocop.yml"
|
|
149
164
|
- ".ruby-gemset"
|
|
150
165
|
- ".ruby-version"
|
|
151
|
-
- ".travis.yml"
|
|
152
166
|
- Gemfile
|
|
167
|
+
- Gemfile.lock
|
|
153
168
|
- README.md
|
|
154
169
|
- Rakefile
|
|
155
170
|
- benchmark/whitelisting.rb
|
|
@@ -188,15 +203,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
188
203
|
requirements:
|
|
189
204
|
- - ">="
|
|
190
205
|
- !ruby/object:Gem::Version
|
|
191
|
-
version: '
|
|
206
|
+
version: '2.6'
|
|
192
207
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
208
|
requirements:
|
|
194
209
|
- - ">="
|
|
195
210
|
- !ruby/object:Gem::Version
|
|
196
211
|
version: '0'
|
|
197
212
|
requirements: []
|
|
198
|
-
|
|
199
|
-
rubygems_version: 2.7.6
|
|
213
|
+
rubygems_version: 3.1.2
|
|
200
214
|
signing_key:
|
|
201
215
|
specification_version: 4
|
|
202
216
|
summary: What description said
|