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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb17bd9d46e6fa0d0125bc665bff74a9d4277be394f1bf29223b6d49ef09e054
4
- data.tar.gz: 2f1da7d4fa79116a67ae3300863b56c3ac2215d80dccba89520e33e78c3b1a84
3
+ metadata.gz: 020c1e94ca0603044d2260ebe796a6509432b7ec100aadc7505a6de85e5cf341
4
+ data.tar.gz: 71f6a22eb9bccbaa9bb9f4005d79667b83d486e13f59d966f3ccdaf049aff0e6
5
5
  SHA512:
6
- metadata.gz: cc9f331aa0b9276c1b3c2d6d4f400b9d8600da174123d472b1699554e0cd95de14ff60b7c4effbb0c4f86a423f24ff27f5facc282ff8215863c146a4b1c0bb41
7
- data.tar.gz: 1f638b2ca877b1b34612654a19f0fb8d04ab88e5dc6b560a7090e74a6d1202da0257d4f941f8f182b6b874d8a099db30772a1ab9517b32ebae76161d9314797a
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- karafka-web (0.2.0)
4
+ karafka-web (0.2.1)
5
5
  erubi (~> 1.4)
6
6
  karafka (>= 2.0.33, < 3.0.0)
7
7
  karafka-core (>= 2.0.12, < 3.0.0)
@@ -6,6 +6,10 @@ module Karafka
6
6
  module Models
7
7
  # Single job data representation model
8
8
  class Job < Lib::HashProxy
9
+ # @return [Array<String>] tags of this consuming job / consumer
10
+ def tags
11
+ @hash[:tags] || []
12
+ end
9
13
  end
10
14
  end
11
15
  end
@@ -3,6 +3,6 @@
3
3
  module Karafka
4
4
  module Web
5
5
  # Current gem version
6
- VERSION = '0.2.0'
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.2.0
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:&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>
@@ -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 subscribed to any topics.
6
- </div>
7
- </div>
8
- </div>
9
- </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,10 +0,0 @@
1
- <div class="container mb-4">
2
- <div class="row">
3
- <div class="col-lg-12">
4
- <div class="alert alert-danger" role="alert">
5
- This process has been stopped.
6
- The state presented here shows the last report available.
7
- </div>
8
- </div>
9
- </div>
10
- </div>
@@ -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>