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 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>