karafka-web 0.1.3 → 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 +12 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +23 -11
- data/karafka-web.gemspec +2 -2
- data/lib/karafka/web/config.rb +5 -0
- data/lib/karafka/web/installer.rb +1 -2
- data/lib/karafka/web/processing/consumer.rb +2 -1
- data/lib/karafka/web/tracking/consumers/contracts/job.rb +1 -0
- data/lib/karafka/web/tracking/consumers/contracts/report.rb +1 -0
- data/lib/karafka/web/tracking/consumers/listeners/errors.rb +1 -1
- data/lib/karafka/web/tracking/consumers/listeners/processing.rb +2 -1
- data/lib/karafka/web/tracking/consumers/sampler.rb +9 -3
- data/lib/karafka/web/tracking/reporter.rb +2 -1
- data/lib/karafka/web/ui/app.rb +5 -0
- data/lib/karafka/web/ui/controllers/status.rb +23 -0
- data/lib/karafka/web/ui/models/job.rb +4 -0
- data/lib/karafka/web/ui/models/process.rb +7 -0
- data/lib/karafka/web/ui/models/status.rb +169 -0
- data/lib/karafka/web/ui/pro/app.rb +5 -0
- data/lib/karafka/web/ui/pro/controllers/status.rb +26 -0
- data/lib/karafka/web/ui/pro/views/consumers/_consumer.erb +15 -7
- data/lib/karafka/web/ui/pro/views/consumers/consumer/_job.erb +4 -0
- data/lib/karafka/web/ui/pro/views/consumers/consumer/_metrics.erb +10 -0
- data/lib/karafka/web/ui/pro/views/jobs/_job.erb +4 -0
- data/lib/karafka/web/ui/pro/views/shared/_navigation.erb +5 -0
- data/lib/karafka/web/ui/views/consumers/_consumer.erb +15 -7
- data/lib/karafka/web/ui/views/jobs/_job.erb +4 -0
- data/lib/karafka/web/ui/views/shared/_navigation.erb +5 -0
- data/lib/karafka/web/ui/views/shared/exceptions/not_found.erb +2 -0
- data/lib/karafka/web/ui/views/status/_breadcrumbs.erb +5 -0
- data/lib/karafka/web/ui/views/status/_failure.erb +14 -0
- data/lib/karafka/web/ui/views/status/_halted.erb +11 -0
- data/lib/karafka/web/ui/views/status/_success.erb +11 -0
- data/lib/karafka/web/ui/views/status/failures/_connection.erb +7 -0
- data/lib/karafka/web/ui/views/status/failures/_initial_state.erb +20 -0
- data/lib/karafka/web/ui/views/status/failures/_live_reporting.erb +7 -0
- data/lib/karafka/web/ui/views/status/failures/_partitions.erb +19 -0
- data/lib/karafka/web/ui/views/status/failures/_state_calculation.erb +8 -0
- data/lib/karafka/web/ui/views/status/failures/_topics.erb +20 -0
- data/lib/karafka/web/ui/views/status/show.erb +94 -0
- data/lib/karafka/web/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +20 -14
- 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
@@ -20,6 +20,7 @@
|
|
20
20
|
</p>
|
21
21
|
|
22
22
|
<ul class="mb-5 text-start">
|
23
|
+
<li>You have visited the <a href="<%= root_path('status') %>">Status</a> page to troubleshoot any potential issues</li>
|
23
24
|
<li>All the topics required by Karafka Web exist</li>
|
24
25
|
<li>You have used <code>bundle exec karafka-web install</code> to initialize the Web UI</li>
|
25
26
|
<li>You have a working connection with your Kafka cluster</li>
|
@@ -32,6 +33,7 @@
|
|
32
33
|
|
33
34
|
<p>
|
34
35
|
<a href="<%= root_path %>" class="btn btn-primary">Go Home</a>
|
36
|
+
<a href="<%= root_path('status') %>" class="btn btn-success">Status page</a>
|
35
37
|
</p>
|
36
38
|
</div>
|
37
39
|
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="card border-danger mb-3">
|
2
|
+
<div class="card-header text-bg-danger">
|
3
|
+
<span>
|
4
|
+
<%= title %>
|
5
|
+
</span>
|
6
|
+
|
7
|
+
<span class="float-end">
|
8
|
+
<span class="badge text-bg-light">Failure</span>
|
9
|
+
</span>
|
10
|
+
</div>
|
11
|
+
<div class="card-body">
|
12
|
+
<%== description %>
|
13
|
+
</div>
|
14
|
+
</div>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<p>
|
2
|
+
The initial state for the Web UI was not created.
|
3
|
+
</p>
|
4
|
+
|
5
|
+
<p>
|
6
|
+
It means that the <code>bundle exec karafka-web install</code> was not executed or failed.
|
7
|
+
</p>
|
8
|
+
|
9
|
+
<p>
|
10
|
+
To fix this, you can either:
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<ul>
|
14
|
+
<li>Run <code>bundle exec karafka-web install</code></li>
|
15
|
+
<li>Run at least one Karafka consumer process</li>
|
16
|
+
</ul>
|
17
|
+
|
18
|
+
<p class="mb-0">
|
19
|
+
Any of the above, when successful, will bootstrap the initial state.
|
20
|
+
</p>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<p>
|
2
|
+
There are no Karafka consumer processes actively reporting to the Web UI.
|
3
|
+
</p>
|
4
|
+
|
5
|
+
<p class="mb-0">
|
6
|
+
If you are sure you are running at least one <code>karafka server</code> instance, please make sure that it can report to the <code><%= Karafka::Web.config.topics.consumers.reports %></code> topic.
|
7
|
+
</p>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<p>
|
2
|
+
Both
|
3
|
+
<code><%= Karafka::Web.config.topics.consumers.states %></code>
|
4
|
+
and
|
5
|
+
<code><%= Karafka::Web.config.topics.consumers.reports %></code>
|
6
|
+
topics need to be configured with <strong>exactly</strong> one partition.
|
7
|
+
</p>
|
8
|
+
|
9
|
+
<p>
|
10
|
+
Your current setup contains the following:
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<ul class="mb-0">
|
14
|
+
<% details.each do |name, details| %>
|
15
|
+
<li>
|
16
|
+
<code><%= name %> </code> with <code><%= details[:partitions] %> </code> partitions.
|
17
|
+
</li>
|
18
|
+
<% end %>
|
19
|
+
</ul>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<p>
|
2
|
+
None of the <code>karafka server</code> processes is subscribed to handle the
|
3
|
+
<code><%= Karafka::Web.config.topics.consumers.reports %></code> topic data aggregations.
|
4
|
+
</p>
|
5
|
+
|
6
|
+
<p class="mb-0">
|
7
|
+
If you are limiting the topics you consume using the <a href="https://karafka.io/docs/CLI/#limiting-consumer-groups-used-per-process" target="_blank">limiting API</a>, please include the Karafka Web consumer group and the <code><%= Karafka::Web.config.topics.consumers.reports %></code> topic.
|
8
|
+
</p>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<p>
|
2
|
+
Web UI requires the following topics to exist:
|
3
|
+
</p>
|
4
|
+
|
5
|
+
<ul>
|
6
|
+
<% details.each do |name, details| %>
|
7
|
+
<li>
|
8
|
+
<code><%= name %></code> - <%= details[:present] ? 'Exists' : 'Missing' %>
|
9
|
+
</li>
|
10
|
+
<% end %>
|
11
|
+
</ul>
|
12
|
+
|
13
|
+
<p>
|
14
|
+
Please ensure all those topics exist and are accessible to your Karafka user.
|
15
|
+
</p>
|
16
|
+
|
17
|
+
<p class="mb-0">
|
18
|
+
You can read more about their setup and configuration
|
19
|
+
<a href="https://karafka.io/docs/Web-UI-Getting-Started/" target="_blank">here</a>.
|
20
|
+
</p>
|
@@ -0,0 +1,94 @@
|
|
1
|
+
<%== view_title('Web UI status details') %>
|
2
|
+
|
3
|
+
<div class="container mb-5">
|
4
|
+
<div class="row">
|
5
|
+
<div class="col-lg-10 offset-md-1">
|
6
|
+
|
7
|
+
<%==
|
8
|
+
partial(
|
9
|
+
"status/#{@status.connection.to_s}",
|
10
|
+
locals: {
|
11
|
+
title: 'Connection to Kafka',
|
12
|
+
description: partial('status/failures/connection')
|
13
|
+
}
|
14
|
+
)
|
15
|
+
%>
|
16
|
+
|
17
|
+
<%==
|
18
|
+
partial(
|
19
|
+
"status/#{@status.topics.to_s}",
|
20
|
+
locals: {
|
21
|
+
title: 'Topics presence',
|
22
|
+
description: partial(
|
23
|
+
'status/failures/topics',
|
24
|
+
locals: {
|
25
|
+
details: @status.topics.details
|
26
|
+
}
|
27
|
+
)
|
28
|
+
}
|
29
|
+
)
|
30
|
+
%>
|
31
|
+
|
32
|
+
<%==
|
33
|
+
partial(
|
34
|
+
"status/#{@status.partitions.to_s}",
|
35
|
+
locals: {
|
36
|
+
title: 'Partitions count',
|
37
|
+
description: partial(
|
38
|
+
'status/failures/partitions',
|
39
|
+
locals: {
|
40
|
+
details: @status.partitions.details
|
41
|
+
}
|
42
|
+
)
|
43
|
+
}
|
44
|
+
)
|
45
|
+
%>
|
46
|
+
|
47
|
+
<%==
|
48
|
+
partial(
|
49
|
+
"status/#{@status.initial_state.to_s}",
|
50
|
+
locals: {
|
51
|
+
title: 'Initial state presence',
|
52
|
+
description: partial(
|
53
|
+
'status/failures/initial_state',
|
54
|
+
locals: {
|
55
|
+
details: @status.initial_state.details
|
56
|
+
}
|
57
|
+
)
|
58
|
+
}
|
59
|
+
)
|
60
|
+
%>
|
61
|
+
|
62
|
+
<%==
|
63
|
+
partial(
|
64
|
+
"status/#{@status.live_reporting.to_s}",
|
65
|
+
locals: {
|
66
|
+
title: 'Live reporting',
|
67
|
+
description: partial(
|
68
|
+
'status/failures/live_reporting',
|
69
|
+
locals: {
|
70
|
+
details: @status.live_reporting.details
|
71
|
+
}
|
72
|
+
)
|
73
|
+
}
|
74
|
+
)
|
75
|
+
%>
|
76
|
+
|
77
|
+
<%==
|
78
|
+
partial(
|
79
|
+
"status/#{@status.state_calculation.to_s}",
|
80
|
+
locals: {
|
81
|
+
title: 'State calculation subscription',
|
82
|
+
description: partial(
|
83
|
+
'status/failures/state_calculation',
|
84
|
+
locals: {
|
85
|
+
details: @status.state_calculation.details
|
86
|
+
}
|
87
|
+
)
|
88
|
+
}
|
89
|
+
)
|
90
|
+
%>
|
91
|
+
|
92
|
+
</div>
|
93
|
+
</div>
|
94
|
+
</div>
|
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.1
|
4
|
+
version: 0.2.1
|
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-02-
|
38
|
+
date: 2023-02-24 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.33
|
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.33
|
71
71
|
- - "<"
|
72
72
|
- !ruby/object:Gem::Version
|
73
73
|
version: 3.0.0
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
requirements:
|
78
78
|
- - ">="
|
79
79
|
- !ruby/object:Gem::Version
|
80
|
-
version: 2.0.
|
80
|
+
version: 2.0.12
|
81
81
|
- - "<"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: 3.0.0
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
requirements:
|
88
88
|
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 2.0.
|
90
|
+
version: 2.0.12
|
91
91
|
- - "<"
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: 3.0.0
|
@@ -199,6 +199,7 @@ files:
|
|
199
199
|
- lib/karafka/web/ui/controllers/requests/params.rb
|
200
200
|
- lib/karafka/web/ui/controllers/responses/data.rb
|
201
201
|
- lib/karafka/web/ui/controllers/routing.rb
|
202
|
+
- lib/karafka/web/ui/controllers/status.rb
|
202
203
|
- lib/karafka/web/ui/helpers/application_helper.rb
|
203
204
|
- lib/karafka/web/ui/lib/hash_proxy.rb
|
204
205
|
- lib/karafka/web/ui/lib/paginate_array.rb
|
@@ -210,6 +211,7 @@ files:
|
|
210
211
|
- lib/karafka/web/ui/models/process.rb
|
211
212
|
- lib/karafka/web/ui/models/processes.rb
|
212
213
|
- lib/karafka/web/ui/models/state.rb
|
214
|
+
- lib/karafka/web/ui/models/status.rb
|
213
215
|
- lib/karafka/web/ui/models/topic.rb
|
214
216
|
- lib/karafka/web/ui/pro/app.rb
|
215
217
|
- lib/karafka/web/ui/pro/controllers/cluster.rb
|
@@ -220,6 +222,7 @@ files:
|
|
220
222
|
- lib/karafka/web/ui/pro/controllers/health.rb
|
221
223
|
- lib/karafka/web/ui/pro/controllers/jobs.rb
|
222
224
|
- lib/karafka/web/ui/pro/controllers/routing.rb
|
225
|
+
- lib/karafka/web/ui/pro/controllers/status.rb
|
223
226
|
- lib/karafka/web/ui/pro/views/consumers/_breadcrumbs.erb
|
224
227
|
- lib/karafka/web/ui/pro/views/consumers/_consumer.erb
|
225
228
|
- lib/karafka/web/ui/pro/views/consumers/_counters.erb
|
@@ -282,14 +285,6 @@ files:
|
|
282
285
|
- lib/karafka/web/ui/views/consumers/_consumer.erb
|
283
286
|
- lib/karafka/web/ui/views/consumers/_counters.erb
|
284
287
|
- lib/karafka/web/ui/views/consumers/_summary.erb
|
285
|
-
- lib/karafka/web/ui/views/consumers/consumer/_consumer_group.erb
|
286
|
-
- lib/karafka/web/ui/views/consumers/consumer/_job.erb
|
287
|
-
- lib/karafka/web/ui/views/consumers/consumer/_metrics.erb
|
288
|
-
- lib/karafka/web/ui/views/consumers/consumer/_no_jobs.erb
|
289
|
-
- lib/karafka/web/ui/views/consumers/consumer/_no_subscriptions.erb
|
290
|
-
- lib/karafka/web/ui/views/consumers/consumer/_partition.erb
|
291
|
-
- lib/karafka/web/ui/views/consumers/consumer/_stopped.erb
|
292
|
-
- lib/karafka/web/ui/views/consumers/consumer/_tabs.erb
|
293
288
|
- lib/karafka/web/ui/views/consumers/index.erb
|
294
289
|
- lib/karafka/web/ui/views/errors/_breadcrumbs.erb
|
295
290
|
- lib/karafka/web/ui/views/errors/_detail.erb
|
@@ -315,6 +310,17 @@ files:
|
|
315
310
|
- lib/karafka/web/ui/views/shared/_pagination.erb
|
316
311
|
- lib/karafka/web/ui/views/shared/exceptions/not_found.erb
|
317
312
|
- lib/karafka/web/ui/views/shared/exceptions/pro_only.erb
|
313
|
+
- lib/karafka/web/ui/views/status/_breadcrumbs.erb
|
314
|
+
- lib/karafka/web/ui/views/status/_failure.erb
|
315
|
+
- lib/karafka/web/ui/views/status/_halted.erb
|
316
|
+
- lib/karafka/web/ui/views/status/_success.erb
|
317
|
+
- lib/karafka/web/ui/views/status/failures/_connection.erb
|
318
|
+
- lib/karafka/web/ui/views/status/failures/_initial_state.erb
|
319
|
+
- lib/karafka/web/ui/views/status/failures/_live_reporting.erb
|
320
|
+
- lib/karafka/web/ui/views/status/failures/_partitions.erb
|
321
|
+
- lib/karafka/web/ui/views/status/failures/_state_calculation.erb
|
322
|
+
- lib/karafka/web/ui/views/status/failures/_topics.erb
|
323
|
+
- lib/karafka/web/ui/views/status/show.erb
|
318
324
|
- lib/karafka/web/version.rb
|
319
325
|
homepage: https://karafka.io
|
320
326
|
licenses:
|
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>
|