karafka-web 0.1.3 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +12 -0
  4. data/Gemfile +1 -0
  5. data/Gemfile.lock +23 -11
  6. data/karafka-web.gemspec +2 -2
  7. data/lib/karafka/web/config.rb +5 -0
  8. data/lib/karafka/web/installer.rb +1 -2
  9. data/lib/karafka/web/processing/consumer.rb +2 -1
  10. data/lib/karafka/web/tracking/consumers/contracts/job.rb +1 -0
  11. data/lib/karafka/web/tracking/consumers/contracts/report.rb +1 -0
  12. data/lib/karafka/web/tracking/consumers/listeners/errors.rb +1 -1
  13. data/lib/karafka/web/tracking/consumers/listeners/processing.rb +2 -1
  14. data/lib/karafka/web/tracking/consumers/sampler.rb +9 -3
  15. data/lib/karafka/web/tracking/reporter.rb +2 -1
  16. data/lib/karafka/web/ui/app.rb +5 -0
  17. data/lib/karafka/web/ui/controllers/status.rb +23 -0
  18. data/lib/karafka/web/ui/models/job.rb +4 -0
  19. data/lib/karafka/web/ui/models/process.rb +7 -0
  20. data/lib/karafka/web/ui/models/status.rb +169 -0
  21. data/lib/karafka/web/ui/pro/app.rb +5 -0
  22. data/lib/karafka/web/ui/pro/controllers/status.rb +26 -0
  23. data/lib/karafka/web/ui/pro/views/consumers/_consumer.erb +15 -7
  24. data/lib/karafka/web/ui/pro/views/consumers/consumer/_job.erb +4 -0
  25. data/lib/karafka/web/ui/pro/views/consumers/consumer/_metrics.erb +10 -0
  26. data/lib/karafka/web/ui/pro/views/jobs/_job.erb +4 -0
  27. data/lib/karafka/web/ui/pro/views/shared/_navigation.erb +5 -0
  28. data/lib/karafka/web/ui/views/consumers/_consumer.erb +15 -7
  29. data/lib/karafka/web/ui/views/jobs/_job.erb +4 -0
  30. data/lib/karafka/web/ui/views/shared/_navigation.erb +5 -0
  31. data/lib/karafka/web/ui/views/shared/exceptions/not_found.erb +2 -0
  32. data/lib/karafka/web/ui/views/status/_breadcrumbs.erb +5 -0
  33. data/lib/karafka/web/ui/views/status/_failure.erb +14 -0
  34. data/lib/karafka/web/ui/views/status/_halted.erb +11 -0
  35. data/lib/karafka/web/ui/views/status/_success.erb +11 -0
  36. data/lib/karafka/web/ui/views/status/failures/_connection.erb +7 -0
  37. data/lib/karafka/web/ui/views/status/failures/_initial_state.erb +20 -0
  38. data/lib/karafka/web/ui/views/status/failures/_live_reporting.erb +7 -0
  39. data/lib/karafka/web/ui/views/status/failures/_partitions.erb +19 -0
  40. data/lib/karafka/web/ui/views/status/failures/_state_calculation.erb +8 -0
  41. data/lib/karafka/web/ui/views/status/failures/_topics.erb +20 -0
  42. data/lib/karafka/web/ui/views/status/show.erb +94 -0
  43. data/lib/karafka/web/version.rb +1 -1
  44. data.tar.gz.sig +0 -0
  45. metadata +20 -14
  46. metadata.gz.sig +0 -0
  47. data/lib/karafka/web/ui/views/consumers/consumer/_consumer_group.erb +0 -109
  48. data/lib/karafka/web/ui/views/consumers/consumer/_job.erb +0 -26
  49. data/lib/karafka/web/ui/views/consumers/consumer/_metrics.erb +0 -126
  50. data/lib/karafka/web/ui/views/consumers/consumer/_no_jobs.erb +0 -9
  51. data/lib/karafka/web/ui/views/consumers/consumer/_no_subscriptions.erb +0 -9
  52. data/lib/karafka/web/ui/views/consumers/consumer/_partition.erb +0 -32
  53. data/lib/karafka/web/ui/views/consumers/consumer/_stopped.erb +0 -10
  54. data/lib/karafka/web/ui/views/consumers/consumer/_tabs.erb +0 -20
@@ -12,6 +12,10 @@
12
12
  </td>
13
13
  <td>
14
14
  <code><%= job.consumer %></code>
15
+
16
+ <% job.tags.each do |tag| %>
17
+ <span class="badge bg-info"><%= tag %></span>
18
+ <% end %>
15
19
  </td>
16
20
  <td>
17
21
  <code>#<%= job.type %></code>
@@ -45,6 +45,11 @@
45
45
  Cluster
46
46
  </a>
47
47
  </li>
48
+ <li class="nav-item ms-3">
49
+ <a class="nav-link <%= nav_class(start_with: '/status') %>" href="<%= root_path('status') %>">
50
+ Status
51
+ </a>
52
+ </li>
48
53
  </ul>
49
54
  </div>
50
55
 
@@ -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,5 @@
1
+ <li class="breadcrumb-item">
2
+ <a href="<%= root_path('status') %>">
3
+ Web UI status details
4
+ </a>
5
+ </li>
@@ -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,11 @@
1
+ <div class="card text-bg-secondary mb-3">
2
+ <div class="card-header">
3
+ <span>
4
+ <%= title %>
5
+ </span>
6
+
7
+ <span class="float-end">
8
+ <span class="badge text-bg-light">Halted</span>
9
+ </span>
10
+ </div>
11
+ </div>
@@ -0,0 +1,11 @@
1
+ <div class="card text-bg-success mb-3">
2
+ <div class="card-header">
3
+ <span>
4
+ <%= title %>
5
+ </span>
6
+
7
+ <span class="float-end">
8
+ <span class="badge text-bg-light">Successful</span>
9
+ </span>
10
+ </div>
11
+ </div>
@@ -0,0 +1,7 @@
1
+ <p>
2
+ Web UI was not able to establish a connection with the Kafka cluster.
3
+ </p>
4
+
5
+ <p class="mb-0">
6
+ Please make sure that Web UI can reach Kafka.
7
+ </p>
@@ -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>
@@ -3,6 +3,6 @@
3
3
  module Karafka
4
4
  module Web
5
5
  # Current gem version
6
- VERSION = '0.1.3'
6
+ VERSION = '0.2.1'
7
7
  end
8
8
  end
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.3
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-14 00:00:00.000000000 Z
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.29
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.29
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.10
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.10
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:&nbsp;
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:&nbsp;
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:&nbsp;
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:&nbsp;
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:&nbsp;
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,9 +0,0 @@
1
- <div class="container mb-4">
2
- <div class="row">
3
- <div class="col-lg-12">
4
- <div class="alert alert-info" role="alert">
5
- This process is not running any jobs at the moment.
6
- </div>
7
- </div>
8
- </div>
9
- </div>