karafka-web 0.11.2 → 0.11.4

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/Gemfile +0 -2
  4. data/Gemfile.lock +78 -39
  5. data/bin/integrations +44 -0
  6. data/bin/rspecs +6 -2
  7. data/bin/verify_kafka_warnings +1 -1
  8. data/config/locales/errors.yml +1 -0
  9. data/docker-compose.yml +1 -3
  10. data/karafka-web.gemspec +2 -2
  11. data/lib/karafka/web/app.rb +2 -3
  12. data/lib/karafka/web/cli/help.rb +1 -1
  13. data/lib/karafka/web/config.rb +8 -0
  14. data/lib/karafka/web/contracts/base.rb +2 -4
  15. data/lib/karafka/web/contracts/config.rb +5 -5
  16. data/lib/karafka/web/deserializer.rb +6 -1
  17. data/lib/karafka/web/errors.rb +8 -5
  18. data/lib/karafka/web/management/actions/enable.rb +14 -1
  19. data/lib/karafka/web/management/migrations/consumers_reports/1761645571_rename_process_name_to_id.rb +38 -0
  20. data/lib/karafka/web/management/migrator.rb +3 -2
  21. data/lib/karafka/web/pro/commanding/commands/base.rb +1 -1
  22. data/lib/karafka/web/pro/commanding/contracts/config.rb +2 -4
  23. data/lib/karafka/web/pro/commanding/handlers/partitions/tracker.rb +2 -3
  24. data/lib/karafka/web/pro/ui/controllers/scheduled_messages/schedules_controller.rb +1 -2
  25. data/lib/karafka/web/pro/ui/controllers/topics/distributions_controller.rb +1 -3
  26. data/lib/karafka/web/pro/ui/lib/branding/contracts/config.rb +2 -4
  27. data/lib/karafka/web/pro/ui/lib/policies/contracts/config.rb +2 -4
  28. data/lib/karafka/web/pro/ui/lib/search/contracts/config.rb +3 -5
  29. data/lib/karafka/web/pro/ui/lib/search/contracts/form.rb +3 -5
  30. data/lib/karafka/web/pro/ui/lib/search/runner.rb +14 -1
  31. data/lib/karafka/web/pro/ui/routes/errors.rb +3 -3
  32. data/lib/karafka/web/pro/ui/routes/explorer.rb +3 -3
  33. data/lib/karafka/web/pro/ui/views/health/_no_partition_data.erb +9 -0
  34. data/lib/karafka/web/pro/ui/views/health/_partitions_with_fallback.erb +41 -0
  35. data/lib/karafka/web/pro/ui/views/health/changes.erb +12 -13
  36. data/lib/karafka/web/pro/ui/views/health/lags.erb +12 -13
  37. data/lib/karafka/web/pro/ui/views/health/offsets.erb +12 -13
  38. data/lib/karafka/web/pro/ui/views/health/overview.erb +15 -16
  39. data/lib/karafka/web/processing/consumer.rb +8 -3
  40. data/lib/karafka/web/processing/consumers/aggregators/metrics.rb +1 -1
  41. data/lib/karafka/web/processing/consumers/aggregators/state.rb +10 -6
  42. data/lib/karafka/web/processing/consumers/contracts/state.rb +6 -1
  43. data/lib/karafka/web/processing/consumers/reports_migrator.rb +49 -0
  44. data/lib/karafka/web/processing/time_series_tracker.rb +1 -1
  45. data/lib/karafka/web/tracking/consumers/contracts/report.rb +1 -1
  46. data/lib/karafka/web/tracking/consumers/contracts/topic.rb +1 -0
  47. data/lib/karafka/web/tracking/consumers/listeners/errors.rb +2 -1
  48. data/lib/karafka/web/tracking/consumers/listeners/processing.rb +46 -0
  49. data/lib/karafka/web/tracking/consumers/listeners/statistics.rb +1 -0
  50. data/lib/karafka/web/tracking/consumers/sampler/enrichers/base.rb +20 -0
  51. data/lib/karafka/web/tracking/consumers/sampler/enrichers/consumer_groups.rb +116 -0
  52. data/lib/karafka/web/tracking/consumers/sampler/metrics/base.rb +20 -0
  53. data/lib/karafka/web/tracking/consumers/sampler/metrics/container.rb +113 -0
  54. data/lib/karafka/web/tracking/consumers/sampler/metrics/jobs.rb +60 -0
  55. data/lib/karafka/web/tracking/consumers/sampler/metrics/network.rb +48 -0
  56. data/lib/karafka/web/tracking/consumers/sampler/metrics/os.rb +206 -0
  57. data/lib/karafka/web/tracking/consumers/sampler/metrics/server.rb +33 -0
  58. data/lib/karafka/web/tracking/consumers/sampler.rb +34 -215
  59. data/lib/karafka/web/tracking/contracts/error.rb +1 -0
  60. data/lib/karafka/web/tracking/helpers/ttls/hash.rb +2 -3
  61. data/lib/karafka/web/tracking/helpers/ttls/stats.rb +1 -2
  62. data/lib/karafka/web/tracking/producers/listeners/base.rb +1 -1
  63. data/lib/karafka/web/tracking/producers/listeners/errors.rb +2 -1
  64. data/lib/karafka/web/tracking/ui/errors.rb +76 -0
  65. data/lib/karafka/web/ui/base.rb +19 -9
  66. data/lib/karafka/web/ui/controllers/requests/execution_wrapper.rb +2 -4
  67. data/lib/karafka/web/ui/controllers/requests/params.rb +1 -1
  68. data/lib/karafka/web/ui/helpers/application_helper.rb +1 -1
  69. data/lib/karafka/web/ui/helpers/paths_helper.rb +6 -9
  70. data/lib/karafka/web/ui/lib/sorter.rb +1 -1
  71. data/lib/karafka/web/ui/models/health.rb +14 -9
  72. data/lib/karafka/web/ui/models/jobs.rb +4 -6
  73. data/lib/karafka/web/ui/models/message.rb +7 -8
  74. data/lib/karafka/web/ui/models/metrics/aggregated.rb +4 -4
  75. data/lib/karafka/web/ui/models/metrics/charts/aggregated.rb +1 -2
  76. data/lib/karafka/web/ui/models/metrics/charts/topics.rb +2 -2
  77. data/lib/karafka/web/ui/models/metrics/topics.rb +3 -4
  78. data/lib/karafka/web/ui/models/recurring_tasks/schedule.rb +1 -1
  79. data/lib/karafka/web/ui/public/javascripts/application.min.js.gz +0 -0
  80. data/lib/karafka/web/ui/public/stylesheets/application.min.css +199 -105
  81. data/lib/karafka/web/ui/public/stylesheets/application.min.css.br +0 -0
  82. data/lib/karafka/web/ui/public/stylesheets/application.min.css.gz +0 -0
  83. data/lib/karafka/web/ui/public/stylesheets/libs/highlight_dark.min.css.gz +0 -0
  84. data/lib/karafka/web/ui/public/stylesheets/libs/highlight_light.min.css.gz +0 -0
  85. data/lib/karafka/web/ui/routes/errors.rb +3 -3
  86. data/lib/karafka/web/ui/views/shared/exceptions/unhandled_error.erb +42 -0
  87. data/lib/karafka/web/version.rb +1 -1
  88. data/lib/karafka/web.rb +10 -13
  89. data/package-lock.json +184 -240
  90. data/package.json +3 -3
  91. data/renovate.json +13 -0
  92. metadata +19 -4
@@ -11,10 +11,10 @@ module Karafka
11
11
  controller = build(Controllers::ErrorsController)
12
12
 
13
13
  r.get Integer do |offset|
14
- if params.current_offset != -1
15
- r.redirect root_path('errors', params.current_offset)
16
- else
14
+ if params.current_offset == -1
17
15
  controller.show(offset)
16
+ else
17
+ r.redirect root_path('errors', params.current_offset)
18
18
  end
19
19
  end
20
20
 
@@ -0,0 +1,42 @@
1
+ <div class="hidden">
2
+ <%== partial 'shared/controls' %>
3
+ </div>
4
+
5
+ <main class="flex items-center justify-center min-h-screen">
6
+ <div id="content" class="max-w-2xl w-full mx-auto">
7
+ <div class="flex items-center justify-center vh-100">
8
+ <div class="text-center">
9
+ <h1 class="text-8xl font-bold">500</h1>
10
+
11
+ <p class="text-3xl mt-5">
12
+ <span class="text-red-500">Oops!</span> Internal Server Error.
13
+ </p>
14
+
15
+ <div class="mt-5">
16
+ <p class="mb-10 text-lg font-light">
17
+ Something went wrong while processing your request.
18
+ </p>
19
+
20
+ <p class="text-lg font-light mb-5">This error has been reported and logged. Please try the following:</p>
21
+
22
+ <ul class="list-disc text-left text-lg mb-10 pl-5 font-light">
23
+ <li>Visit the <a href="<%= root_path('status') %>" class="text-blue-500 underline">Status</a> page to check if there are any system issues</li>
24
+ <li>Check the <a href="<%= root_path('errors') %>" class="text-blue-500 underline">Errors</a> page for details about this error</li>
25
+ <li>Verify that all required topics exist and are accessible</li>
26
+ <li>Ensure you have a working connection with your Kafka cluster</li>
27
+ <li>Try refreshing the page or navigating back to retry your action</li>
28
+ </ul>
29
+
30
+ <p class="mb-10 text-lg font-light">
31
+ If the problem persists, please check your application logs for more details.
32
+ </p>
33
+
34
+ <p>
35
+ <a href="<%= root_path %>" class="btn btn-primary mr-2 rounded-md py-1">Go Home</a>
36
+ <a href="<%= root_path('status') %>" class="btn btn-success text-white rounded-md">Status page</a>
37
+ </p>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </main>
@@ -3,6 +3,6 @@
3
3
  module Karafka
4
4
  module Web
5
5
  # Current gem version
6
- VERSION = '0.11.2'
6
+ VERSION = '0.11.4'
7
7
  end
8
8
  end
data/lib/karafka/web.rb CHANGED
@@ -1,15 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- %w[
4
- karafka
5
- roda
6
- etc
7
- open3
8
- zlib
9
- securerandom
10
- cgi
11
- uri
12
- ].each { |lib| require lib }
3
+ require 'karafka'
4
+ require 'roda'
5
+ require 'etc'
6
+ require 'open3'
7
+ require 'zlib'
8
+ require 'securerandom'
9
+ require 'cgi'
10
+ require 'uri'
13
11
 
14
12
  module Karafka
15
13
  # Karafka Web UI + Karafka web monitoring
@@ -28,8 +26,7 @@ module Karafka
28
26
  end
29
27
 
30
28
  # Sets up the whole configuration
31
- # @param [Block] block configuration block
32
- def setup(&block)
29
+ def setup(&)
33
30
  # You should never reconfigure Web UI after it has been enabled
34
31
  raise Errors::LateSetupError, 'Always call #setup before #enable!' if config.enabled
35
32
 
@@ -40,7 +37,7 @@ module Karafka
40
37
  Pro::Loader.pre_setup_all(config)
41
38
  end
42
39
 
43
- Config.configure(&block)
40
+ Config.configure(&)
44
41
 
45
42
  Pro::Loader.post_setup_all(config) if Karafka.pro?
46
43