trifle-traces 1.0.1 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e70e8771d1d11a1b52b2d7bc059d05f6e6082f876f1e5b28440d914e91acf789
4
- data.tar.gz: 4ec2c1d3ed119b40166e7129e35f0ad70f5b9d5dab5a4cc20095f7265f3e2dc3
3
+ metadata.gz: 71988f5f7722c658d363948740d0d3ad30afe87ec89099e94d38cf714f5fbf86
4
+ data.tar.gz: ea1632cf0978b25879de9773e4ef4bd9cdd7b02600e005b2ef7debef85949f8e
5
5
  SHA512:
6
- metadata.gz: 8b9c3a99caecdf88a6d57d08ad4c0429b443122d5fbee1511978e629040805edb6e76599e366577cbb57734f2af163ed60e0029efc6b6726b66b24ec0ab00cbd
7
- data.tar.gz: '02838f426cba718cce2137db2f4ff3de1f2af44a31a73839de9ffe0701199d3fa83563ad98f4ccb73b8b3237776ea5958539d52e85ffe7d76b80b2daadac57cc'
6
+ metadata.gz: 07170f7fd333eac8f324e9d19b7545b6ef37d729d53d2f8acf3a4e708c20131ca0ed474a59fb77756f263d90d14d6ef97ccb63fefd57117ca9ee99c7468a833d
7
+ data.tar.gz: a7996fcffcc14f1b7f3f63f825fcd1dd87d441509f1b4e51746e0cdcd23048d6f250d1eb3407b4db1d757aa9bd25fe9bb85d08ac0503b82f2fa870f299746cd7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- trifle-traces (1.0.1)
4
+ trifle-traces (1.1.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -3,12 +3,13 @@
3
3
  module Trifle
4
4
  module Traces
5
5
  class Configuration
6
- attr_accessor :tracer_class, :callbacks, :bump_every
6
+ attr_accessor :tracer_class, :callbacks, :bump_every, :serializer_class
7
7
 
8
8
  def initialize
9
9
  @tracer_class = Trifle::Traces::Tracer::Hash
10
+ @serializer_class = Trifle::Traces::Serializer::Inspect
10
11
  @callbacks = { liftoff: [], bump: [], wrapup: [] }
11
- @bump_every = 15.seconds
12
+ @bump_every = 15 # seconds
12
13
  end
13
14
 
14
15
  def on_liftoff(tracer)
@@ -4,6 +4,8 @@ module Trifle
4
4
  module Traces
5
5
  module Middleware
6
6
  class Sidekiq
7
+ include ::Sidekiq::ServerMiddleware if const_defined?('::Sidekiq::ServerMiddleware')
8
+
7
9
  def call(_worker, job, _queue)
8
10
  Trifle::Traces.tracer = tracer_for(job: job)
9
11
  yield
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trifle
4
+ module Traces
5
+ module Serializer
6
+ class Inspect
7
+ def sanitize(payload)
8
+ payload.inspect
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+
5
+ module Trifle
6
+ module Traces
7
+ module Serializer
8
+ class Json
9
+ def sanitize(payload)
10
+ payload.to_json
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trifle
4
+ module Traces
5
+ module Serializer
6
+ class String
7
+ def sanitize(payload)
8
+ payload.to_s
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -3,13 +3,14 @@
3
3
  module Trifle
4
4
  module Traces
5
5
  module Tracer
6
- class Hash
6
+ class Hash # rubocop:disable Metrics/ClassLength
7
7
  attr_accessor :key, :meta, :data, :tags, :artifacts, :state, :ignore, :reference
8
8
 
9
9
  def initialize(key:, reference: nil, meta: nil, config: nil)
10
10
  @key = key
11
11
  @meta = meta
12
12
  @config = config
13
+ @result_serializer = config.serializer_class.new
13
14
  set_defaults!
14
15
 
15
16
  trace("Tracer has been initialized for #{key}")
@@ -63,11 +64,17 @@ module Trifle
63
64
 
64
65
  def dump_result(result)
65
66
  @data << {
66
- at: now, message: "#{@result_prefix}#{result.inspect}",
67
+ at: now, message: "#{@result_prefix}#{sanitize_result(result)}",
67
68
  state: :success, type: :raw
68
69
  }
69
70
  end
70
71
 
72
+ def sanitize_result(result)
73
+ @result_serializer.sanitize(result)
74
+ rescue StandardError
75
+ Trifle::Traces::Serializer::Inspect.sanitize(result)
76
+ end
77
+
71
78
  def now
72
79
  Time.now.to_i
73
80
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Trifle
4
4
  module Traces
5
- VERSION = '1.0.1'
5
+ VERSION = '1.1.1'
6
6
  end
7
7
  end
data/lib/trifle/traces.rb CHANGED
@@ -3,6 +3,9 @@
3
3
  require 'trifle/traces/configuration'
4
4
  require 'trifle/traces/tracer/hash'
5
5
  require 'trifle/traces/tracer/null'
6
+ require 'trifle/traces/serializer/inspect'
7
+ require 'trifle/traces/serializer/json'
8
+ require 'trifle/traces/serializer/string'
6
9
  require 'trifle/traces/middleware/rack'
7
10
  require 'trifle/traces/middleware/rails_controller'
8
11
  require 'trifle/traces/middleware/sidekiq'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trifle-traces
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jozef Vaclavik
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-16 00:00:00.000000000 Z
11
+ date: 2023-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,9 @@ files:
108
108
  - lib/trifle/traces/middleware/rack.rb
109
109
  - lib/trifle/traces/middleware/rails_controller.rb
110
110
  - lib/trifle/traces/middleware/sidekiq.rb
111
+ - lib/trifle/traces/serializer/inspect.rb
112
+ - lib/trifle/traces/serializer/json.rb
113
+ - lib/trifle/traces/serializer/string.rb
111
114
  - lib/trifle/traces/tracer/hash.rb
112
115
  - lib/trifle/traces/tracer/null.rb
113
116
  - lib/trifle/traces/version.rb