karafka-web 0.5.2 → 0.6.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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +69 -6
  4. data/Gemfile.lock +14 -14
  5. data/karafka-web.gemspec +3 -3
  6. data/lib/karafka/web/config.rb +11 -5
  7. data/lib/karafka/web/installer.rb +2 -3
  8. data/lib/karafka/web/tracking/consumers/contracts/consumer_group.rb +1 -1
  9. data/lib/karafka/web/tracking/consumers/contracts/job.rb +4 -1
  10. data/lib/karafka/web/tracking/consumers/contracts/partition.rb +1 -1
  11. data/lib/karafka/web/tracking/consumers/contracts/report.rb +8 -4
  12. data/lib/karafka/web/tracking/consumers/contracts/subscription_group.rb +1 -1
  13. data/lib/karafka/web/tracking/consumers/contracts/topic.rb +3 -1
  14. data/lib/karafka/web/tracking/consumers/listeners/base.rb +2 -2
  15. data/lib/karafka/web/tracking/consumers/listeners/errors.rb +8 -44
  16. data/lib/karafka/web/tracking/consumers/listeners/processing.rb +5 -0
  17. data/lib/karafka/web/tracking/consumers/reporter.rb +151 -0
  18. data/lib/karafka/web/tracking/consumers/sampler.rb +2 -1
  19. data/lib/karafka/web/tracking/contracts/base.rb +34 -0
  20. data/lib/karafka/web/tracking/contracts/error.rb +31 -0
  21. data/lib/karafka/web/tracking/helpers/error_info.rb +50 -0
  22. data/lib/karafka/web/tracking/memoized_shell.rb +1 -1
  23. data/lib/karafka/web/tracking/producers/listeners/base.rb +33 -0
  24. data/lib/karafka/web/tracking/producers/listeners/errors.rb +66 -0
  25. data/lib/karafka/web/tracking/producers/listeners/reporter.rb +21 -0
  26. data/lib/karafka/web/tracking/producers/reporter.rb +101 -0
  27. data/lib/karafka/web/tracking/producers/sampler.rb +42 -0
  28. data/lib/karafka/web/tracking/sampler.rb +5 -0
  29. data/lib/karafka/web/ui/controllers/consumers.rb +2 -4
  30. data/lib/karafka/web/ui/models/counters.rb +51 -0
  31. data/lib/karafka/web/ui/models/status.rb +31 -7
  32. data/lib/karafka/web/ui/pro/controllers/consumers.rb +2 -3
  33. data/lib/karafka/web/ui/pro/views/consumers/consumer/_job.erb +6 -6
  34. data/lib/karafka/web/ui/pro/views/consumers/consumer/_metrics.erb +6 -1
  35. data/lib/karafka/web/ui/pro/views/consumers/index.erb +25 -21
  36. data/lib/karafka/web/ui/pro/views/consumers/jobs.erb +1 -1
  37. data/lib/karafka/web/ui/pro/views/errors/_breadcrumbs.erb +1 -2
  38. data/lib/karafka/web/ui/pro/views/errors/_error.erb +8 -6
  39. data/lib/karafka/web/ui/pro/views/errors/show.erb +3 -2
  40. data/lib/karafka/web/ui/public/stylesheets/application.css +4 -0
  41. data/lib/karafka/web/ui/views/consumers/_no_consumers.erb +9 -0
  42. data/lib/karafka/web/ui/views/consumers/index.erb +24 -20
  43. data/lib/karafka/web/ui/views/errors/_breadcrumbs.erb +1 -2
  44. data/lib/karafka/web/ui/views/errors/_detail.erb +9 -1
  45. data/lib/karafka/web/ui/views/errors/_error.erb +8 -6
  46. data/lib/karafka/web/ui/views/errors/show.erb +50 -2
  47. data/lib/karafka/web/ui/views/shared/_feature_pro.erb +4 -0
  48. data/lib/karafka/web/ui/views/shared/_pagination.erb +8 -2
  49. data/lib/karafka/web/ui/views/shared/exceptions/pro_only.erb +0 -4
  50. data/lib/karafka/web/ui/views/status/failures/_initial_state.erb +1 -10
  51. data/lib/karafka/web/ui/views/status/info/_components.erb +6 -1
  52. data/lib/karafka/web/ui/views/status/show.erb +6 -1
  53. data/lib/karafka/web/ui/views/status/successes/_connection.erb +1 -0
  54. data/lib/karafka/web/ui/views/status/warnings/_connection.erb +11 -0
  55. data/lib/karafka/web/version.rb +1 -1
  56. data.tar.gz.sig +0 -0
  57. metadata +28 -16
  58. metadata.gz.sig +0 -0
  59. data/lib/karafka/web/tracking/base_contract.rb +0 -31
  60. data/lib/karafka/web/tracking/reporter.rb +0 -144
  61. data/lib/karafka/web/ui/pro/views/consumers/_summary.erb +0 -81
  62. data/lib/karafka/web/ui/pro/views/errors/_cleaned.erb +0 -3
  63. data/lib/karafka/web/ui/pro/views/errors/_detail.erb +0 -31
  64. data/lib/karafka/web/ui/pro/views/errors/_no_errors.erb +0 -3
  65. data/lib/karafka/web/ui/pro/views/jobs/_breadcrumbs.erb +0 -5
  66. data/lib/karafka/web/ui/views/consumers/_breadcrumbs.erb +0 -27
@@ -1,9 +1,8 @@
1
1
  <%==
2
2
  type = @error_message.payload[:type]
3
3
  error_class = @error_message.payload[:error_class]
4
- offset = @error_message.offset
5
4
 
6
- view_title("#{type}: #{error_class} #{offset}")
5
+ view_title("#{type}: #{error_class}")
7
6
  %>
8
7
 
9
8
  <div class="container">
@@ -36,6 +35,7 @@
36
35
  </table>
37
36
  </div>
38
37
  </div>
38
+
39
39
  <div class="row mb-4">
40
40
  <div class="col-sm-12">
41
41
  <h5 class="mb-2">
@@ -44,6 +44,7 @@
44
44
  <hr/>
45
45
  </div>
46
46
  </div>
47
+
47
48
  <div class="row mb-4">
48
49
  <div class="col-sm-12">
49
50
  <div class="card">
@@ -108,3 +108,7 @@ code.wrapped {
108
108
  #metrics ul {
109
109
  padding-left: 0;
110
110
  }
111
+
112
+ .blurred {
113
+ filter: blur(4px)
114
+ }
@@ -0,0 +1,9 @@
1
+ <div class="alert alert-info" role="alert">
2
+ <p>
3
+ There are no Karafka consumer processes actively reporting to the Web UI.
4
+ </p>
5
+
6
+ <p class="mb-0">
7
+ 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.
8
+ </p>
9
+ </div>
@@ -4,26 +4,30 @@
4
4
  <div class="container">
5
5
  <div class="row">
6
6
  <div class="col-sm-12">
7
- <table class="processes bg-white table table-hover table-bordered table-striped mb-0 align-middle">
8
- <thead>
9
- <tr class="align-middle">
10
- <th>Name</th>
11
- <th class="col-sm-2">Started</th>
12
- <th class="col-sm-1">Memory</th>
13
- <th class="col-sm-1">Utilization</th>
14
- <th class="col-sm-1">Total lag</th>
15
- </tr>
16
- </thead>
17
- <tbody>
18
- <%==
19
- render_each(
20
- @processes,
21
- 'consumers/_consumer',
22
- local: :process
23
- )
24
- %>
25
- </tbody>
26
- </table>
7
+ <% if @processes.empty? %>
8
+ <%== partial 'consumers/no_consumers' %>
9
+ <% else %>
10
+ <table class="processes bg-white table table-hover table-bordered table-striped mb-0 align-middle">
11
+ <thead>
12
+ <tr class="align-middle">
13
+ <th>Name</th>
14
+ <th class="col-sm-2">Started</th>
15
+ <th class="col-sm-1">Memory</th>
16
+ <th class="col-sm-1">Utilization</th>
17
+ <th class="col-sm-1">Total lag</th>
18
+ </tr>
19
+ </thead>
20
+ <tbody>
21
+ <%==
22
+ render_each(
23
+ @processes,
24
+ 'consumers/_consumer',
25
+ local: :process
26
+ )
27
+ %>
28
+ </tbody>
29
+ </table>
30
+ <% end %>
27
31
  </div>
28
32
  </div>
29
33
  </div>
@@ -10,9 +10,8 @@
10
10
  <%=
11
11
  type = @error_message.payload[:type]
12
12
  error_class = @error_message.payload[:error_class]
13
- offset = @error_message.offset
14
13
 
15
- "#{type}: #{error_class} #{offset}"
14
+ "#{type}: #{error_class}"
16
15
  %>
17
16
  </a>
18
17
  </li>
@@ -21,8 +21,16 @@
21
21
  <%= k %>
22
22
  </td>
23
23
  <td>
24
- <% if k == :occurred_at %>
24
+ <% case k
25
+ when :occurred_at
26
+ %>
25
27
  <%== relative_time v %>
28
+ <% when :error_class %>
29
+ <code><%= v %></code>
30
+ <% when :type %>
31
+ <span class="badge bg-secondary">
32
+ <%= v %>
33
+ </span>
26
34
  <% else %>
27
35
  <%= v %>
28
36
  <% end %>
@@ -9,14 +9,16 @@
9
9
 
10
10
  <tr>
11
11
  <td>
12
- <% if error[:details].key?(:topic) %>
13
- <%= error[:details][:topic] %>: <%= error[:details][:partition] %>
14
- <% else %>
15
- <%= error[:type] %>
16
- <% end %>
12
+ <span class="badge bg-secondary badge-topic">
13
+ <% if error[:details].key?(:topic) %>
14
+ <%= error[:details][:topic] %>: <%= error[:details][:partition] %>
15
+ <% else %>
16
+ <%= error[:type] %>
17
+ <% end %>
18
+ </span>
17
19
  </td>
18
20
  <td>
19
- <%== error[:process_name] %>
21
+ <%== error[:process][:name] %>
20
22
  </td>
21
23
  <td>
22
24
  <%= error[:error_class] %>:
@@ -1,12 +1,20 @@
1
1
  <%==
2
2
  type = @error_message.payload[:type]
3
3
  error_class = @error_message.payload[:error_class]
4
- offset = @error_message.offset
5
4
 
6
- view_title("#{type}: #{error_class} #{offset}", hr: true)
5
+ view_title("#{type}: #{error_class}")
7
6
  %>
8
7
 
9
8
  <div class="container">
9
+ <div class="row mb-4">
10
+ <div class="col-sm-12">
11
+ <h5 class="mb-2">
12
+ Metadata
13
+ </h5>
14
+ <hr/>
15
+ </div>
16
+ </div>
17
+
10
18
  <div class="row mb-5">
11
19
  <div class="col-sm-12 table-responsive">
12
20
  <table class="processes bg-white table table-hover table-bordered table-striped mb-0 align-middle">
@@ -27,4 +35,44 @@
27
35
  </table>
28
36
  </div>
29
37
  </div>
38
+
39
+ <div class="row mb-2">
40
+ <div class="col-sm-12">
41
+ <h5 class="mb-2">
42
+ Backtrace
43
+ </h5>
44
+ <hr/>
45
+ </div>
46
+ </div>
47
+
48
+ <div class="mb-4">
49
+ <%== partial 'shared/feature_pro' %>
50
+ </div>
51
+
52
+ <div class="row mb-4">
53
+ <div class="col-sm-12">
54
+ <div class="card">
55
+ <div class="card-body">
56
+ <pre class="m-0 p-0 blurred"><code class="wrapped json p-0 m-0">this is just an example backtrace
57
+ please subscribe to our Pro offering to be able to view the real one
58
+ gems/karafka-rdkafka/lib/rdkafka/consumer.rb:255:in `query_watermark_offsets'
59
+ gems/karafka/lib/karafka/admin.rb:56:in `block in read_topic'
60
+ gems/karafka/lib/karafka/admin.rb:184:in `with_consumer'
61
+ gems/karafka/lib/karafka/admin.rb:55:in `read_topic'
62
+ /mnt/software/Karafka/karafka-web/lib/karafka/web/processing/consumers/state.rb:19:in `current'
63
+ /mnt/software/Karafka/karafka-web/lib/karafka/web/processing/consumers/aggregator.rb:45:in `state'
64
+ /mnt/software/Karafka/karafka-web/lib/karafka/web/processing/consumers/aggregator.rb:38:in `to_json'
65
+ gems/karafka/lib/karafka/processing/strategies/default.rb:136:in `block in handle_shutdown'
66
+ gems/karafka-core/lib/karafka/core/monitoring/notifications.rb:118:in `measure_time_taken'
67
+ gems/karafka-core/lib/karafka/core/monitoring/notifications.rb:94:in `instrument'
68
+ gems/karafka-core/lib/karafka/core/monitoring/monitor.rb:34:in `instrument'
69
+ gems/karafka/lib/karafka/processing/strategies/default.rb:135:in `handle_shutdown'
70
+ gems/karafka/lib/karafka/base_consumer.rb:134:in `on_shutdown'
71
+ gems/karafka/lib/karafka/processing/executor.rb:123:in `shutdown'
72
+ gems/karafka/lib/karafka/processing/jobs/shutdown.rb:18:in `call'
73
+ gems/karafka/lib/karafka/helpers/async.rb:28:in `block in async_call'</code></pre>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </div>
30
78
  </div>
@@ -0,0 +1,4 @@
1
+ <div class="alert alert-light">
2
+ This Web UI feature is available only to <a target="_blank" href="https://karafka.io/#become-pro">Pro</a>
3
+ users.
4
+ </div>
@@ -3,9 +3,15 @@
3
3
  <div class="row">
4
4
  <nav>
5
5
  <ul class="pagination justify-content-center">
6
+ <li class="page-item <%= 'disabled' if @current_page <= 1 %>">
7
+ <a class="page-link" href="<%= current_path(page: 1) %>">
8
+ <span>&laquo;</span>
9
+ </a>
10
+ </li>
11
+
6
12
  <li class="page-item <%= 'disabled' if @current_page <= 1 %>">
7
13
  <a class="page-link" href="<%= current_path(page: @current_page - 1) %>">
8
- <span>&laquo; Prev</span>
14
+ <span>&lsaquo; Prev</span>
9
15
  </a>
10
16
  </li>
11
17
 
@@ -17,7 +23,7 @@
17
23
 
18
24
  <li class="page-item <%= 'disabled' unless @next_page %>">
19
25
  <a class="page-link" href="<%= current_path(page: @next_page) %>">
20
- <span>Next &raquo;</span>
26
+ <span>Next &rsaquo;</span>
21
27
  </a>
22
28
  </li>
23
29
  </ul>
@@ -37,10 +37,6 @@
37
37
  <li>Architecture consultations</li>
38
38
  </ul>
39
39
 
40
- <p class="mb-5">
41
- If you were looking for a given process or other real-time information, the state might have changed, and the information you are looking for no longer exists.
42
- </p>
43
-
44
40
  <p>
45
41
  <a href="<%= root_path %>" class="btn btn-primary">Go Home</a>
46
42
  <a href="https://karafka.io/#become-pro" class="btn btn-success" target="_blank">Become Pro!</a>
@@ -7,14 +7,5 @@
7
7
  </p>
8
8
 
9
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.
10
+ To fix this, you need to ensure that the <code>bundle exec karafka-web install</code> runs successfully.
20
11
  </p>
@@ -13,7 +13,12 @@
13
13
  </span>
14
14
 
15
15
  <span class="badge bg-secondary">
16
- karafka core
16
+ karafka-web
17
+ <%= @sampler.karafka_web_version %>
18
+ </span>
19
+
20
+ <span class="badge bg-secondary">
21
+ karafka-core
17
22
  <%= @sampler.karafka_core_version %>
18
23
  </span>
19
24
 
@@ -8,7 +8,12 @@
8
8
  "status/#{@status.connection.to_s}",
9
9
  locals: {
10
10
  title: 'Connection to Kafka',
11
- description: partial('status/failures/connection')
11
+ description: partial(
12
+ "status/#{@status.connection.partial_namespace}/connection",
13
+ locals: {
14
+ details: @status.connection.details
15
+ }
16
+ )
12
17
  }
13
18
  )
14
19
  %>
@@ -0,0 +1 @@
1
+ <%# Expected to be empty. No content on success needed. %>
@@ -0,0 +1,11 @@
1
+ <p>
2
+ High latency detected when connecting to the Kafka cluster from the Web-UI.
3
+ </p>
4
+
5
+ <p>
6
+ Kafka is not designed to perform optimally under high network latencies; even when configurations seem appropriate, you may still encounter disconnects and other unexpected issues.
7
+ </p>
8
+
9
+ <p class="mb-0">
10
+ It took Web-UI <strong><%= details[:time].round(2) %> ms</strong> to get the cluster info.
11
+ </p>
@@ -3,6 +3,6 @@
3
3
  module Karafka
4
4
  module Web
5
5
  # Current gem version
6
- VERSION = '0.5.2'
6
+ VERSION = '0.6.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.5.2
4
+ version: 0.6.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-05-22 00:00:00.000000000 Z
38
+ date: 2023-06-25 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.40
60
+ version: 2.1.4
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.40
70
+ version: 2.1.4
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.12
80
+ version: 2.0.13
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.12
90
+ version: 2.0.13
91
91
  - - "<"
92
92
  - !ruby/object:Gem::Version
93
93
  version: 3.0.0
@@ -97,14 +97,20 @@ dependencies:
97
97
  requirements:
98
98
  - - "~>"
99
99
  - !ruby/object:Gem::Version
100
- version: '3.63'
100
+ version: '3.68'
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '3.68'
101
104
  type: :runtime
102
105
  prerelease: false
103
106
  version_requirements: !ruby/object:Gem::Requirement
104
107
  requirements:
105
108
  - - "~>"
106
109
  - !ruby/object:Gem::Version
107
- version: '3.63'
110
+ version: '3.68'
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '3.68'
108
114
  - !ruby/object:Gem::Dependency
109
115
  name: tilt
110
116
  requirement: !ruby/object:Gem::Requirement
@@ -171,7 +177,6 @@ files:
171
177
  - lib/karafka/web/processing/consumer.rb
172
178
  - lib/karafka/web/processing/consumers/aggregator.rb
173
179
  - lib/karafka/web/processing/consumers/state.rb
174
- - lib/karafka/web/tracking/base_contract.rb
175
180
  - lib/karafka/web/tracking/consumers/contracts/consumer_group.rb
176
181
  - lib/karafka/web/tracking/consumers/contracts/job.rb
177
182
  - lib/karafka/web/tracking/consumers/contracts/partition.rb
@@ -185,9 +190,17 @@ files:
185
190
  - lib/karafka/web/tracking/consumers/listeners/statistics.rb
186
191
  - lib/karafka/web/tracking/consumers/listeners/status.rb
187
192
  - lib/karafka/web/tracking/consumers/listeners/tags.rb
193
+ - lib/karafka/web/tracking/consumers/reporter.rb
188
194
  - lib/karafka/web/tracking/consumers/sampler.rb
195
+ - lib/karafka/web/tracking/contracts/base.rb
196
+ - lib/karafka/web/tracking/contracts/error.rb
197
+ - lib/karafka/web/tracking/helpers/error_info.rb
189
198
  - lib/karafka/web/tracking/memoized_shell.rb
190
- - lib/karafka/web/tracking/reporter.rb
199
+ - lib/karafka/web/tracking/producers/listeners/base.rb
200
+ - lib/karafka/web/tracking/producers/listeners/errors.rb
201
+ - lib/karafka/web/tracking/producers/listeners/reporter.rb
202
+ - lib/karafka/web/tracking/producers/reporter.rb
203
+ - lib/karafka/web/tracking/producers/sampler.rb
191
204
  - lib/karafka/web/tracking/sampler.rb
192
205
  - lib/karafka/web/tracking/ttl_array.rb
193
206
  - lib/karafka/web/tracking/ttl_hash.rb
@@ -207,6 +220,7 @@ files:
207
220
  - lib/karafka/web/ui/lib/hash_proxy.rb
208
221
  - lib/karafka/web/ui/lib/paginate_array.rb
209
222
  - lib/karafka/web/ui/models/consumer_group.rb
223
+ - lib/karafka/web/ui/models/counters.rb
210
224
  - lib/karafka/web/ui/models/health.rb
211
225
  - lib/karafka/web/ui/models/job.rb
212
226
  - lib/karafka/web/ui/models/message.rb
@@ -231,7 +245,6 @@ files:
231
245
  - lib/karafka/web/ui/pro/views/consumers/_breadcrumbs.erb
232
246
  - lib/karafka/web/ui/pro/views/consumers/_consumer.erb
233
247
  - lib/karafka/web/ui/pro/views/consumers/_counters.erb
234
- - lib/karafka/web/ui/pro/views/consumers/_summary.erb
235
248
  - lib/karafka/web/ui/pro/views/consumers/consumer/_consumer_group.erb
236
249
  - lib/karafka/web/ui/pro/views/consumers/consumer/_job.erb
237
250
  - lib/karafka/web/ui/pro/views/consumers/consumer/_metrics.erb
@@ -249,10 +262,7 @@ files:
249
262
  - lib/karafka/web/ui/pro/views/dlq/_topic.erb
250
263
  - lib/karafka/web/ui/pro/views/dlq/index.erb
251
264
  - lib/karafka/web/ui/pro/views/errors/_breadcrumbs.erb
252
- - lib/karafka/web/ui/pro/views/errors/_cleaned.erb
253
- - lib/karafka/web/ui/pro/views/errors/_detail.erb
254
265
  - lib/karafka/web/ui/pro/views/errors/_error.erb
255
- - lib/karafka/web/ui/pro/views/errors/_no_errors.erb
256
266
  - lib/karafka/web/ui/pro/views/errors/_partition_option.erb
257
267
  - lib/karafka/web/ui/pro/views/errors/index.erb
258
268
  - lib/karafka/web/ui/pro/views/errors/show.erb
@@ -273,7 +283,6 @@ files:
273
283
  - lib/karafka/web/ui/pro/views/health/_breadcrumbs.erb
274
284
  - lib/karafka/web/ui/pro/views/health/_partition.erb
275
285
  - lib/karafka/web/ui/pro/views/health/index.erb
276
- - lib/karafka/web/ui/pro/views/jobs/_breadcrumbs.erb
277
286
  - lib/karafka/web/ui/pro/views/jobs/_job.erb
278
287
  - lib/karafka/web/ui/pro/views/jobs/_no_jobs.erb
279
288
  - lib/karafka/web/ui/pro/views/jobs/index.erb
@@ -293,9 +302,9 @@ files:
293
302
  - lib/karafka/web/ui/views/cluster/_broker.erb
294
303
  - lib/karafka/web/ui/views/cluster/_partition.erb
295
304
  - lib/karafka/web/ui/views/cluster/index.erb
296
- - lib/karafka/web/ui/views/consumers/_breadcrumbs.erb
297
305
  - lib/karafka/web/ui/views/consumers/_consumer.erb
298
306
  - lib/karafka/web/ui/views/consumers/_counters.erb
307
+ - lib/karafka/web/ui/views/consumers/_no_consumers.erb
299
308
  - lib/karafka/web/ui/views/consumers/_summary.erb
300
309
  - lib/karafka/web/ui/views/consumers/index.erb
301
310
  - lib/karafka/web/ui/views/errors/_breadcrumbs.erb
@@ -320,6 +329,7 @@ files:
320
329
  - lib/karafka/web/ui/views/shared/_become_pro.erb
321
330
  - lib/karafka/web/ui/views/shared/_brand.erb
322
331
  - lib/karafka/web/ui/views/shared/_content.erb
332
+ - lib/karafka/web/ui/views/shared/_feature_pro.erb
323
333
  - lib/karafka/web/ui/views/shared/_header.erb
324
334
  - lib/karafka/web/ui/views/shared/_navigation.erb
325
335
  - lib/karafka/web/ui/views/shared/_pagination.erb
@@ -339,6 +349,8 @@ files:
339
349
  - lib/karafka/web/ui/views/status/failures/_topics.erb
340
350
  - lib/karafka/web/ui/views/status/info/_components.erb
341
351
  - lib/karafka/web/ui/views/status/show.erb
352
+ - lib/karafka/web/ui/views/status/successes/_connection.erb
353
+ - lib/karafka/web/ui/views/status/warnings/_connection.erb
342
354
  - lib/karafka/web/ui/views/status/warnings/_pro_subscription.erb
343
355
  - lib/karafka/web/version.rb
344
356
  - renovate.json
metadata.gz.sig CHANGED
Binary file
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Karafka
4
- module Web
5
- module Tracking
6
- # Base for all the metric related contracts
7
- class BaseContract < ::Karafka::Core::Contractable::Contract
8
- class << self
9
- # This layer is not for users extensive feedback, thus we can easily use the minimum
10
- # error messaging there is.
11
- def configure
12
- super do |config|
13
- config.error_messages = YAML.safe_load(
14
- File.read(
15
- File.join(Karafka::Web.gem_root, 'config', 'locales', 'errors.yml')
16
- )
17
- ).fetch('en').fetch('validations').fetch('web')
18
- end
19
- end
20
- end
21
-
22
- # @param data [Hash] data for validation
23
- # @return [Boolean] true if all good
24
- # @raise [Errors::ContractError] invalid report
25
- def validate!(data)
26
- super(data, Errors::Tracking::ContractError)
27
- end
28
- end
29
- end
30
- end
31
- end