waterdrop 2.7.0.rc2 → 2.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|