karafka-web 0.2.0 → 0.2.1
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/CHANGELOG.md +3 -0
- data/Gemfile.lock +1 -1
- data/lib/karafka/web/ui/models/job.rb +4 -0
- data/lib/karafka/web/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +1 -9
- metadata.gz.sig +0 -0
- data/lib/karafka/web/ui/views/consumers/consumer/_consumer_group.erb +0 -109
- data/lib/karafka/web/ui/views/consumers/consumer/_job.erb +0 -26
- data/lib/karafka/web/ui/views/consumers/consumer/_metrics.erb +0 -126
- data/lib/karafka/web/ui/views/consumers/consumer/_no_jobs.erb +0 -9
- data/lib/karafka/web/ui/views/consumers/consumer/_no_subscriptions.erb +0 -9
- data/lib/karafka/web/ui/views/consumers/consumer/_partition.erb +0 -32
- data/lib/karafka/web/ui/views/consumers/consumer/_stopped.erb +0 -10
- data/lib/karafka/web/ui/views/consumers/consumer/_tabs.erb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 020c1e94ca0603044d2260ebe796a6509432b7ec100aadc7505a6de85e5cf341
|
4
|
+
data.tar.gz: 71f6a22eb9bccbaa9bb9f4005d79667b83d486e13f59d966f3ccdaf049aff0e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c480170adb20bcf51abe1be667343c198a09dbeb5280443cbdcbfe60f917a44ba0cdb8b8d3dd558c4a102299c9e131f902958f312f11f392329b3bae440e57b7
|
7
|
+
data.tar.gz: 16ca1295589f06cf7ebd7804353a6ccaf08d77d7cce1ef7046a763dd5b8f2f0abf248c4e73431032dfae19ca9250eedfa1729e2983b063eaa85dbd16d3ce0eb8
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Karafka Web changelog
|
2
2
|
|
3
|
+
## 0.2.1 (2023-02-24)
|
4
|
+
- [Fix] Fix format incompatibility between 0.1.x and 0.2.x data formats. This will allow for the 0.2 Web UI to work with 0.1.x reporting.
|
5
|
+
|
3
6
|
## 0.2.0 (2023-02-24)
|
4
7
|
- **[Feature]** Introduce ability to tag `Karafka::Process` to display process-centric tags in the Web UI.
|
5
8
|
- **[Feature]** Introduce ability to tag consumer instances to display consumption-centric tags in the Web UI.
|
data/Gemfile.lock
CHANGED
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.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maciej Mensfeld
|
@@ -285,14 +285,6 @@ files:
|
|
285
285
|
- lib/karafka/web/ui/views/consumers/_consumer.erb
|
286
286
|
- lib/karafka/web/ui/views/consumers/_counters.erb
|
287
287
|
- lib/karafka/web/ui/views/consumers/_summary.erb
|
288
|
-
- lib/karafka/web/ui/views/consumers/consumer/_consumer_group.erb
|
289
|
-
- lib/karafka/web/ui/views/consumers/consumer/_job.erb
|
290
|
-
- lib/karafka/web/ui/views/consumers/consumer/_metrics.erb
|
291
|
-
- lib/karafka/web/ui/views/consumers/consumer/_no_jobs.erb
|
292
|
-
- lib/karafka/web/ui/views/consumers/consumer/_no_subscriptions.erb
|
293
|
-
- lib/karafka/web/ui/views/consumers/consumer/_partition.erb
|
294
|
-
- lib/karafka/web/ui/views/consumers/consumer/_stopped.erb
|
295
|
-
- lib/karafka/web/ui/views/consumers/consumer/_tabs.erb
|
296
288
|
- lib/karafka/web/ui/views/consumers/index.erb
|
297
289
|
- lib/karafka/web/ui/views/errors/_breadcrumbs.erb
|
298
290
|
- lib/karafka/web/ui/views/errors/_detail.erb
|
metadata.gz.sig
CHANGED
Binary file
|
@@ -1,109 +0,0 @@
|
|
1
|
-
<div class="row mb-4">
|
2
|
-
<div class="col-sm-12">
|
3
|
-
<h5 class="mb-4">
|
4
|
-
<%= consumer_group.id %>
|
5
|
-
</h5>
|
6
|
-
|
7
|
-
<div class="card-group text-center">
|
8
|
-
<div class="card">
|
9
|
-
<div class="card-body d-flex flex-column align-items-center justify-content-center p-2">
|
10
|
-
State:
|
11
|
-
<span class="badge <%= kafka_state_bg(consumer_group[:state][:state]) %> mt-1 mb-1">
|
12
|
-
<%= consumer_group[:state][:state] %>
|
13
|
-
</span>
|
14
|
-
</div>
|
15
|
-
</div>
|
16
|
-
<div class="card">
|
17
|
-
<div class="card-body d-flex flex-column align-items-center justify-content-center p-2">
|
18
|
-
Join state:
|
19
|
-
<span class="badge <%= kafka_state_bg(consumer_group.join_state) %> mt-1 mb-1">
|
20
|
-
<%= consumer_group.join_state %>
|
21
|
-
</span>
|
22
|
-
</div>
|
23
|
-
</div>
|
24
|
-
<div class="card">
|
25
|
-
<div class="card-body d-flex flex-column align-items-center justify-content-center p-2">
|
26
|
-
State change:
|
27
|
-
<span class="badge bg-secondary mt-1 mb-1">
|
28
|
-
<%==
|
29
|
-
relative_time(
|
30
|
-
Time.at(@process.dispatched_at) - (consumer_group.stateage / 1_000)
|
31
|
-
)
|
32
|
-
%>
|
33
|
-
</span>
|
34
|
-
</div>
|
35
|
-
</div>
|
36
|
-
<div class="card">
|
37
|
-
<div class="card-body d-flex flex-column align-items-center justify-content-center p-2">
|
38
|
-
Last rebalance:
|
39
|
-
<span class="badge bg-secondary mt-1 mb-1">
|
40
|
-
<%==
|
41
|
-
relative_time(
|
42
|
-
Time.at(@process.dispatched_at) - (consumer_group.rebalance_age / 1_000)
|
43
|
-
)
|
44
|
-
%>
|
45
|
-
</span>
|
46
|
-
</div>
|
47
|
-
</div>
|
48
|
-
<div class="card">
|
49
|
-
<div class="card-body d-flex flex-column align-items-center justify-content-center p-2">
|
50
|
-
Rebalance count:
|
51
|
-
<span class="badge bg-secondary mt-1 mb-1">
|
52
|
-
<%= consumer_group.rebalance_cnt %>
|
53
|
-
</span>
|
54
|
-
</div>
|
55
|
-
</div>
|
56
|
-
</div>
|
57
|
-
</div>
|
58
|
-
|
59
|
-
<span class="text-end mt-3">
|
60
|
-
<small>
|
61
|
-
Last rebalance reason: <%= consumer_group.rebalance_reason %>
|
62
|
-
</small>
|
63
|
-
</span>
|
64
|
-
</div>
|
65
|
-
|
66
|
-
<% if consumer_group.topics.empty? %>
|
67
|
-
<div class="row">
|
68
|
-
<div class="col-lg-12">
|
69
|
-
<div class="alert alert-info" role="alert">
|
70
|
-
This process does not consume any messages from any topics of this consumer group.
|
71
|
-
</div>
|
72
|
-
</div>
|
73
|
-
</div>
|
74
|
-
<% else %>
|
75
|
-
<div class="row mb-5">
|
76
|
-
<div class="col-sm-12">
|
77
|
-
<table class="processes bg-white table table-hover table-bordered table-striped mb-0 align-middle">
|
78
|
-
<thead>
|
79
|
-
<tr class="align-middle">
|
80
|
-
<th>Topic</th>
|
81
|
-
<th>Partition</th>
|
82
|
-
<th>Lag stored</th>
|
83
|
-
<th>Lag trend</th>
|
84
|
-
<th>Committed offset</th>
|
85
|
-
<th>Stored offset</th>
|
86
|
-
<th>Fetch state</th>
|
87
|
-
<th>Poll state</th>
|
88
|
-
</tr>
|
89
|
-
</thead>
|
90
|
-
<tbody>
|
91
|
-
<% consumer_group.topics.each do |topic| %>
|
92
|
-
<% topic.partitions.each do |partition| %>
|
93
|
-
<%==
|
94
|
-
partial(
|
95
|
-
'consumers/consumer/partition',
|
96
|
-
locals: {
|
97
|
-
topic: topic,
|
98
|
-
partition: partition,
|
99
|
-
consumer_group: consumer_group
|
100
|
-
}
|
101
|
-
)
|
102
|
-
%>
|
103
|
-
<% end %>
|
104
|
-
<% end %>
|
105
|
-
</tbody>
|
106
|
-
</table>
|
107
|
-
</div>
|
108
|
-
</div>
|
109
|
-
<% end %>
|
@@ -1,26 +0,0 @@
|
|
1
|
-
<tr>
|
2
|
-
<td>
|
3
|
-
<code><%= job.consumer %></code>
|
4
|
-
</td>
|
5
|
-
<td>
|
6
|
-
<span class="badge bg-secondary badge-topic" title="Consumer group: <%= job.consumer_group %>">
|
7
|
-
<%= job.topic %>:
|
8
|
-
<%= job.partition %>
|
9
|
-
</span>
|
10
|
-
</td>
|
11
|
-
<td>
|
12
|
-
<code>#<%= job.type %></code>
|
13
|
-
</td>
|
14
|
-
<td>
|
15
|
-
<%= job.first_offset %>
|
16
|
-
</td>
|
17
|
-
<td>
|
18
|
-
<%= job.last_offset %>
|
19
|
-
</td>
|
20
|
-
<td>
|
21
|
-
<%= job.comitted_offset %>
|
22
|
-
</td>
|
23
|
-
<td>
|
24
|
-
<%== relative_time job.started_at %>
|
25
|
-
</td>
|
26
|
-
</tr>
|
@@ -1,126 +0,0 @@
|
|
1
|
-
<div class="container mb-5">
|
2
|
-
<div class="row" id="metrics">
|
3
|
-
<div class="col-lg-12">
|
4
|
-
<div class="card-group">
|
5
|
-
<div class="card">
|
6
|
-
<div class="card-body">
|
7
|
-
<h5 class="card-title">Process</h5>
|
8
|
-
<p class="card-text">
|
9
|
-
<ul style="list-style: square !important;">
|
10
|
-
<li class="align-items-center d-flex justify-content-between">
|
11
|
-
Status:
|
12
|
-
<span class="badge <%= status_bg @process.status %>">
|
13
|
-
<%= @process.status %>
|
14
|
-
</span>
|
15
|
-
</li>
|
16
|
-
<li class="align-items-center d-flex justify-content-between">
|
17
|
-
Started:
|
18
|
-
<span class="badge bg-secondary">
|
19
|
-
<%== relative_time @process.started_at %>
|
20
|
-
</span>
|
21
|
-
</li>
|
22
|
-
<li class="align-items-center d-flex justify-content-between">
|
23
|
-
State from:
|
24
|
-
<span class="badge bg-secondary">
|
25
|
-
<%== relative_time @process.dispatched_at %>
|
26
|
-
</span>
|
27
|
-
</li>
|
28
|
-
</ul>
|
29
|
-
</p>
|
30
|
-
</div>
|
31
|
-
</div>
|
32
|
-
<div class="card">
|
33
|
-
<div class="card-body">
|
34
|
-
<h5 class="card-title">Utilization</h5>
|
35
|
-
<p class="card-text">
|
36
|
-
<ul style="list-style: square !important;">
|
37
|
-
<li class="align-items-center d-flex justify-content-between">
|
38
|
-
Threads:
|
39
|
-
<span class="badge bg-primary">
|
40
|
-
<%= @process.concurrency %>
|
41
|
-
</span>
|
42
|
-
</li>
|
43
|
-
<li class="align-items-center d-flex justify-content-between">
|
44
|
-
Threads utilization:
|
45
|
-
<span class="badge bg-primary">
|
46
|
-
<%= @process.utilization.round(2) %>%
|
47
|
-
</span>
|
48
|
-
</li>
|
49
|
-
<li class="align-items-center d-flex justify-content-between">
|
50
|
-
CPUs:
|
51
|
-
<span class="badge bg-primary">
|
52
|
-
<%= @process.cpu_count %>
|
53
|
-
</span>
|
54
|
-
</li>
|
55
|
-
<li class="align-items-center d-flex justify-content-between">
|
56
|
-
CPU usage:
|
57
|
-
<% @process.cpu_usage.each_with_index do |usage, i| %>
|
58
|
-
<span class="badge bg-primary">
|
59
|
-
<%= usage %>
|
60
|
-
</span>
|
61
|
-
|
62
|
-
<%= i < 2 ? '/' : '' %>
|
63
|
-
<% end %>
|
64
|
-
</li>
|
65
|
-
</ul>
|
66
|
-
</p>
|
67
|
-
</div>
|
68
|
-
</div>
|
69
|
-
<div class="card">
|
70
|
-
<div class="card-body">
|
71
|
-
<h5 class="card-title">Memory usage</h5>
|
72
|
-
<p class="card-text">
|
73
|
-
<ul style="list-style: square !important;">
|
74
|
-
<li class="align-items-center d-flex justify-content-between">
|
75
|
-
RSS:
|
76
|
-
<span class="badge bg-primary">
|
77
|
-
<%= format_memory @process.memory_usage %>
|
78
|
-
</span>
|
79
|
-
</li>
|
80
|
-
<li class="align-items-center d-flex justify-content-between">
|
81
|
-
OS memory used:
|
82
|
-
<span class="badge bg-primary">
|
83
|
-
<%= format_memory @process.memory_total_usage %>
|
84
|
-
</span>
|
85
|
-
</li>
|
86
|
-
<li class="align-items-center d-flex justify-content-between">
|
87
|
-
OS memory available:
|
88
|
-
<span class="badge bg-primary">
|
89
|
-
<%= format_memory @process.memory_size %>
|
90
|
-
</span>
|
91
|
-
</li>
|
92
|
-
</ul>
|
93
|
-
</p>
|
94
|
-
</div>
|
95
|
-
</div>
|
96
|
-
<div class="card">
|
97
|
-
<div class="card-body">
|
98
|
-
<h5 class="card-title">Versions</h5>
|
99
|
-
<p class="card-text">
|
100
|
-
<ul style="list-style: square !important;">
|
101
|
-
<li class="align-items-center d-flex justify-content-between">
|
102
|
-
Ruby:
|
103
|
-
<span class="badge bg-secondary">
|
104
|
-
<%= @process.ruby %>
|
105
|
-
</span>
|
106
|
-
</li>
|
107
|
-
<li class="align-items-center d-flex justify-content-between">
|
108
|
-
Karafka:
|
109
|
-
<span class="badge bg-secondary">
|
110
|
-
<%= @process.karafka %>
|
111
|
-
</span>
|
112
|
-
</li>
|
113
|
-
<li class="align-items-center d-flex justify-content-between">
|
114
|
-
WaterDrop version:
|
115
|
-
<span class="badge bg-secondary">
|
116
|
-
<%= @process.waterdrop %>
|
117
|
-
</span>
|
118
|
-
</li>
|
119
|
-
</ul>
|
120
|
-
</p>
|
121
|
-
</div>
|
122
|
-
</div>
|
123
|
-
</div>
|
124
|
-
</div>
|
125
|
-
</div>
|
126
|
-
</div>
|
@@ -1,32 +0,0 @@
|
|
1
|
-
<tr>
|
2
|
-
<td>
|
3
|
-
<%= topic.name %>
|
4
|
-
</td>
|
5
|
-
<td>
|
6
|
-
<%= partition.id %>
|
7
|
-
</td>
|
8
|
-
<td>
|
9
|
-
<%= partition.lag_stored %>
|
10
|
-
</td>
|
11
|
-
<td>
|
12
|
-
<span class="badge <%= lag_trend_bg(partition.lag_stored_d) %>">
|
13
|
-
<%= partition.lag_stored_d %>
|
14
|
-
</span>
|
15
|
-
</td>
|
16
|
-
<td>
|
17
|
-
<%= partition.committed_offset %>
|
18
|
-
</td>
|
19
|
-
<td>
|
20
|
-
<%= partition.stored_offset %>
|
21
|
-
</td>
|
22
|
-
<td>
|
23
|
-
<span class="badge <%= kafka_state_bg(partition.fetch_state) %> mt-1 mb-1">
|
24
|
-
<%= partition.fetch_state %>
|
25
|
-
</span>
|
26
|
-
</td>
|
27
|
-
<td>
|
28
|
-
<span class="badge <%= kafka_state_bg(partition.poll_state) %> mt-1 mb-1">
|
29
|
-
<%= partition.poll_state %>
|
30
|
-
</span>
|
31
|
-
</td>
|
32
|
-
</tr>
|
@@ -1,20 +0,0 @@
|
|
1
|
-
<div class="container">
|
2
|
-
<div class="row mb-4">
|
3
|
-
<div class="col-sm-12">
|
4
|
-
|
5
|
-
<ul class="nav nav-tabs">
|
6
|
-
<li class="nav-item">
|
7
|
-
<a class="nav-link <%= nav_class(include: 'subscriptions') %>" href="<%= root_path('consumers', @process.id, 'subscriptions') %>">
|
8
|
-
Active subscriptions
|
9
|
-
</a>
|
10
|
-
</li>
|
11
|
-
<li class="nav-item">
|
12
|
-
<a class="nav-link <%= nav_class(include: 'jobs') %>" href="<%= root_path('consumers', @process.id, 'jobs') %>">
|
13
|
-
Running jobs
|
14
|
-
</a>
|
15
|
-
</li>
|
16
|
-
</ul>
|
17
|
-
|
18
|
-
</div>
|
19
|
-
</div>
|
20
|
-
</div>
|