Automatically recover unused Qlik Sense licenses
The latest version of Butler adds monitoring of Qlik Sense licenses and automatic release of unused licenses. This can both save money and reduce the risk of users not getting access to your Sense environment.
There are about as many license models as there are commercial software packages, it seems.
Qlik Sense Enterprise (the on-prem/client-managed product) is no exception and brings its own variant. It has slowly evolved over the years and is today quite mature with both per-person licenses, a capacity based model and a token based model.
A challenge with licenses tied to specific users is that you tend to run out of licenses for the wrong reason. People leave the company or change roles within the company - and don't use Sense anymore. But they still have a Sense license associated with them.
It is certainly possible to release and recover those unused licenses, but it is a manual process involving logging into the QMC, finding the correct user(s) and release their Sense licenses.
Adding to the above, it has historically been difficult to stay on top of current license usage. How many unused licenses are there left? What does the trend look like?
The QMC provides a (very) high-level overview and the admin/monitoring apps from Qlik gives more detail.
Those apps still rely on being reloaded to get new data, though.
Which uses reload slots that other apps could use otherwise.
Your friendly Butler can help
If you are serious about monitoring your Qlik Sense environment you should set up real-time monitoring of Sense (the open source Butler family of tools does exactly this).
That will make you the first to be notified when something breaks. Much better than your end users telling you "Sense is down"...
Same thing for licenses: Much better to proactively stay on top of license usage, compared to end users reporting "cannot log into Sense, no license available" issues.
Butler 11.1 added a couple of features that simplifies the above.
Monitoring license usage
Let's say you have deployed Butler and Butler SOS and thus have both best-in-class alerting when reload tasks fail (via Butler's alerting features) and real-time monitoring of visual Sense metrics (via Butler SOS).
Most companies use Grafana to visualise the data from Butler and Butler SOS, so Grafana is also already in place in this scenario.
Using Butler's new license monitoring feature you can now get real-time insights into current and past license usage.
Viewing the collected license data in Grafana, we see how many licenses or minutes (in the case of analyzer capacity licenses) are available:
Once licenses are assigned to users the chart will reflect this in real time:
Setup & configuration
All configuration is done in the Butler config file's Butler.qlikSenseLicense.licenseMonitor
section, instructions here.
Information for all license types will be read from Qlik Sense, even if only some license types are used in the Qlik Sense environment at hand.
Releasing unused licenses
This feature has the potential to save lots of manual work for Sense admins!
Instead of manually releasing licenses in the QMC, Butler can do this for you.
Using the same example as above, the moment where licenses are released shows clearly in the chart:
Each time Butler's license release feature executes (the frequency is configurable in the config file) Butler will look at all users and determine if they have been inactive at least the number of days (the threshold value) specified for each license type.
If a user has been inactive for longer than the threshold value, their license will be released. Information about all released users can optionally be stored in an InfluxDB database, for later viewing in Grafana.
This feature has the potential to let more users use your Sense environment, compared to a scenario where no release of licenses is done.
In order to avoid users not being able to access Sense you should still ensure to have a good margin, i.e. get more licenses from Qlik once you are running low. This is the only (and proper) way to ensure that users are not denied access to Sense due to missing licenses.
Also, you must ensure that managing licenses this way is not in conflict with your license agreement with Qlik.
Butler's license release feature uses APIs that are publicly documented by Qlik (example here). The same APIs are used by the QMC to release licenses. Butler simply automates what is otherwise a manual task in the QMC.
Setup & configuration
Configuration is done in the Butler.qliksenseLicense.licenseRelease
section of the config file. Instructions here.
The options include:
- Specify which users' licenses should never be released. Useful to ensure administrator and service accounts always have licenses.
- How often a license release should be done.
- Which license types should be released. Possible options are currently Analyzer and Professional.
- Into which InfoluxDB database to write information about released licenses.
What about the Qlik Sense monitoring apps?
The "License Monitor" app ships with each Qlik Sense installation.
It's great and provides very comprehensive information and features that enables retrospective analysis of the license situation.
The app however has to be reloaded to update with new data, it does not alert when licenses are running low and it does not release licenses for inactive users.
Butler addresses this:
- Pull license info with desired frequency directly from the Sense APIs. No need to reload the License Monitor app every hour.
- Use Grafana's excellent alerting features to get notified before running out licenses.
- Automatically recover licenses from users that have not used Sense for a certain number of days.