Hi there,
I’ve been working on the supporting Katello modifications due to the Upcoming changes to Dynflow. The PR[1] is close to merge and my goal is for it to be included in Katello 3.14
The purpose of this thread is to bring awareness to the change even though it will likely be merged today or otherwise very soon. Let’s keep broader discussion around the change in this thread, and specific requests for change on the PR so long as it’s not merged.
Summary
Katello’s event handling will no longer be managed by Dynflow, and instead run directly in the Rails process (specifically, the ‘preloader’ process, so that there is only a single instance) in background threads. The resiliency and ability to recover from errors has been preserved.
Testing
I’ve done general load testing in a production environment and haven’t seen any anomalies. My strategy was to register several thousand hosts with an activation key providing a subscription, and after all of the registration activity, remove the product providing that subscription; this would test a lot of the general behavior the event handlers might see in a real environment. I did not collect any performance metrics.
Katello event handling?
If you’re not familiar, you’ve probably at least seen the ‘Monitor Event Queue’ and ‘Listen on Candlepin Events’ tasks under Monitor -> Tasks. Those actions are gone now, but the underlying code has been preserved and is executed by the mechanism described above. The event handlers are concerned with the following things:
- Auto-publish of composite content views
- Errata applicability calculation
- Updating of host subscription compliance & system purpose status
- Updating and removal of subscription pools in Katello’s database
Visibility
Since visibility into the event handlers is not going to be possible through Monitor -> Tasks I’ve exposed some useful data about them via the ‘About’ page by reporting processed count, error count, and queue depth for the two handlers. Consequently, this same data is exposed via the Ping API. hammer ping
does need to be updated to expose the new reports for katello_events
and candlepin_events
as they are called.
Let me know of any questions, concerns, or anything else regarding this change.