event_tracer 0.6.3 → 0.6.4

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: 4e70e560e8704ed46e36010878ec3419edbf1b0f6674c82b92a28fbe17ea0caf
4
- data.tar.gz: 6c2c3fa61d240cd7ea67460042125a030576f44797c002b3359a8fb547cf8af4
3
+ metadata.gz: a3b77cb55116888ad3cb3e66622ff87d9791a8641dee56beee734bf5e64a050b
4
+ data.tar.gz: 3c74072636c0e31a5850ca35266b3a705bd7518249275abfdaff8991ceae0465
5
5
  SHA512:
6
- metadata.gz: cc24ff64d2d48630c583a62fe53e9d1e328ad8fd4eed07a22fd24efda21b8f4478bf9f1f3736c54f50437a088cc0bae374d7f825e237275b06ef3ffd6951e438
7
- data.tar.gz: 66b76929a73eddc3e136874729c96e8e9b3cda82131b6799d92c4266445ebc3af4fa2c2985c2698d84fe9f541d37ceecf1e9d80ff051bcece76fe93866e84c03
6
+ metadata.gz: '09696b988a9390a7523adc87ad095c2d82b9b6baffde6c8c95281f7866c91080f4f99a93fee3d9b0e8e31d50e04c3e160ba7d0f5a26b35d2dc4ab56c160f5d44'
7
+ data.tar.gz: da009166c659976df0ca2f74b86f72dba0af7b481642887d675cc2f894ab890c3e0accafe6122cfa97cc3adaa9032171af47b49ef8b8e826c7e6704441d7cdd4
@@ -8,7 +8,7 @@ require_relative './metric_logger'
8
8
  # EventTracer::AppsignalLogger.new(Appsignal, allowed_tags: ['tag_1', 'tag_2'])
9
9
  #
10
10
  # appsignal_logger.info metrics: [:counter_1, :counter_2]
11
- # appsignal_logger.info metrics: { counter_1: { type: :counter, value: 1 }, gauce_2: { type: :gauce, value: 10 } }
11
+ # appsignal_logger.info metrics: { counter_1: { type: :counter, value: 1 }, gauge_2: { type: :gauge, value: 10 } }
12
12
  module EventTracer
13
13
  class AppsignalLogger < MetricLogger
14
14
 
@@ -16,6 +16,29 @@ module EventTracer
16
16
  end
17
17
  end
18
18
 
19
+ # Flushes all remaining payloads in the buffer immediately.
20
+ # Intended to be called during shutdown to avoid losing buffered messages.
21
+ def flush
22
+ payloads = buffer.flush
23
+
24
+ return LogResult.new(true) if payloads.nil? || payloads.empty?
25
+
26
+ execute_payload(payloads)
27
+
28
+ LogResult.new(true)
29
+ rescue EventTracer::ErrorWithPayload => e
30
+ EventTracer.warn(
31
+ loggers: %i[base],
32
+ action: self.class.name,
33
+ app: EventTracer::Config.config.app_name,
34
+ error: e.class.name,
35
+ message: e.message,
36
+ payload: e.payload
37
+ )
38
+
39
+ LogResult.new(false, e)
40
+ end
41
+
19
42
  private
20
43
 
21
44
  attr_reader :buffer, :log_processor, :worker
@@ -37,7 +60,7 @@ module EventTracer
37
60
  filtered_payloads = filter_invalid_data(payloads)
38
61
 
39
62
  EventTracer.warn(
40
- loggers: %i(base),
63
+ loggers: %i[base],
41
64
  action: self.class.name,
42
65
  app: EventTracer::Config.config.app_name,
43
66
  error: e.class.name,
@@ -46,12 +69,16 @@ module EventTracer
46
69
  )
47
70
 
48
71
  worker.perform_async(filtered_payloads) if filtered_payloads.any?
49
- rescue StandardError => error
50
- raise EventTracer::ErrorWithPayload.new(error, payloads)
72
+ rescue StandardError => e
73
+ raise EventTracer::ErrorWithPayload.new(e, payloads)
51
74
  end
52
75
 
53
76
  def filter_invalid_data(payloads)
54
- payloads.select { |payload| payload.to_json rescue false }
77
+ payloads.select do |payload|
78
+ payload.to_json
79
+ rescue StandardError
80
+ false
81
+ end
55
82
  end
56
83
  end
57
84
  end
@@ -3,11 +3,11 @@ module EventTracer
3
3
  class DefaultProcessor
4
4
  def call(log_type, action:, message:, args:)
5
5
  args.merge(
6
- timestamp: Time.now.utc.iso8601(6),
7
- action: action,
8
- message: message,
9
- log_type: log_type,
10
- app: EventTracer::Config.config.app_name
6
+ 'timestamp' => Time.now.utc.iso8601(6),
7
+ 'action' => action,
8
+ 'message' => message,
9
+ 'log_type' => log_type.to_s,
10
+ 'app' => EventTracer::Config.config.app_name
11
11
  )
12
12
  end
13
13
  end
@@ -1,3 +1,3 @@
1
1
  module EventTracer
2
- VERSION = '0.6.3'.freeze
2
+ VERSION = '0.6.4'.freeze
3
3
  end
data/lib/event_tracer.rb CHANGED
@@ -25,6 +25,14 @@ module EventTracer
25
25
  end
26
26
  end
27
27
 
28
+ def self.flush_all
29
+ @loggers.map do |_code, logger|
30
+ next unless logger.is_a?(EventTracer::BufferedLogger)
31
+
32
+ logger.flush
33
+ end
34
+ end
35
+
28
36
  private
29
37
 
30
38
  def self.send_log_messages(log_type, loggers, args)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: event_tracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - melvrickgoh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-28 00:00:00.000000000 Z
11
+ date: 2025-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  - !ruby/object:Gem::Version
126
126
  version: '0'
127
127
  requirements: []
128
- rubygems_version: 3.2.3
128
+ rubygems_version: 3.2.33
129
129
  signing_key:
130
130
  specification_version: 4
131
131
  summary: Thin wrapper for formatted logging/ metric services to be used as a single