karafka-web 0.2.3 → 0.2.5
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/CHANGELOG.md +10 -0
- data/Gemfile.lock +3 -3
- data/karafka-web.gemspec +1 -1
- data/lib/karafka/web/installer.rb +6 -1
- data/lib/karafka/web/tracking/consumers/listeners/processing.rb +4 -0
- data/lib/karafka/web/ui/controllers/cluster.rb +24 -4
- data/lib/karafka/web/ui/models/status.rb +16 -0
- data/lib/karafka/web/ui/views/cluster/_partition.erb +2 -0
- data/lib/karafka/web/ui/views/cluster/index.erb +6 -9
- data/lib/karafka/web/ui/views/shared/_pagination.erb +6 -0
- data/lib/karafka/web/ui/views/status/_warning.erb +14 -0
- data/lib/karafka/web/ui/views/status/show.erb +15 -0
- data/lib/karafka/web/ui/views/status/warnings/_pro_subscription.erb +9 -0
- data/lib/karafka/web/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +6 -4
- 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: 0f0eb0ab715c86da7538f8c83f3caa648f36663437ec1895c4a14fcd51d350d5
|
4
|
+
data.tar.gz: c40f2936ea80c059e94c9d911ad8765859fd737d90d12a43490feb5b1b2c4282
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcb9e83ad553937ff1de9c760d38e599de491a6866112c0ea55ba944d985026736392981c74e5c1d4b0e3c19157f6759b4deca8281c3a3ef5301724e51a79d6b
|
7
|
+
data.tar.gz: aa56092d3ea42cb02880f4caa32a1e741a989ccdc9491e65c7d787dd68cd713758df3dc06475de217b277f6bcde794a67047c5107ca5d127834bf90b4007ad42
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Karafka Web changelog
|
2
2
|
|
3
|
+
## 0.2.5 (2023-03-17)
|
4
|
+
- [Fix] Critical instrumentation async errors intercepted by Web don't have JID for job removal (#1366)
|
5
|
+
|
6
|
+
## 0.2.4 (2023-03-14)
|
7
|
+
- [Improvement] Paginate topics list in cluster info on every 100 partitions.
|
8
|
+
- [Improvement] Provide current page in the pagination.
|
9
|
+
- [Improvement] Report usage of Karafka Pro on the status page view.
|
10
|
+
- [Fix] Add missing three months limit on errors storage.
|
11
|
+
- [Maintenance] Exclude Karafka Web UI topics from declarative topics.
|
12
|
+
|
3
13
|
## 0.2.3 (2023-03-04)
|
4
14
|
- [Improvement] Snapshot current consumer tags upon consumer errors.
|
5
15
|
- [Improvement] Optimize exception message extraction from errors.
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
karafka-web (0.2.
|
4
|
+
karafka-web (0.2.5)
|
5
5
|
erubi (~> 1.4)
|
6
|
-
karafka (>= 2.0.
|
6
|
+
karafka (>= 2.0.35, < 3.0.0)
|
7
7
|
karafka-core (>= 2.0.12, < 3.0.0)
|
8
8
|
roda (~> 3.63)
|
9
9
|
tilt (~> 2.0)
|
@@ -26,7 +26,7 @@ GEM
|
|
26
26
|
ffi (1.15.5)
|
27
27
|
i18n (1.12.0)
|
28
28
|
concurrent-ruby (~> 1.0)
|
29
|
-
karafka (2.0.
|
29
|
+
karafka (2.0.35)
|
30
30
|
karafka-core (>= 2.0.12, < 3.0.0)
|
31
31
|
thor (>= 0.20)
|
32
32
|
waterdrop (>= 2.4.10, < 3.0.0)
|
data/karafka-web.gemspec
CHANGED
@@ -17,7 +17,7 @@ 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.0.
|
20
|
+
spec.add_dependency 'karafka', '>= 2.0.35', '< 3.0.0'
|
21
21
|
spec.add_dependency 'karafka-core', '>= 2.0.12', '< 3.0.0'
|
22
22
|
spec.add_dependency 'roda', '~> 3.63'
|
23
23
|
spec.add_dependency 'tilt', '~> 2.0'
|
@@ -45,6 +45,7 @@ module Karafka
|
|
45
45
|
consumer_group ::Karafka::Web.config.processing.consumer_group do
|
46
46
|
# Topic we listen on to materialize the states
|
47
47
|
topic ::Karafka::Web.config.topics.consumers.reports do
|
48
|
+
config(active: false)
|
48
49
|
active ::Karafka::Web.config.processing.active
|
49
50
|
# Since we materialize state in intervals, we can poll for half of this time without
|
50
51
|
# impacting the reporting responsiveness
|
@@ -58,11 +59,13 @@ module Karafka
|
|
58
59
|
# We define those two here without consumption, so Web understands how to deserialize
|
59
60
|
# them when used / viewed
|
60
61
|
topic ::Karafka::Web.config.topics.consumers.states do
|
62
|
+
config(active: false)
|
61
63
|
active false
|
62
64
|
deserializer web_deserializer
|
63
65
|
end
|
64
66
|
|
65
67
|
topic ::Karafka::Web.config.topics.errors do
|
68
|
+
config(active: false)
|
66
69
|
active false
|
67
70
|
deserializer web_deserializer
|
68
71
|
end
|
@@ -126,7 +129,9 @@ module Karafka
|
|
126
129
|
::Karafka::Admin.create_topic(
|
127
130
|
errors_topic,
|
128
131
|
1,
|
129
|
-
replication_factor
|
132
|
+
replication_factor,
|
133
|
+
# Remove really old errors (older than 3 months just to preserve space)
|
134
|
+
{ 'retention.ms': 3 * 31 * 24 * 60 * 60 * 1_000 }
|
130
135
|
)
|
131
136
|
end
|
132
137
|
end
|
@@ -10,13 +10,33 @@ module Karafka
|
|
10
10
|
def index
|
11
11
|
@cluster_info = Karafka::Admin.cluster_info
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
partitions_total = []
|
14
|
+
|
15
|
+
displayable_topics(@cluster_info).each do |topic|
|
16
|
+
topic[:partitions].each do |partition|
|
17
|
+
partitions_total << partition.merge(topic: topic)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
@partitions, @next_page = Ui::Lib::PaginateArray.new.call(
|
22
|
+
partitions_total,
|
23
|
+
@params.current_page
|
24
|
+
)
|
17
25
|
|
18
26
|
respond
|
19
27
|
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
# @param cluster_info [Rdkafka::Metadata] cluster metadata
|
32
|
+
# @return [Array<Hash>] array with topics to be displayed sorted in an alphabetical
|
33
|
+
# order
|
34
|
+
def displayable_topics(cluster_info)
|
35
|
+
cluster_info
|
36
|
+
.topics
|
37
|
+
.reject { |topic| topic[:topic_name] == '__consumer_offsets' }
|
38
|
+
.sort_by { |topic| topic[:topic_name] }
|
39
|
+
end
|
20
40
|
end
|
21
41
|
end
|
22
42
|
end
|
@@ -118,6 +118,22 @@ module Karafka
|
|
118
118
|
)
|
119
119
|
end
|
120
120
|
|
121
|
+
# @return [Status::Step] is Pro enabled with all of its features.
|
122
|
+
# @note It's not an error not to have it but we want to warn, that some of the features
|
123
|
+
# may not work without Pro.
|
124
|
+
def pro_subscription
|
125
|
+
status = if state_calculation.success?
|
126
|
+
::Karafka.pro? ? :success : :warning
|
127
|
+
else
|
128
|
+
:halted
|
129
|
+
end
|
130
|
+
|
131
|
+
Step.new(
|
132
|
+
status,
|
133
|
+
nil
|
134
|
+
)
|
135
|
+
end
|
136
|
+
|
121
137
|
private
|
122
138
|
|
123
139
|
# @return [String] consumers states topic name
|
@@ -56,15 +56,12 @@
|
|
56
56
|
</tr>
|
57
57
|
</thead>
|
58
58
|
<tbody>
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
)
|
66
|
-
%>
|
67
|
-
<% end %>
|
59
|
+
<%==
|
60
|
+
each_partial(
|
61
|
+
@partitions,
|
62
|
+
'cluster/partition'
|
63
|
+
)
|
64
|
+
%>
|
68
65
|
</tbody>
|
69
66
|
</table>
|
70
67
|
</div>
|
@@ -9,6 +9,12 @@
|
|
9
9
|
</a>
|
10
10
|
</li>
|
11
11
|
|
12
|
+
<li class="page-item active disabled">
|
13
|
+
<a class="page-link" href="<%= current_path(page: @current_page) %>">
|
14
|
+
<span><%= @current_page %></span>
|
15
|
+
</a>
|
16
|
+
</li>
|
17
|
+
|
12
18
|
<li class="page-item <%= 'disabled' unless @next_page %>">
|
13
19
|
<a class="page-link" href="<%= current_path(page: @next_page) %>">
|
14
20
|
<span>Next »</span>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="card border-warning mb-3">
|
2
|
+
<div class="card-header text-bg-warning">
|
3
|
+
<span>
|
4
|
+
<%= title %>
|
5
|
+
</span>
|
6
|
+
|
7
|
+
<span class="float-end">
|
8
|
+
<span class="badge text-bg-light">Warning</span>
|
9
|
+
</span>
|
10
|
+
</div>
|
11
|
+
<div class="card-body">
|
12
|
+
<%== description %>
|
13
|
+
</div>
|
14
|
+
</div>
|
@@ -89,6 +89,21 @@
|
|
89
89
|
)
|
90
90
|
%>
|
91
91
|
|
92
|
+
<%==
|
93
|
+
partial(
|
94
|
+
"status/#{@status.pro_subscription.to_s}",
|
95
|
+
locals: {
|
96
|
+
title: 'Karafka Pro subscription',
|
97
|
+
description: partial(
|
98
|
+
'status/warnings/pro_subscription',
|
99
|
+
locals: {
|
100
|
+
details: @status.pro_subscription.details
|
101
|
+
}
|
102
|
+
)
|
103
|
+
}
|
104
|
+
)
|
105
|
+
%>
|
106
|
+
|
92
107
|
</div>
|
93
108
|
</div>
|
94
109
|
</div>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<p>
|
2
|
+
You are using the OSS version of the Karafka ecosystem, and some of the Karafka ecosystem features are unavailable in the OSS version.
|
3
|
+
</p>
|
4
|
+
|
5
|
+
<p class="mb-0">
|
6
|
+
Please help us make the Karafka ecosystem better by subscribing to our
|
7
|
+
<a target="_blank" href="https://karafka.io/#become-pro">Pro</a>
|
8
|
+
offering.
|
9
|
+
</p>
|
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.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maciej Mensfeld
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
Qf04B9ceLUaC4fPVEz10FyobjaFoY4i32xRto3XnrzeAgfEe4swLq8bQsR3w/EF3
|
36
36
|
MGU0FeSV2Yj7Xc2x/7BzLK8xQn5l7Yy75iPF+KP3vVmDHnNl
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2023-03-
|
38
|
+
date: 2023-03-17 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.0.
|
60
|
+
version: 2.0.35
|
61
61
|
- - "<"
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: 3.0.0
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
requirements:
|
68
68
|
- - ">="
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 2.0.
|
70
|
+
version: 2.0.35
|
71
71
|
- - "<"
|
72
72
|
- !ruby/object:Gem::Version
|
73
73
|
version: 3.0.0
|
@@ -314,6 +314,7 @@ files:
|
|
314
314
|
- lib/karafka/web/ui/views/status/_failure.erb
|
315
315
|
- lib/karafka/web/ui/views/status/_halted.erb
|
316
316
|
- lib/karafka/web/ui/views/status/_success.erb
|
317
|
+
- lib/karafka/web/ui/views/status/_warning.erb
|
317
318
|
- lib/karafka/web/ui/views/status/failures/_connection.erb
|
318
319
|
- lib/karafka/web/ui/views/status/failures/_initial_state.erb
|
319
320
|
- lib/karafka/web/ui/views/status/failures/_live_reporting.erb
|
@@ -321,6 +322,7 @@ files:
|
|
321
322
|
- lib/karafka/web/ui/views/status/failures/_state_calculation.erb
|
322
323
|
- lib/karafka/web/ui/views/status/failures/_topics.erb
|
323
324
|
- lib/karafka/web/ui/views/status/show.erb
|
325
|
+
- lib/karafka/web/ui/views/status/warnings/_pro_subscription.erb
|
324
326
|
- lib/karafka/web/version.rb
|
325
327
|
homepage: https://karafka.io
|
326
328
|
licenses:
|
metadata.gz.sig
CHANGED
Binary file
|