karafka-web 0.2.0 → 0.2.1
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 +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>
|