karafka-web

Web UI for monitoring and managing Karafka consumers

OTHER License

Downloads
6.4M
Stars
45
Committers
4

Bot releases are hidden (Show)

karafka-web - v0.9.0.rc1 Latest Release

Published by mensfeld 6 months ago

  • [Breaking] Drop Ruby 2.7 support.
  • [Feature] Provide ability to stop and quiet running consumers (Pro).
  • [Feature] Provide ability to probe (get backtraces) of any running consumer (Pro).
  • [Feature] Provide cluster lags in Health (Pro).
  • [Feature] Provide ability to inspect cluster nodes configuration (Pro).
  • [Feature] Provide ability to inspect cluster topics configuration (Pro).
  • [Feature] Provide messages distribution graph statistics for topics (Pro).
  • [Enhancement] Provide first offset in the OSS jobs tab.
  • [Enhancement] Support failover for custom deserialization of headers and key in the explorer (Pro).
  • [Enhancement] Support failover for custom deserialization of headers and key in the explorer (Pro).
  • [Enhancement] Limit length of key presented in the list view of the explorer.
  • [Enhancement] Improve responsiveness on big screens by increasing max width.
  • [Enhancement] Auto-qualify topics with dlq/dead_letter case insensitive name components to DLQ view.
  • [Enhancement] Make tables responsive.
  • [Enhancement] Provide page titles for ease of navigation.
  • [Change] Rename Cluster => Topics to Cluster => Replication to better align with what is shows.
  • [Change] Make support messages more entertaining.
  • [Refactor] Normalize what is process name and process id.
  • [Refactor] Create one pro/ namespace for all Web related sub-modules.
  • [Refactor] Extract alerts into a common component.
  • [Refactor] Generalize charts generation.
  • [Fix] Fix invalid return when paginating with offsets.
  • [Fix] Improve responsiveness of summary in the consumers view for lower resolutions.
  • [Fix] Align pages titles format.
  • [Fix] Fix missing link from lag counter to Health.
  • [Fix] Fix a case where on mobile charts would not load correctly.
  • [Fix] Fix cases where long consumer names would break UI.
  • [Fix] Explorer deserializer wrongly selected for pattern matched topics.
  • [Fix] Fix 404 error page invalid recommendation of install instead of migrate.
  • [Fix] Fix dangling console.log.
  • [Fix] Fix a case where consumer assignments would not be truncated on the consumers view.

Upgrade Notes

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

This version of the Karafka Web UI should be upgraded together with Karafka. All upgrade documentation for Karafka and Web UI 0.9 can be found here.

karafka-web - v0.8.2

Published by mensfeld 8 months ago

  • [Enhancement] Defer scheduler background thread creation until needed allowing for forks.
  • [Enhancement] Tag forks with fork indication + ppid reference when operating in swarm.
  • [Fix] Fix issue where Health tabs would not be visible when no data reported.
  • [Fix] Stopped processes subscriptions lacks indicator of no groups.
  • [Fix] Terminated process state not supported in the web ui.
  • [Fix] Rebalance reason can be empty on a SG when no network.
karafka-web - v0.8.1

Published by mensfeld 8 months ago

  • [Enhancement] Introduce "Lags" health view.
  • [Enhancement] Remove "Stored Lag" and "Committed Offset" from Health Overview due to Lags Tab.
  • [Enhancement] Report lag on consumers that did not yet marked offsets.
  • [Enhancement] Use more accurate lag reporting that compensates for lack of stored lag.
  • [Fix] When first message after process start is crashed without DLQ lag is not reported.
  • [Fix] Wrong order of enabled injection causes fresh install to crash.
karafka-web - v0.8.0

Published by mensfeld 9 months ago

  • [Feature] Provide ability to sort table data for part of the views (note: not all attributes can be sorted due to technical limitations of sub-components fetching from Kafka).
  • [Feature] Track and report pause timeouts via "Changes" view in Health.
  • [Feature] Introduce pending jobs visibility alongside of running jobs both in total and per process.
  • [Feature] Introduce states migrations for seamless upgrades.
  • [Feature] Introduce "Data transfers" chart with data received and data sent to the cluster.
  • [Feature] Introduce ability to download raw payloads.
  • [Feature] Introduce ability to download deserialized message payload as JSON.
  • [Enhancement] Support reporting of standby and active listeners for connection multiplexed subscription groups.
  • [Enhancement] Support Periodic Jobs reporting.
  • [Enhancement] Support multiplexed subscription groups.
  • [Enhancement] Split cluster info into two tabs, one for brokers and one for topics with partitions.
  • [Enhancement] Track pending jobs. Pending jobs are jobs that are not yet scheduled for execution by advanced schedulers.
  • [Enhancement] Rename "Enqueued" to "Pending" to support jobs that are not yet enqueued but within a scheduler.
  • [Enhancement] Make sure only running jobs are displayed in running jobs
  • [Enhancement] Improve jobs related breadcrumbs
  • [Enhancement] Display errors backtraces in OSS.
  • [Enhancement] Display concurrency graph in OSS.
  • [Enhancement] Support time ranges for graphs in OSS.
  • [Enhancement] Report last poll time for each subscription group.
  • [Enhancement] Show last poll time per consumer instance.
  • [Enhancement] Display number of jobs in a particular process jobs view.
  • [Enhancement] Promote "Batches" chart to OSS.
  • [Enhancement] Promote "Utilization" chart to OSS.
  • [Enhancement] Allow for explicit disabling of the Web UI tracking.
  • [Fix] Web UI will keep reporting status even when not activated as long as required and in routes.
  • [Fix] Fix times precisions that could be incorrectly reported by 1 second in few places.
  • [Fix] Fix random order in Consumers groups Health view.
  • [Change] Rename "Busy" to "Running" to align with "Running Jobs".
  • [Change] Rename "Active subscriptions" to "Subscriptions" as process subscriptions are always active.
  • [Maintenance] Introduce granular subscription group contracts.

Upgrade Notes

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

Configuration

No configuration changes are needed.

Deployment

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

  1. Make sure you have upgraded to 0.7.10 before and that it was fully deployed.
  2. Test the upgrade on a staging or dev environment.
  3. Starting from 0.7.0 Karafka Web UI supports rolling deploys, so there is no need to "stop the world".
  4. The Web UI interface may throw 500 errors during the upgrade because of schema incompatibility (until Puma is deployed). This will have no long-term effects and can be ignored.
  5. 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.
  6. Perform a rolling deployment (or a regular one) and replace all consumer processes.
  7. Update the Web UI Puma.
  8. No CLI command execution is required. Starting from this release (0.8.0), the Karafka Web UI contains an automatic schema migrator that allows it to automatically adjust internal topic data formats.
  9. Enjoy.
karafka-web - v0.8.0.rc1

Published by mensfeld 9 months ago

RC1 of 0.8.0. See 0.8.0 changelog.

karafka-web - v0.7.10

Published by mensfeld 12 months ago

  • [Fix] Max LSO chart does not work as expected (#201)
karafka-web - v0.7.9

Published by mensfeld 12 months ago

  • [Enhancement] Allow for Karafka::Web.producer reconfiguration from the default (Karafka.producer).
  • [Change] Rely on karafka-core >= 2.2.4 to support lazy loaded custom web producer.
karafka-web - v0.7.8

Published by mensfeld 12 months ago

  • [Enhancement] Support transactional producer usage with Web UI.
  • [Fix] Fix a bug where critical errors (like IRB::Abort) would not abort the ongoing transaction.
  • [Fix] Prevent a scenario where an ongoing transactional producer would have stats emitted and an error that could not have been dispatched because of the transaction, creating a dead-lock.
  • [Fix] Make sure that the recent displays the most recent non-compacted, non-system message.
  • [Fix] Improve the recent message display to compensate for aborted transactions.
  • [Fix] Fix ReferenceError: response is not defined that occurs when Web UI returns refresh non 200.
karafka-web - v0.7.7

Published by mensfeld 12 months ago

  • [Fix] Remove thor as a CLI engine due to breaking changes.
karafka-web - v0.7.6

Published by mensfeld about 1 year ago

  • [Fix] Fix nested SASL/SAML data visible in the routing details (#173)
karafka-web - v0.7.5

Published by mensfeld about 1 year ago

  • [Enhancement] Update order of topics creation for the setup of Web to support zero-downtime setup of Web in running Karafka projects.
  • [Enhancement] Add space delimiter to counters numbers to make them look better.
  • [Improvement] Normalize per-process job tables and health tables structure (topic name on top).
  • [Fix] Fix a case where charts aggregated data would not include all topics.
  • [Fix] Make sure, that most recent per partition data for Health is never overwritten by an old state from a previous partition owner.
  • [Fix] Cache assets for 1 year instead of 7 days.
  • [Fix] Remove source maps pointing to non-existing locations.
  • [Maintenance] Include license and copyright notice for timeago.js that was missing in the JS min file.
karafka-web - v0.7.4

Published by mensfeld about 1 year ago

  • [Improvement] Skip aggregations on older schemas during upgrades. This only skips process-reports (that are going to be rolled) on the 5s window in case of an upgrade that should not be a rolling one anyhow. This simplifies the operations and minimizes the risk on breaking upgrades.
  • [Fix] Fix not working ps for macOS.
karafka-web - v0.7.3

Published by mensfeld about 1 year ago

  • [Improvement] Mitigate a case where a race-condition during upgrade would crash data.
karafka-web - v0.7.2

Published by mensfeld about 1 year ago

  • [Improvement] Display hidden by accident errors for OSS metrics.
  • [Improvement] Use a five second cache for non-production environments to improve dev experience.
  • [Improvement] Limit number of partitions listed on the Consumers view if they exceed 10 to improve readability and indicate, that there are more in OSS similar to Pro.
  • [Improvement] Squash processes reports based on the key instead of payload skipping deserialization for duplicated reports.
  • [Improvement] Make sure, that the Karafka topics present data can be deserialized and report on the status page if not.
  • [Fix] Extensive data-poll on processes despite no processes being available.
karafka-web - v0.7.1

Published by mensfeld about 1 year ago

  • [Improvement] Limit number of partitions listed on the Consumers view if they exceed 10 to improve readability and indicate, that there are more in Pro.
  • [Improvement] Make sure, that small messages size (less than 100 bytes) is correctly displayed.
  • [Fix] Validate refresh time.
  • [Fix] Fix invalid message payload size display (KB instead of B, etc).
karafka-web - v0.7.0

Published by mensfeld about 1 year ago

  • [Feature] Introduce graphs.
  • [Feature] Introduce historical metrics storage.
  • [Feature] Introduce per-topic data exploration in the Explorer.
  • [Feature] Introduce per-topic and per-partition most recent message view with live reload.
  • [Feature] Introduce a new per-process inspection view called "Details" ti display all process real-time aggregated data.
  • [Feature] Introduce bundle exec karafka-web migrate that can be used to bootstrap the proper topics and initial data in environments where Karafka Web-UI should be used but is missing the initial setup.
  • [Feature] Replace decrypt with a pluggable API for deciding which topics data to display.
  • [Feature] Make sure, that the karafka server process that is materializing UI states is not processing any data having unsupported (newer) schemas. This state will be also visible in the status page.
  • [Feature] Provide ability to reproduce a given message to the same topic partition with all the details from the per message explorer view.
  • [Feature] Provide "surrounding" navigation link that allows to view the given message in the context of its surrounding. Useful for debugging of failures where the batch context may be relevant.
  • [Feature] Allow for time based lookups per topic partition.
  • [Feature] Introduce Offsets Health inspection view for frozen LSO lookups with lso_threshold configuration option.
  • [Improvement] Support pattern subscriptions details in the routing view both by displaying the pattern as well as expanded routing details.
  • [Improvement] Collect total number of threads per process for the process details view.
  • [Improvement] Normalize naming of metrics to better reflect what they do (in reports and in the Web UI).
  • [Improvement] Link error reported first and last offset to the explorer.
  • [Improvement] Expand routing details to compensate for nested values in declarative topics.
  • [Improvement] Include last rebalance age in the health view per consumer group.
  • [Improvement] Provide previous / next navigation when viewing particular messages in the explorer.
  • [Improvement] Provide previous / next navigation when viewing particular errors.
  • [Improvement] Link all explorable offsets to the explorer.
  • [Improvement] Extend status page checks to ensure, that it detects a case when Web-UI is not part of karafka.rb but still referenced in routes.
  • [Improvement] Extend status page checks to ensure, that it detects a case where there is no initial consumers metrics in Kafka topic.
  • [Improvement] Report Rails version when viewing status page (if Rails used).
  • [Improvement] List Web UI topics names on the status page in the info section.
  • [Improvement] Start versioning the materialized states schemas.
  • [Improvement] Drastically improve the consumers view performance.
  • [Improvement] Ship versioned assets to prevent invalid assets loading due to cache.
  • [Improvement] Use Cache-Control to cache all the static assets.
  • [Improvement] Link counters counter to jobs page.
  • [Improvement] Include a sticky footer with the most important links and copyrights.
  • [Improvement] Store lag in counters for performance improvement and historical metrics.
  • [Improvement] Introduce in-memory cluster state cached to improve performance.
  • [Improvement] Switch to offset based pagination instead of per-page pagination.
  • [Improvement] Avoid double-reading of watermark offsets for explorer and errors display.
  • [Improvement] When no params needed for a page, do not include empty params.
  • [Improvement] Do not include page when page is 1 in the url.
  • [Improvement] Align descriptions for the status page, to reflect that state check happens for consumers initial state.
  • [Improvement] Report bytesize of raw payload when viewing message in the explorer.
  • [Improvement] Use zlib compression for Karafka Web UI topics reports (all). Reduces space needed from 50 to 91%.
  • [Improvement] Rename lag to lag stored in counters to reflect what it does.
  • [Improvement] Collect both stored lag and lag.
  • [Improvement] Introduce states and metrics schema validation.
  • [Improvement] Prevent locking in sampler for time of OS data aggregation.
  • [Improvement] Collect and report number of messages in particular jobs.
  • [Improvement] Limit segment size for Web topics to ensure, that Web-UI does not drain resources.
  • [Improvement] Introduce cookie based sessions management for future usage.
  • [Improvement] Introduce config validation.
  • [Improvement] Provide flash messages support.
  • [Improvement] Use replication factor of two by default (if not overridden) for Web UI topics when there is more than one broker.
  • [Improvement] Show a warning when replication factor of 1 is used for Web UI topics in production.
  • [Improvement] Collect extra additional metrics useful for hanging transactions detection.
  • [Improvement] Reorganize how the Health view looks.
  • [Improvement] Hide all private Kafka topics by default in the explorer. Configurable with show_internal_topics config setting.
  • [Fix] Return 402 status instead of 500 on Pro features that are not available in OSS.
  • [Fix] Fix a case where errors would not be visible without Rails due to the String#first usage.
  • [Fix] Fix a case where live-poll would be disabled but would still update data.
  • [Fix] Fix a case where states materializing consumer would update state too often.
  • [Fix] Fix a bug when rapid non-initialized shutdown could mess up the metrics.
  • [Fix] Fix a case where upon multiple rebalances, part of the states materialization could be lost.
  • [Fix] Make sure, that the flushing interval computation division happens with float.
  • [Fix] Fix a case where app client id change could force web-ui to recompute the metrics.
  • [Fix] Make sure, that when re-using same Karafka Web-UI topics as a different up, all states and reports are not recomputed back.
  • [Fix] Fix headers size inconsistency between Health and Routing.
  • [Fix] Fix invalid padding on status page.
  • [Fix] Fix a case where root mounted Karafka Web-UI would not work.
  • [Fix] Fix a case where upon hitting a too high page of consumers we would inform that no consumers are reporting instead of information that this page does not contain any reporting.
  • [Refactor] Limit usage of UI models for data intense computation to speed up states materialization under load.
  • [Refactor] Reorganize pagination engine to support offset based pagination.
  • [Refactor] Use Roda custom_block_results plugin for controllers results handling.
  • [Maintenance] Require karafka 2.2.0 due to fixes in the Iterator API and routing API extensions.
karafka-web - v0.6.3

Published by mensfeld about 1 year ago

[Fix] Remove files from 0.7.0 accidentally added to the release.

karafka-web - v0.6.2

Published by mensfeld about 1 year ago

  • [Fix] Fix extensive CPU usage when using HPET clock instead of TSC due to interrupt frequency.
karafka-web - v0.6.1

Published by mensfeld over 1 year ago

  • [Improvement] Include the karafka-web version in the status page tags.
  • [Improvement] Report karafka-web version that is running in particular processes.
  • [Improvement] Display karafka-web version in the per-process view.
  • [Improvement] Report in the web-ui a scenario, where getting cluster info takes more than 500ms as a warning to make people realize, that operating with Kafka with extensive latencies is not recommended.
  • [Improvement] Continue the status assessment flow on warnings.
  • [Fix] Do not recommend running a server as a way to bootstrap the initial state.
  • [Fix] Ensure in the report contract, that karafka-core, karafka-web, rdkafka and librdkafka are validated.
karafka-web - v0.6.0

Published by mensfeld over 1 year ago

  • [Feature] Introduce producers errors tracking.
  • [Improvement] Display the error origin as a badge to align with consumers view topic assignments.
  • [Improvement] Collect more job metrics for future usage.
  • [Improvement] Normalize order of job columns on multiple views.
  • [Improvement] Improve pagination by providing a "Go to first page" fast button.
  • [Improvement] Provide more explicit info in the consumers view when no consumers running.
  • [Improvement] Validate error reporting with unified error contract.
  • [Improvement] Use estimated errors count for counters presentation taken from the errors topic instead of materialization via consumers states to allow for producers errors tracking.
  • [Improvement] Introduce schema_version to error reports.
  • [Improvement] Do not display the dispatched error message offset in the breadcrumb and title as it was confused with the error message content.
  • [Improvement] Display error_class value wrapped with code tag.
  • [Improvement] Display error type value wrapped with label tag.
  • [Improvement] Include a blurred backtrace for non-Pro error inspection as a form of indication of this Pro feature.
  • [Fix] Fix invalid arrows style in the pagination.
  • [Fix] Fix missing empty Process name value in the errors index view.
  • [Fix] Fix potential empty dispatch of consumer metrics.
  • [Fix] Remove confusing part about real time resources from the "Pro feature" page.
  • [Refactor] Cleanup common components for errors extraction.
  • [Refactor] Remove not used and redundant partials.
  • [Maintenance] Require karafka 2.1.4 due to fixes in metrics usage for workless flows.