sbmt-kafka_consumer 3.3.2 → 3.4.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: 7918960487cca5e2c992726b0ff8b431e855abb11775645ea5562de36aea17e1
4
- data.tar.gz: 526a797e57595ad90658b21c3a419b2e21884918c66669e922e10f0cfe11d696
3
+ metadata.gz: af93b22c9aee1651414e9403f9de60ffbf2c2d85288a1b5f104f9b7b3399d405
4
+ data.tar.gz: 3e5a22909901810fee2becfd11a6564575a1c801311eac7e3a47f904bd30a600
5
5
  SHA512:
6
- metadata.gz: 529347ea9e8e886e442f8bbde28ce1a801691a200f735936aa032364418d35799a3c601df28e30c897cec71049f5e4ab146cfeaf014257c41715e0c818d9ded8
7
- data.tar.gz: 3d1a36773274f20fedb611c644cac723826216d4b730027f0267cf5cd3ced59df111e7d5dc33c61416d399ecb528003f03416479e384a4f185a59ea40ee03388
6
+ metadata.gz: 91720a7822537c66443713a12b8039e1525c09e9c5fc25aa55d91246081b566c91512a51a3595207ab137089db08468810cab9ad1d94fd32a63c97fcc6aef35b
7
+ data.tar.gz: 6378ea65496f58f5d9dd1543b9d90a181fef5ff6f3ea254f940298b83c4a8deb299de286beacc8ea258a153dea3d135566a2378f0510857ef515da6b34948ab3
data/CHANGELOG.md CHANGED
@@ -13,6 +13,22 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
13
13
 
14
14
  ### Fixed
15
15
 
16
+ ## [3.4.1] - 2025-03-06
17
+
18
+ ### Fixed
19
+ - reset consumer offset lag metric to zero after cg rebalance to avoid reporting stale metrics
20
+
21
+ ## [3.4.0] - 2025-01-27
22
+
23
+ ### Added
24
+
25
+ - Added support for warning log level in LoggerListener error handling
26
+ - Consider duplicate messages as warnings in logs
27
+
28
+ ### Changed
29
+
30
+ ### Fixed
31
+
16
32
  ## [3.3.2] - 2024-12-27
17
33
 
18
34
  ### Fixed
@@ -32,20 +48,20 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
32
48
  - inheritance of kafka settings for topic
33
49
 
34
50
  ### Fixed
35
-
51
+
36
52
  - support `karafka 2.4.12`
37
53
  - properly report metrics for consumer offset lag when partition fetch assignment was lost
38
54
 
39
55
  ## [3.2.2] - 2024-09-23
40
56
 
41
57
  ### Fixed
42
-
58
+
43
59
  - log OTEL `trace_id`
44
60
 
45
61
  ## [3.2.1] - 2024-09-20
46
62
 
47
63
  ### Fixed
48
-
64
+
49
65
  - Limit Karafka version to less than 2.4.12 since `bootstrap.servers` has been made required
50
66
 
51
67
  ## [3.2.0] - 2024-09-17
@@ -138,7 +138,8 @@ module Sbmt
138
138
  error: error,
139
139
  caller: self,
140
140
  message: message,
141
- type: "consumer.base.consume_one"
141
+ type: "consumer.base.consume_one",
142
+ log_level: :error
142
143
  )
143
144
  end
144
145
 
@@ -56,7 +56,7 @@ module Sbmt
56
56
  item = result.success
57
57
  item.track_metrics_after_consume if item.respond_to?(:track_metrics_after_consume)
58
58
  rescue ActiveRecord::RecordNotUnique
59
- instrument_error("Skipped duplicate message for #{inbox_name}, message_uuid: #{message_uuid(message)}", message, "duplicate")
59
+ instrument_warn("Skipped duplicate message for #{inbox_name}, message_uuid: #{message_uuid(message)}", message, "duplicate")
60
60
  rescue => ex
61
61
  if skip_on_error
62
62
  logger.warn("skipping unprocessable message for #{inbox_name}, message_uuid: #{message_uuid(message)}")
@@ -108,7 +108,7 @@ module Sbmt
108
108
  inbox_item_class.box_name
109
109
  end
110
110
 
111
- def instrument_error(error, message, status = "failure")
111
+ def instrument_error(error, message, status = "failure", log_level: :error)
112
112
  ::Sbmt::KafkaConsumer.monitor.instrument(
113
113
  "error.occurred",
114
114
  error: error,
@@ -117,9 +117,14 @@ module Sbmt
117
117
  inbox_name: inbox_name,
118
118
  event_name: event_name,
119
119
  status: status,
120
- type: "consumer.inbox.consume_one"
120
+ type: "consumer.inbox.consume_one",
121
+ log_level: log_level
121
122
  )
122
123
  end
124
+
125
+ def instrument_warn(*args, **kwargs)
126
+ instrument_error(*args, **kwargs, log_level: :warn)
127
+ end
123
128
  end
124
129
  end
125
130
  end
@@ -6,6 +6,7 @@ module Sbmt
6
6
  class LoggerListener < Karafka::Instrumentation::LoggerListener
7
7
  include ListenerHelper
8
8
  CUSTOM_ERROR_TYPES = %w[consumer.base.consume_one consumer.inbox.consume_one].freeze
9
+ VALID_LOG_LEVELS = %i[error warn].freeze
9
10
 
10
11
  def on_error_occurred(event)
11
12
  type = event[:type]
@@ -23,7 +24,12 @@ module Sbmt
23
24
  stacktrace: log_backtrace(error),
24
25
  **tags
25
26
  ) do
26
- logger.error(error_message(error))
27
+ log_level = event[:log_level] || :error
28
+ if VALID_LOG_LEVELS.include?(log_level)
29
+ logger.public_send(log_level, error_message(error))
30
+ else
31
+ raise "Invalid log level #{log_level}"
32
+ end
27
33
  end
28
34
  end
29
35
 
@@ -165,7 +165,10 @@ module Sbmt
165
165
  offset_lag = partition_statistics["consumer_lag"]
166
166
  next if offset_lag == -1
167
167
 
168
- next unless partition_owned?(partition_statistics)
168
+ unless partition_owned?(partition_statistics)
169
+ # reset offset lag after cg rebalance
170
+ offset_lag = 0
171
+ end
169
172
 
170
173
  Yabeda.kafka_consumer.offset_lag
171
174
  .set({
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sbmt
4
4
  module KafkaConsumer
5
- VERSION = "3.3.2"
5
+ VERSION = "3.4.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sbmt-kafka_consumer
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.2
4
+ version: 3.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kuper Ruby-Platform Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-27 00:00:00.000000000 Z
11
+ date: 2025-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -565,7 +565,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
565
565
  - !ruby/object:Gem::Version
566
566
  version: '0'
567
567
  requirements: []
568
- rubygems_version: 3.1.6
568
+ rubygems_version: 3.3.7
569
569
  signing_key:
570
570
  specification_version: 4
571
571
  summary: Ruby gem for consuming Kafka messages