waterdrop 2.7.0.rc2 → 2.7.0
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
- checksums.yaml.gz.sig +0 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +2 -1
- data/Gemfile.lock +8 -8
- data/lib/waterdrop/instrumentation/callbacks/delivery.rb +11 -0
- data/lib/waterdrop/instrumentation/callbacks/error.rb +11 -0
- data/lib/waterdrop/instrumentation/callbacks/oauthbearer_token_refresh.rb +11 -0
- data/lib/waterdrop/instrumentation/callbacks/statistics.rb +11 -0
- data/lib/waterdrop/version.rb +1 -1
- data/waterdrop.gemspec +1 -1
- data.tar.gz.sig +0 -0
- metadata +5 -5
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5308262b20199b02906783387f294a58beb01fa8850db3db19bb7be39395121a
|
4
|
+
data.tar.gz: d35c18c4b7352c20c8eeb623f54581476f108cb656912a571ef067cc796e884c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac6693e44080e4edf9b201a5e735b283bb7fa81d36ae10bf0d7501faa00e5f099917144966beb7febc4b95c50ed78feb7c659e59753a78e4495111e3d00af322
|
7
|
+
data.tar.gz: 100439b79cc59bd668f40e4fed8086c49f13bfedebb68409981d8c70a39c692eb2b4f453d9a45c367f2612578b2c6ac8303bd56acdbbd27d3a02d5aab803d57a
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.3.
|
1
|
+
3.3.1
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# WaterDrop changelog
|
2
2
|
|
3
|
-
## 2.7.0 (
|
3
|
+
## 2.7.0 (2024-04-26)
|
4
4
|
|
5
5
|
This release contains **BREAKING** changes. Make sure to read and apply upgrade notes.
|
6
6
|
|
@@ -12,6 +12,7 @@ This release contains **BREAKING** changes. Make sure to read and apply upgrade
|
|
12
12
|
- **[Breaking]** Do **not** validate or morph (via middleware) messages added to the buffer prior to `flush_sync` or `flush_async`.
|
13
13
|
- [Enhancement] Provide `WaterDrop::Producer#transaction?` that returns only when producer has an active transaction running.
|
14
14
|
- [Enhancement] Introduce `instrument_on_wait_queue_full` flag (defaults to `true`) to be able to configure whether non critical (retryable) queue full errors should be instrumented in the error pipeline. Useful when building high-performance pipes with WaterDrop queue retry backoff as a throttler.
|
15
|
+
- [Enhancement] Protect critical `rdkafka` thread executable code sections.
|
15
16
|
- [Enhancement] Treat the queue size as a gauge rather than a cumulative stat (isturdy).
|
16
17
|
- [Fix] Fix a case where purge on non-initialized client would crash.
|
17
18
|
- [Fix] Middlewares run twice when using buffered produce.
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
waterdrop (2.7.0
|
5
|
-
karafka-core (>= 2.4.0
|
4
|
+
waterdrop (2.7.0)
|
5
|
+
karafka-core (>= 2.4.0, < 3.0.0)
|
6
6
|
zeitwerk (~> 2.3)
|
7
7
|
|
8
8
|
GEM
|
@@ -31,16 +31,16 @@ GEM
|
|
31
31
|
ffi (1.16.3)
|
32
32
|
i18n (1.14.4)
|
33
33
|
concurrent-ruby (~> 1.0)
|
34
|
-
karafka-core (2.4.0
|
35
|
-
karafka-rdkafka (>= 0.15.0
|
36
|
-
karafka-rdkafka (0.15.0
|
34
|
+
karafka-core (2.4.0)
|
35
|
+
karafka-rdkafka (>= 0.15.0, < 0.16.0)
|
36
|
+
karafka-rdkafka (0.15.0)
|
37
37
|
ffi (~> 1.15)
|
38
38
|
mini_portile2 (~> 2.6)
|
39
39
|
rake (> 12)
|
40
|
-
mini_portile2 (2.8.
|
40
|
+
mini_portile2 (2.8.6)
|
41
41
|
minitest (5.22.3)
|
42
42
|
mutex_m (0.2.0)
|
43
|
-
rake (13.1
|
43
|
+
rake (13.2.1)
|
44
44
|
rspec (3.13.0)
|
45
45
|
rspec-core (~> 3.13.0)
|
46
46
|
rspec-expectations (~> 3.13.0)
|
@@ -76,4 +76,4 @@ DEPENDENCIES
|
|
76
76
|
waterdrop!
|
77
77
|
|
78
78
|
BUNDLED WITH
|
79
|
-
2.5.
|
79
|
+
2.5.9
|
@@ -44,6 +44,17 @@ module WaterDrop
|
|
44
44
|
else
|
45
45
|
instrument_error(delivery_report)
|
46
46
|
end
|
47
|
+
# This runs from the rdkafka thread, thus we want to safe-guard it and prevent absolute
|
48
|
+
# crashes even if the instrumentation code fails. If it would bubble-up, it could crash
|
49
|
+
# the rdkafka background thread
|
50
|
+
rescue StandardError => e
|
51
|
+
@monitor.instrument(
|
52
|
+
'error.occurred',
|
53
|
+
caller: self,
|
54
|
+
error: e,
|
55
|
+
producer_id: @producer_id,
|
56
|
+
type: 'callbacks.delivery.error'
|
57
|
+
)
|
47
58
|
end
|
48
59
|
|
49
60
|
private
|
@@ -32,6 +32,17 @@ module WaterDrop
|
|
32
32
|
producer_id: @producer_id,
|
33
33
|
type: 'librdkafka.error'
|
34
34
|
)
|
35
|
+
# This runs from the rdkafka thread, thus we want to safe-guard it and prevent absolute
|
36
|
+
# crashes even if the instrumentation code fails. If it would bubble-up, it could crash
|
37
|
+
# the rdkafka background thread
|
38
|
+
rescue StandardError => e
|
39
|
+
@monitor.instrument(
|
40
|
+
'error.occurred',
|
41
|
+
caller: self,
|
42
|
+
error: e,
|
43
|
+
producer_id: @producer_id,
|
44
|
+
type: 'callbacks.error.error'
|
45
|
+
)
|
35
46
|
end
|
36
47
|
end
|
37
48
|
end
|
@@ -31,6 +31,17 @@ module WaterDrop
|
|
31
31
|
bearer: @bearer,
|
32
32
|
caller: self
|
33
33
|
)
|
34
|
+
# This runs from the rdkafka thread, thus we want to safe-guard it and prevent absolute
|
35
|
+
# crashes even if the instrumentation code fails. If it would bubble-up, it could crash
|
36
|
+
# the rdkafka background thread
|
37
|
+
rescue StandardError => e
|
38
|
+
@monitor.instrument(
|
39
|
+
'error.occurred',
|
40
|
+
caller: self,
|
41
|
+
error: e,
|
42
|
+
producer_id: @producer_id,
|
43
|
+
type: 'callbacks.oauthbearer_token_refresh.error'
|
44
|
+
)
|
34
45
|
end
|
35
46
|
end
|
36
47
|
end
|
@@ -34,6 +34,17 @@ module WaterDrop
|
|
34
34
|
producer_id: @producer_id,
|
35
35
|
statistics: @statistics_decorator.call(statistics)
|
36
36
|
)
|
37
|
+
# This runs from the rdkafka thread, thus we want to safe-guard it and prevent absolute
|
38
|
+
# crashes even if the instrumentation code fails. If it would bubble-up, it could crash
|
39
|
+
# the rdkafka background thread
|
40
|
+
rescue StandardError => e
|
41
|
+
@monitor.instrument(
|
42
|
+
'error.occurred',
|
43
|
+
caller: self,
|
44
|
+
error: e,
|
45
|
+
producer_id: @producer_id,
|
46
|
+
type: 'callbacks.statistics.error'
|
47
|
+
)
|
37
48
|
end
|
38
49
|
end
|
39
50
|
end
|
data/lib/waterdrop/version.rb
CHANGED
data/waterdrop.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.description = spec.summary
|
17
17
|
spec.license = 'MIT'
|
18
18
|
|
19
|
-
spec.add_dependency 'karafka-core', '>= 2.4.0
|
19
|
+
spec.add_dependency 'karafka-core', '>= 2.4.0', '< 3.0.0'
|
20
20
|
spec.add_dependency 'zeitwerk', '~> 2.3'
|
21
21
|
|
22
22
|
spec.required_ruby_version = '>= 3.0.0'
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: waterdrop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.7.0
|
4
|
+
version: 2.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maciej Mensfeld
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
AnG1dJU+yL2BK7vaVytLTstJME5mepSZ46qqIJXMuWob/YPDmVaBF39TDSG9e34s
|
36
36
|
msG3BiCqgOgHAnL23+CN3Rt8MsuRfEtoTKpJVcCfoEoNHOkc
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2024-04-
|
38
|
+
date: 2024-04-26 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: karafka-core
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
requirements:
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 2.4.0
|
46
|
+
version: 2.4.0
|
47
47
|
- - "<"
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: 3.0.0
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
requirements:
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 2.4.0
|
56
|
+
version: 2.4.0
|
57
57
|
- - "<"
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: 3.0.0
|
@@ -152,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '0'
|
154
154
|
requirements: []
|
155
|
-
rubygems_version: 3.5.
|
155
|
+
rubygems_version: 3.5.9
|
156
156
|
signing_key:
|
157
157
|
specification_version: 4
|
158
158
|
summary: Kafka messaging made easy!
|
metadata.gz.sig
CHANGED
Binary file
|