v0.10.0
- [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
tofalse
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:
- Make sure you have upgraded to
0.9.1
before and that it was fully deployed. - Test the upgrade on a staging or dev environment.
- 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.
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.- Perform a rolling deployment (or a regular one) and replace all consumer processes.
- Update the Web UI Puma.
- No CLI command execution is required.
- Enjoy.