Drift, a feature within Red Hat Insights, can help with managing and troubleshooting issues across a number of systems. Red Hat Insights is a Red Hat Enterprise Linux (RHEL) configuration analysis service that is available as part of your RHEL subscription. 

System administrators can use Drift to compare configurations, define baselines, and ultimately perform root-cause analysis of issues during troubleshooting. Since system configurations tend to vary and drift away from initial defined standard operating environments, it is important for users to be able to immediately check if a problem can be related to any differences from the recommended configuration.

In this post, we will explore some new features recently added to the Drift UI in response to customer feedback, including requests to help troubleshoot faster.

Multi-fact Filtering

Multi-fact filtering gives you the power to create comparisons that drill down to the most important elements to you, negating the need to swap back and forth between multiple filters. It also proves to be useful for quickly comparing facts related to a specific issue while troubleshooting, and filtering out un-related facts.

Previously, filtering facts in a comparison was limited to a single fact name input (an example is shown in the first figure). As you entered a fact you wanted to filter by, the comparison table would filter out any fact name that didn’t match the combination of characters you had typed, with each keystroke. 

Substrings would also be matched (e.g., typing “kern” will give you “kernel” and “os_kernel_version”). And, if you wanted to filter a category name (e.g., installed_packages), just typing the full name of the category would bring it up by itself with all of its sub facts present underneath.

One previous requirement was that you had to clear your filter every time you wanted to filter the list of facts by a different name.

Drift filter dialog

Now, with the new multi-fact filtering, you have the power to “lock in” multiple filters on facts by simply pressing enter after you are finished typing the fact name in the text input box. Multi-fact filtering is powered with an OR operator, giving you the flexibility to filter out anything that doesn’t match “this” or “that.”

In the next example, the list of facts will only contain facts whose name matches “bios’ or “arch.”

Matching "bios" or "arch" in the Drift dialog (screenshot)

If you notice that the responsiveness of filtering and sorting of a comparison is fast, it’s because Drift does all of it client-side. This is done in an effort to minimize the wait time for an API call and give you immediate results.

Additional URL Parameters

To make it even quicker, Drift has implemented filters and sorts as parameters within the URL. This has been done in preparation for a planned feature in Drift that will allow you to save your comparisons with filters and sorting so you can access them again later with a single click.

Let’s dissect the URL to give a better understanding:

insights/drift/?baseline_ids=<baseline-id>&system_ids=<system-id>&hsp_ids=<hsp-id>&filter[name]=bios,arch&filter[state]=same,different,incomplete_data&sort=-state,fact

Parameters:

  1. insights/drift/

  2. ?

  3. baseline_ids=<baseline-id>&system_ids=<system-id>&hsp_ids=<hsp-id>

  4. &filter[name]=bios,arch

  5. &filter[state]=same,different,incomplete_data

  6. &sort=-state,fact

How to use parameters:

  1. App service: This reflects the app service you are using. In this case, Drift on Red Hat Insights.

  2. Search parameter: This is the character that tells Drift you want to search on the parameters that follow.

  3. Ids of systems/baselines/historical profiles: These are the IDs of the systems, baselines and historical profiles in your comparison. Each preceded by the & symbol after the first ? symbol, and each with the respective parameter type [baseline_ids, system_ids or hsp_ids].

  4. Fact name filters: Begins with the & symbol and filter[name]. Each fact name filter applied is added after the = symbol and separated by a comma with no spaces.

  5. State filters: Same as fact name filters, but preceded by filter[state]. Valid values for filter[state] are: same, different and incomplete_data. Multiple values can be specified by separating them with a comma and no space.

  6. Table sorting: Preceded by the & symbol, state and/or fact are added after sort= and are comma separated. If state or fact is preceded by a - symbol, then it is sorted in descending order; otherwise it’s in ascending order. State sort has the ability to have no sort. In this case, state will not be added in the url parameter. Fact sorting, on the other hand, if left off, will default to ascending order.

These parameters can be entered manually, but their primary function is to auto-populate as you make changes in the UI. 

Obfuscated Value Highlights

Red Hat Insights client provides IP address obfuscation and host name obfuscation. More information about setting up client data obfuscation can be found in the documentation.

In the instance that one of your fact values is redacted to protect information, Drift provides ways to inform you that the hidden data is obfuscated in the comparison. It does this a few different ways:

  • Graying out of the value cell.

  • Including a lock icon in the grayed out cell with a tooltip telling you the value has been redacted.

  • Including a tooltip on the “State” icon to describe why the “Incomplete data” state is set for that row.

tooltip on the “State” icon to describe why the “Incomplete data” state is set for that row (screenshot of Drift UI)

tooltip on the “State” icon to describe why the “Incomplete data” state is set for that row (screenshot of Drift UI)

If one of the values in the comparison is redacted, the state of the comparison for that fact will be set to “Incomplete data.”

Multi-value Facts

The new multi-value fact feature aims to solve the problem where packages with multiple versions installed would only display one of them. Drift now stores a list of all installed versions for a given package name. This means you can correctly evaluate and compare all versions installed when performing a comparison.

Previously, each installed_package fact had an associated value that was used to compare systems and baselines. This was a limitation for packages for which multiple values are possible. For example, it is possible to install multiple kernel packages on your RHEL system, and select the version you want to run at startup. Another example is the possibility to have multiple versions or architectures, or the same package installed on your RHEL system. Previously, having only one value associated with each fact was not allowing proper troubleshooting in Drift.
Drift dialog / UI showing multiple values associated with several "facts" (screenshot)

The Inventory and Drift APIs were also extended to provide facts with multiple values. More information can be found on the Red Hat Insights API documentation. We invite you to try all of these new features in Drift on Red Hat Insights. (Note, these links require logging in.)

Is this tool helping you maintain your systems? Do you have any suggestions for additional enhancements that would benefit the troubleshooting of RHEL configurations?  Please reach out with comments and feedback using Red Hat Customer Portal feedback form.


About the author

Michael Johnson is a Software Engineer on the Drift team for Red Hat Insights and cloud.redhat.com. Previously a public relations and communications professional, Johnson made the switch to Computer Science to combine his propensity towards creative and logical problem solving. Johnson is a husband, father, Christian, video gamer, cigar smoker, home brewer and lover of fantasy.

Read full bio