Skip to content

v0.10.0

Compare
Choose a tag to compare
@mensfeld mensfeld released this 19 Aug 13:08
· 51 commits to master since this release
947ba1e
  • [Breaking] Rename and reorganize visibility filter to policies engine since it is not only about visibility.
  • [Feature] Replace Bootstrap with with tailwind + DaisyUI.
  • [Feature] Redesign the UI and move navigation to the left to make space for future features.
  • [Feature] Support per request policies for inspection and operations limitation.
  • [Feature] Provide Search capabilities in the Explorer (Pro).
  • [Feature] Provide dark mode.
  • [Enhancement] Set enable.partition.eof to false for Web UI consumer group as it is not needed.
  • [Enhancement] Allow for configuration of extra kafka scope options for the Web UI consumer group.
  • [Enhancement] Support Karafka #eofed consumer action.
  • [Enhancement] Provide topics watermarks inspection page (Pro).
  • [Enhancement] Use Turbo to improve usability.
  • [Enhancement] Round poll age reporting to precision of 2 reducing the payload size.
  • [Enhancement] Round utilization reporting to precision of 2 reducing the payload size.
  • [Enhancement] Validate states materialization lag in the status view.
  • [Enhancement] Promote topics data pace to OSS.
  • [Enhancement] Rename and normalize dashboard tabs.
  • [Enhancement] Enable live data polling on the first visit so it does not have to be enabled manually.
  • [Enhancement] Allow disabling ability to republish messages via policies.
  • [Enhancement] Display raw numerical timestamp alongside message time.
  • [Enhancement] Support /topics root redirect.
  • [Enhancement] Prevent explorer from displaying too big payloads (bigger than 1MB by default)
  • [Enhancement] Include deserialization object allocation stats.
  • [Enhancement] Improve how charts with many topics work.
  • [Enhancement] Count and display executed jobs independently from processed batches.
  • [Enhancement] Prevent karafka-web from being configured before karafka is configured.
  • [Enhancement] Use ostruct from RubyGems in testing.
  • [Enhancement] Indicate in the status reporting whether Karafka is OSS or Pro.
  • [Enhancement] Ship JS and CSS assets using Brotli and Gzip when possible.
  • [Enhancement] Introduce a /ux page to ease with styling improvements and components management.
  • [Enhancement] disallow usage of <script> blocks to prevent XSS.
  • [Enhancement] Display full subscription group information in the Routing view, including injectable defaults.
  • [Enhancement] Report Karafka consumer server execution mode.
  • [Enhancement] Expose sync_threshold consumer tracking config to allow aligning of error-intense applications.
  • [Refactor] Optimize subscription group data tracking flow.
  • [Refactor] Namespace migrations so migrations related to each topic data are in an independent directory.
  • [Refactor] Use errors for deny flow so request denials can occur from the inspection layer.
  • [Maintenance] Require karafka 2.4.7 due to fixes and API changes.
  • [Fix] Disallow quiet and stop commands for swarm workers.
  • [Fix] Disallow quiet and stop commands for embedded workers.
  • [Fix] Fix invalid deserialization metadata display in the per-message Explorer view.
  • [Fix] Fix a case where started page refresh would update content despite limiters being in place.
  • [Fix] Ruby 3.4.0 preview1 - No such file or directory.
  • [Fix] Fix the live poll button state flickering when disabled.
  • [Fix] Pace computation does not compensate for partial data reported.
  • [Fix] DLQ parent topics get classified as DLQ in the Web.
  • [Fix] Add missing space in the attempt label.
  • [Fix] Fix lack of highlight of "Consumers" navigation when in the "Commands" tab.
  • [Fix] Fix not working page reporting in breadcrumbs.
  • [Fix] Fix invalid redirect when trying to view particular errors partition time location.
  • [Fix] Fix several UI inconsistencies.
  • [Fix] License identifier LGPL-3.0 is deprecated for SPDX (#2177).
  • [Fix] Do not include prettifying the payload for visibility in the resource computation cost.

Upgrade Notes

This is a major release that brings many things to the table.

This version of the Karafka Web UI requires Karafka >= 2.4.7. You can either upgrade both or upgrade Karafka first and then the Web UI. Karafka 2.4.7 is also compatible with Web UI 0.9.1; thus, you can upgrade one at a time.

Configuration

Visibility Filters have been reorganized into messages policies.

Please read the Policies API documentation and convert your visibility filters to policies.

Your existing message-related visibility filter policies should now be assigned to a new configuration:

Karafka::Web.setup do |config|
  config.ui.policies.messages = MyCustomRequestsPolicy.new
end

Deployment

Because of the reporting schema update, it is recommended to:

  1. Make sure you have upgraded to 0.9.1 before and that it was fully deployed.
  2. Test the upgrade on a staging or dev environment.
  3. The Web UI interface may throw 500 errors during the upgrade because of schema incompatibility (until Puma is deployed and all consumers redeployed). This will have no long-term effects and can be ignored.
  4. Karafka::Web::Errors::Processing::IncompatibleSchemaError is expected. It is part of the Karafka Web UI zero-downtime deployment strategy. This error allows the Web UI materialization consumer to back off and wait for it to be replaced with a new one.
  5. Perform a rolling deployment (or a regular one) and replace all consumer processes.
  6. Update the Web UI Puma.
  7. No CLI command execution is required.
  8. Enjoy.