karafka-web 0.9.0.rc3 → 0.9.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 +1 -1
- data/Gemfile.lock +15 -15
- data/config/locales/slogans.yml +6 -6
- data/karafka-web.gemspec +2 -2
- data/lib/karafka/web/management/actions/create_topics.rb +1 -1
- data/lib/karafka/web/pro/commanding/dispatcher.rb +22 -12
- data/lib/karafka/web/pro/ui/app.rb +3 -3
- data/lib/karafka/web/pro/ui/views/topics/_breadcrumbs.erb +4 -4
- data/lib/karafka/web/pro/ui/views/topics/_tabs.erb +6 -6
- data/lib/karafka/web/pro/ui/views/topics/_topic.erb +1 -1
- data/lib/karafka/web/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +7 -7
- 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: 44b742d8357ff3fe62967b1a64d7f5f44e8a3f8c7c4206dee13af6d537f50c28
|
4
|
+
data.tar.gz: 6c3c2509188837dc16e02c8870d79d75ed6bc9ee865ac99db7ae0ddfc81b5985
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f3b07cad8c42eecde5ece84cd536db986d69a4e392610ca0eeaf2fcd3f2e07beab58023c1f5b643a9ed6c7deffbc0c53378af7cf6232c4aba0cdbb8537905c7
|
7
|
+
data.tar.gz: b9cd0b3bec95ded4ecca47db054278d95d405ffc04c002c9bed0d0526c19ca7518fc7083d951c2a0be5e76c4398b44336e6e4de0edd0cd67fad0312ae206299a
|
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
|
# Karafka Web changelog
|
2
2
|
|
3
|
-
## 0.9.0 (
|
3
|
+
## 0.9.0 (2024-04-26)
|
4
4
|
- **[Breaking]** Drop Ruby `2.7` support.
|
5
5
|
- **[Feature]** Provide ability to stop and quiet running consumers (Pro).
|
6
6
|
- **[Feature]** Provide ability to probe (get backtraces) of any running consumer (Pro).
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
karafka-web (0.9.0
|
4
|
+
karafka-web (0.9.0)
|
5
5
|
erubi (~> 1.4)
|
6
|
-
karafka (>= 2.4.0
|
7
|
-
karafka-core (>= 2.4.0
|
6
|
+
karafka (>= 2.4.0, < 2.5.0)
|
7
|
+
karafka-core (>= 2.4.0, < 2.5.0)
|
8
8
|
roda (~> 3.68, >= 3.69)
|
9
9
|
tilt (~> 2.0)
|
10
10
|
|
@@ -35,17 +35,17 @@ GEM
|
|
35
35
|
ffi (1.16.3)
|
36
36
|
i18n (1.14.4)
|
37
37
|
concurrent-ruby (~> 1.0)
|
38
|
-
karafka (2.4.0
|
39
|
-
karafka-core (>= 2.4.0
|
40
|
-
waterdrop (>= 2.7.0
|
38
|
+
karafka (2.4.0)
|
39
|
+
karafka-core (>= 2.4.0, < 2.5.0)
|
40
|
+
waterdrop (>= 2.7.0, < 3.0.0)
|
41
41
|
zeitwerk (~> 2.3)
|
42
|
-
karafka-core (2.4.0
|
43
|
-
karafka-rdkafka (>= 0.15.0
|
44
|
-
karafka-rdkafka (0.15.0
|
42
|
+
karafka-core (2.4.0)
|
43
|
+
karafka-rdkafka (>= 0.15.0, < 0.16.0)
|
44
|
+
karafka-rdkafka (0.15.0)
|
45
45
|
ffi (~> 1.15)
|
46
46
|
mini_portile2 (~> 2.6)
|
47
47
|
rake (> 12)
|
48
|
-
mini_portile2 (2.8.
|
48
|
+
mini_portile2 (2.8.6)
|
49
49
|
minitest (5.22.3)
|
50
50
|
mutex_m (0.2.0)
|
51
51
|
rack (3.0.10)
|
@@ -54,8 +54,8 @@ GEM
|
|
54
54
|
rackup (0.2.3)
|
55
55
|
rack (>= 3.0.0.beta1)
|
56
56
|
webrick
|
57
|
-
rake (13.1
|
58
|
-
roda (3.
|
57
|
+
rake (13.2.1)
|
58
|
+
roda (3.79.0)
|
59
59
|
rack
|
60
60
|
rspec (3.13.0)
|
61
61
|
rspec-core (~> 3.13.0)
|
@@ -79,8 +79,8 @@ GEM
|
|
79
79
|
tilt (2.3.0)
|
80
80
|
tzinfo (2.0.6)
|
81
81
|
concurrent-ruby (~> 1.0)
|
82
|
-
waterdrop (2.7.0
|
83
|
-
karafka-core (>= 2.4.0
|
82
|
+
waterdrop (2.7.0)
|
83
|
+
karafka-core (>= 2.4.0, < 3.0.0)
|
84
84
|
zeitwerk (~> 2.3)
|
85
85
|
webrick (1.8.1)
|
86
86
|
zeitwerk (2.6.13)
|
@@ -99,4 +99,4 @@ DEPENDENCIES
|
|
99
99
|
simplecov
|
100
100
|
|
101
101
|
BUNDLED WITH
|
102
|
-
2.5.
|
102
|
+
2.5.9
|
data/config/locales/slogans.yml
CHANGED
@@ -40,19 +40,19 @@ en:
|
|
40
40
|
- "Looking for better message management? Enhanced Dead Letter Queue in Karafka Pro is key."
|
41
41
|
- "Concerned about Karafka licensing? Karafka Pro offers a commercial-friendly option."
|
42
42
|
- "Need coupled message operations? Transactions in Karafka Pro enhance data integrity."
|
43
|
-
- "Are you
|
44
|
-
- "Looking for flexible scheduling solutions? Karafka's Pro Periodic Jobs feature allows
|
43
|
+
- "Are you concerned about managing large data flows? Virtual Partitions in Karafka Pro simplify data processing, offering unparalleled efficiency and scalability."
|
44
|
+
- "Looking for flexible scheduling solutions? Karafka's Pro Periodic Jobs feature allows precise task timing and execution, enhancing your application's performance and reliability."
|
45
45
|
- "Need advanced routing capabilities? Routing Patterns in Karafka Pro provide dynamic message routing, improving your system's adaptability and efficiency."
|
46
|
-
- "Are you Seeking to control your workload? With Rate Limiting in Karafka Pro, you can manage and balance your system's load
|
46
|
+
- "Are you Seeking to control your workload? With Rate Limiting in Karafka Pro, you can effectively manage and balance your system's load, ensuring optimal performance under any conditions."
|
47
47
|
- "Need quick data access methods? The Iterator API in Karafka Pro provides efficient data retrieval methods."
|
48
|
-
- "Want more nuanced error handling? Discover Granular Backoffs in Karafka Pro,
|
48
|
+
- "Want more nuanced error handling? Discover Granular Backoffs in Karafka Pro, which allows for detailed control over retry mechanisms and error recovery processes."
|
49
49
|
- "Need a boost in data processing speed? Multiplexing in Karafka Pro enables parallel processing, significantly increasing throughput and reducing processing times."
|
50
50
|
- "Need advanced monitoring and management? Karafka Pro goes beyond basic features, offering comprehensive tools for detailed insight and control over your Kafka ecosystem."
|
51
51
|
- "Let's Build the Future of Karafka Together: Your Pro support brings next-gen features to life."
|
52
52
|
- "Karafka Pro: A Partnership for Progress. Your subscription drives our development."
|
53
|
-
- "With Karafka Pro, you're not just upgrading
|
53
|
+
- "With Karafka Pro, you're not just upgrading; you're fueling the future of efficient coding."
|
54
54
|
- "Dare to Support, Dare to Grow: Karafka Pro is your contribution to a boundary-pushing ecosystem."
|
55
|
-
- "
|
55
|
+
- "Invest in Karafka Pro to ensure ongoing enhancements and a dynamic, evolving platform."
|
56
56
|
- "Advance with us. Your Karafka Pro subscription is a stepping stone for collective innovation."
|
57
57
|
- "Together, we can push boundaries. Support Karafka's growth by upgrading to Pro."
|
58
58
|
- "Karafka's continuous improvement is powered by our community. Consider going Pro to contribute."
|
data/karafka-web.gemspec
CHANGED
@@ -17,8 +17,8 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.licenses = %w[LGPL-3.0 Commercial]
|
18
18
|
|
19
19
|
spec.add_dependency 'erubi', '~> 1.4'
|
20
|
-
spec.add_dependency 'karafka', '>= 2.4.0
|
21
|
-
spec.add_dependency 'karafka-core', '>= 2.4.0
|
20
|
+
spec.add_dependency 'karafka', '>= 2.4.0', '< 2.5.0'
|
21
|
+
spec.add_dependency 'karafka-core', '>= 2.4.0', '< 2.5.0'
|
22
22
|
spec.add_dependency 'roda', '~> 3.68', '>= 3.69'
|
23
23
|
spec.add_dependency 'tilt', '~> 2.0'
|
24
24
|
|
@@ -102,7 +102,7 @@ module Karafka
|
|
102
102
|
{
|
103
103
|
'cleanup.policy': 'delete',
|
104
104
|
'retention.ms': 7 * 24 * 60 * 60 * 1_000, # 7 days
|
105
|
-
'segment.ms':
|
105
|
+
'segment.ms': 24 * 60 * 60 * 1_000, # 1 day
|
106
106
|
'segment.bytes': 104_857_600 # 100MB
|
107
107
|
}
|
108
108
|
)
|
@@ -31,11 +31,9 @@ module Karafka
|
|
31
31
|
# @param process_id [String] id of the process. We use name instead of id only
|
32
32
|
# because in the web ui we work with the full name and it is easier. Since
|
33
33
|
def command(name, process_id)
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
partition: 0,
|
38
|
-
payload: {
|
34
|
+
produce(
|
35
|
+
process_id,
|
36
|
+
{
|
39
37
|
schema_version: SCHEMA_VERSION,
|
40
38
|
type: 'command',
|
41
39
|
command: {
|
@@ -45,7 +43,7 @@ module Karafka
|
|
45
43
|
process: {
|
46
44
|
id: process_id
|
47
45
|
}
|
48
|
-
}
|
46
|
+
}
|
49
47
|
)
|
50
48
|
end
|
51
49
|
|
@@ -55,11 +53,9 @@ module Karafka
|
|
55
53
|
# @param process_id [String] related process id
|
56
54
|
# @param command_name [String, Symbol] command that triggered this result
|
57
55
|
def result(result, process_id, command_name)
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
partition: 0,
|
62
|
-
payload: {
|
56
|
+
produce(
|
57
|
+
process_id,
|
58
|
+
{
|
63
59
|
schema_version: SCHEMA_VERSION,
|
64
60
|
type: 'result',
|
65
61
|
command: {
|
@@ -70,7 +66,7 @@ module Karafka
|
|
70
66
|
process: {
|
71
67
|
id: process_id
|
72
68
|
}
|
73
|
-
}
|
69
|
+
}
|
74
70
|
)
|
75
71
|
end
|
76
72
|
|
@@ -85,6 +81,20 @@ module Karafka
|
|
85
81
|
def commands_topic
|
86
82
|
::Karafka::Web.config.topics.consumers.commands
|
87
83
|
end
|
84
|
+
|
85
|
+
# Converts payload to json, compresses it and dispatches to Kafka
|
86
|
+
#
|
87
|
+
# @param payload [Hash] hash with payload
|
88
|
+
# @param process_id [String]
|
89
|
+
def produce(process_id, payload)
|
90
|
+
producer.produce_async(
|
91
|
+
topic: commands_topic,
|
92
|
+
key: process_id,
|
93
|
+
partition: 0,
|
94
|
+
payload: ::Zlib::Deflate.deflate(payload.to_json),
|
95
|
+
headers: { 'zlib' => 'true' }
|
96
|
+
)
|
97
|
+
end
|
88
98
|
end
|
89
99
|
end
|
90
100
|
end
|
@@ -262,15 +262,15 @@ module Karafka
|
|
262
262
|
r.on 'topics' do
|
263
263
|
controller = Controllers::TopicsController.new(params)
|
264
264
|
|
265
|
-
r.get 'config'
|
265
|
+
r.get String, 'config' do |topic_name|
|
266
266
|
controller.config(topic_name)
|
267
267
|
end
|
268
268
|
|
269
|
-
r.get 'replication'
|
269
|
+
r.get String, 'replication' do |topic_name|
|
270
270
|
controller.replication(topic_name)
|
271
271
|
end
|
272
272
|
|
273
|
-
r.get 'distribution'
|
273
|
+
r.get String, 'distribution' do |topic_name|
|
274
274
|
controller.distribution(topic_name)
|
275
275
|
end
|
276
276
|
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
<% if @topic %>
|
8
8
|
<li class="breadcrumb-item">
|
9
|
-
<a href="<%= root_path('topics',
|
9
|
+
<a href="<%= root_path('topics', @topic.topic_name, 'config') %>">
|
10
10
|
<%= @topic.topic_name %>
|
11
11
|
</a>
|
12
12
|
</li>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
<% if @configs %>
|
16
16
|
<li class="breadcrumb-item">
|
17
|
-
<a href="<%= root_path('topics',
|
17
|
+
<a href="<%= root_path('topics', @topic.topic_name, 'config') %>">
|
18
18
|
Configuration
|
19
19
|
</a>
|
20
20
|
</li>
|
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
<% if @partitions %>
|
24
24
|
<li class="breadcrumb-item">
|
25
|
-
<a href="<%= root_path('topics',
|
25
|
+
<a href="<%= root_path('topics', @topic.topic_name, 'replication') %>">
|
26
26
|
Replication
|
27
27
|
</a>
|
28
28
|
</li>
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
<% if @distribution %>
|
32
32
|
<li class="breadcrumb-item">
|
33
|
-
<a href="<%= root_path('topics',
|
33
|
+
<a href="<%= root_path('topics', @topic.topic_name, 'distribution') %>">
|
34
34
|
Distribution
|
35
35
|
</a>
|
36
36
|
</li>
|
@@ -5,8 +5,8 @@
|
|
5
5
|
<ul class="nav nav-tabs">
|
6
6
|
<li class="nav-item">
|
7
7
|
<a
|
8
|
-
class="nav-link <%= nav_class(
|
9
|
-
href="<%= root_path('topics',
|
8
|
+
class="nav-link <%= nav_class(end_with: 'config') %>"
|
9
|
+
href="<%= root_path('topics', @topic.topic_name, 'config') %>"
|
10
10
|
>
|
11
11
|
Configuration
|
12
12
|
</a>
|
@@ -14,8 +14,8 @@
|
|
14
14
|
|
15
15
|
<li class="nav-item">
|
16
16
|
<a
|
17
|
-
class="nav-link <%= nav_class(
|
18
|
-
href="<%= root_path('topics',
|
17
|
+
class="nav-link <%= nav_class(end_with: 'replication') %>"
|
18
|
+
href="<%= root_path('topics', @topic.topic_name, 'replication') %>"
|
19
19
|
>
|
20
20
|
Replication
|
21
21
|
</a>
|
@@ -23,8 +23,8 @@
|
|
23
23
|
|
24
24
|
<li class="nav-item">
|
25
25
|
<a
|
26
|
-
class="nav-link <%= nav_class(
|
27
|
-
href="<%= root_path('topics',
|
26
|
+
class="nav-link <%= nav_class(end_with: 'distribution') %>"
|
27
|
+
href="<%= root_path('topics', @topic.topic_name, 'distribution') %>"
|
28
28
|
>
|
29
29
|
Distribution
|
30
30
|
</a>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<div class="card" >
|
3
3
|
<div class="card-body p-2">
|
4
4
|
<p class="card-text mb-0 p-2">
|
5
|
-
<a href="<%= root_path('topics', 'config'
|
5
|
+
<a href="<%= root_path('topics', topic.topic_name, 'config') %>">
|
6
6
|
<%= topic.topic_name %> /
|
7
7
|
<%= topic.partition_count %>
|
8
8
|
</a>
|
data/lib/karafka/web/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: karafka-web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.0
|
4
|
+
version: 0.9.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: erubi
|
@@ -57,7 +57,7 @@ dependencies:
|
|
57
57
|
requirements:
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 2.4.0
|
60
|
+
version: 2.4.0
|
61
61
|
- - "<"
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: 2.5.0
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
requirements:
|
68
68
|
- - ">="
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 2.4.0
|
70
|
+
version: 2.4.0
|
71
71
|
- - "<"
|
72
72
|
- !ruby/object:Gem::Version
|
73
73
|
version: 2.5.0
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
requirements:
|
78
78
|
- - ">="
|
79
79
|
- !ruby/object:Gem::Version
|
80
|
-
version: 2.4.0
|
80
|
+
version: 2.4.0
|
81
81
|
- - "<"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: 2.5.0
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
requirements:
|
88
88
|
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 2.4.0
|
90
|
+
version: 2.4.0
|
91
91
|
- - "<"
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: 2.5.0
|
@@ -588,7 +588,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
588
588
|
- !ruby/object:Gem::Version
|
589
589
|
version: '0'
|
590
590
|
requirements: []
|
591
|
-
rubygems_version: 3.5.
|
591
|
+
rubygems_version: 3.5.9
|
592
592
|
signing_key:
|
593
593
|
specification_version: 4
|
594
594
|
summary: Karafka ecosystem Web UI interface
|
metadata.gz.sig
CHANGED
Binary file
|