OEM Dashboard Configuration Guide
OEM Dashboard Configuration Guide
OEM Dashboard
Configuration Guide
v2.0.0
QLIK.COM
TABLE OF CONTENTS
Introduction 2
Pre-Requisites 3
Required Monitoring Applications 3
Third-Party Storage 3
Overall Flow 5
Configuration 10
Summary Table 10
Customizing Thresholds 16
Known Limitations 20
Entitlement Analyzer 20
Reload Analyzer 20
The OEM Dashboard is an application for Qlik Cloud designed for OEM partners to
centrally monitor data across their customers’ tenants. It provides a single pane to review
numerous dimensions and measures, compare trends, and quickly spot issues across
many different areas—which would otherwise be a tedious process. This application
includes data from the App Analyzer, Entitlement Analyzer, and the Reload Analyzer, all of
which are other monitoring applications for Qlik Cloud that provide deep levels of detail on
their respective areas. Together, a complete picture can be formed which is crucial to the
successful management of an OEM environment.
This guide provides an overview of the requirements and process of configuring the OEM
Dashboard application for Qlik Cloud. This guide does not cover the automated deployment
of this application, but rather shows how the process is done manually.
The following monitoring applications are required on all tenants. This guide will reference how to
manually set them up, however in a production environment at scale, they can be automatically
configured using Qlik’s APIs. These same applications are used across all tenants in this guide and
are configured differently based on the purpose of the tenant that they are installed on.
Each of the applications requires (once per tenant, can be shared across applications):
Third-Party Storage
As of the time of this guide, third-party storage is required for the centralization of data so that it can
be loaded into a single tenant. All tenants will write and read from the same location, allowing the
sharing of data across.
• Amazon S3
• Azure Storage
Terminology
The terms “Parent” and “Child” are used throughout this guide to denote the OEM Partner (“Parent”)
and Customer (“Child”) tenants. There are there no technical differences in the capabilities of these
tenants (tenants are non-hierarchical). This terminology, however, helps to separate where the
OEM Partner’s control and internal analysis lives as compared to their customers’ users. It is
assumed that each OEM partner will have at least one of these “Parent” tenants, as they will likely
not be repurposing one of their customers’ tenants for management and internal analysis.
Parent Tenant: This is the tenant that will host the monitoring applications in “Parent” mode as well
as the OEM Dashboard. These applications load from the data generated by all “Child” tenants’
monitoring applications.
Child Tenant: These are the customer tenants that each have the monitoring applications installed
on them in “Child” mode.
Monitoring Apps: This term refers to the core monitoring applications, including the App Analyzer,
Reload Analyzer, and Entitlement Analyzer. All three of these applications can run in “Parent”,
“Child”, or “normal” mode (“normal” being non-OEM with the capability flags toggled off).
Third-Party Storage: The centralized storage where all the metadata across all tenants will be
located.
Step 1
All monitoring applications are installed and configured on the “Child” tenants are set to “Child”
mode in the load script.
When they reload, their QVDs (non-transformed) are stored to centralized storage within the
Tenants directory for each tenant ID, respectively. The folder structure is created automatically.
The monitoring applications are installed and configured on the “Parent” tenant are set to “Parent”
mode in the load script.
When they reload, they load from all “Child” directories, concatenate the models, and then perform
any transformations necessary.
At the end of the reload of each “Parent” application, they store the final, composite model to QVD
in the CompiledTenants directory. The folder structure is created automatically.
The OEM Dashboard reads in the required data from the CompiledTenants directory, combining
the necessary tables from all models into a single model.
All metadata which is stored and read from the monitoring applications and OEM
Dashboard is housed under the QlikMetaCollection directory within the designated
third-party storage provider. This directory can reside beneath any number of parent
directories, and the structure beneath QlikMetaCollection it is automatically generated
(including the QlikMetaCollection directory itself). It is important to state that the
underlying directories should not be tampered with, as the monitoring applications are
dependent on its structure.
After the completion of the monitoring application reloads, the structure will resemble the
following (the Settings directories will appear if the Console Settings Collector add-on is
being leveraged):
QlikMetaCollection/
⮑ Tenants/
⮑ <TenantID>/
⮑ Monitoring/
⮑ <MonitoringApp>/
⮑ <QVDs>
⮑ Settings/
⮑ <QVDs>/
⮑ CompiledTenants/
⮑ Monitoring/
⮑ <MonitoringApp>/
⮑ <QVDs>
⮑ Settings/
⮑ <QVDs>
Notice that the CompiledTenants directory is one level shallower than the Tenants
directory. This is because all “Child” tenant data is consolidated by the “Parent” monitoring
applications. This directory is what the OEM Dashboard ingests. 9
Summary Table
Once the configuration is completed, the final deployment should resemble the below:
OEM Dashboard ✓
App Analyzer ✓ ✓
Entitlement Analyzer ✓ ✓
Reload Analyzer ✓ ✓
1. Create a connection to a third-party storage provider found in the Third-Party Storage section
above. This connection can reside in the same Shared space as the monitoring applications, or
a separate space, just be aware that the default placeholders for the connection names and
QVD storage locations use relative paths (more below).
10
5. Navigate to the load script of each application and make the following adjustments:
a. Navigate to the * Optional Configuration * tab. Find the variable
vu_multi_tenant_enabled and set it to 1. This toggles on multitenant mode.
Leave the vu_is_parent_app variable set to 0, as that will only be set on “Parent”
tenants. You will modify this step as per the instructions in the “Parent” Tenant
Monitoring App Configuration section below.
vu_multi_tenant_enabled 1 1
vu_is_parent_app 1 0
11
If the directory is not to be beneath any other folders, then you would enter either:
c. For the Reload Analyzer Only: It is important to consider how far back the data is
fetched and for how long it is held (rolling timeframe). Variables that control these
periods can be found within this same script tab and are vu_initial_days_back
and vu_reload_rolling_range , respectively. Depending on how many “Child”
tenants there are, the number of applications, the amount of expected reloads, etc. – you
will want to make sure that these ranges aren’t too wide (e.g., not 365). It is important to
consider that the OEM Dashboard views most metrics in rolling periods (last 30 days
rolling and last 30-60 days rolling), so perhaps an appropriate setting for each variable
would be 60. The vu_reload_rolling_range can always be shortened at a later
period.
The Entitlement Analyzer does not support the ability to truncate the data to a
rolling period like the Reload Analyzer does. The App Analyzer only collects
minimal rolling data, and defaults to 90 days back. As this rolling data is
aggregated daily, it is not nearly as large as the Reload Analyzer and can be
left at the default setting without issue.
12
1. Each of the monitoring applications must be configured on the “Parent” tenant as well, but this
time set to “Parent” mode. Follow the same instructions for a single “Child” tenant above,
however, when at step 5a, toggle vu_is_parent_app to 1.
2. In addition, as per the instructions in step 6 above state, the reload schedule should be hourly
but skewed by 30 minutes (or potentially less) from the children so that the “Parent” monitoring
apps reload after the “Child” monitoring apps.
The Entitlement Analyzer does not support analysis in “Parent” mode, while
the App Analyzer and Reload Analyzer do. This is because OEM tenants
leverage a single license across all tenants, and the Entitlement Analyzer does
not display data in that manner, and therefore can show incorrect
measurements. The OEM Dashboard provides this information.
2. Import the application into the desired Shared space on the “Parent” tenant. This application can
coexist in the same space with the other “Parent” monitoring applications.
3. Confirm that all “Child” applications and subsequently all “Parent” apps have been reloaded.
13
8. Place the application on a reload schedule if using Qlik Cloud for scheduling. The suggested
cadence is an hourly rate; however, this application needs to reload after the “Parent”
applications reload. So just as the “Parent” app is skewed from the “Child” apps by 30 minutes,
the OEM Dashboard can be skewed from the “Parent” apps by 15 minutes.
For example:
- “Child” applications at 15 minutes after the hour
- “Parent” applications at 45 minutes after the hour
- OEM Dashboard on the hour
14
1. Download the Console Settings Collector from the OEM Dashboard page on Qlik Community.
2. This application follows the same setup required as the other monitoring applications for both
“Child” and “Parent” configurations, with the following exceptions:
a. All variables are found on the ** Configuration ** tab in the load script, including those
that configure settings for multitenancy, as this application only applies to multitenant
scenarios.
b. In line with the above, the vu_multi_tenant_enabled variable does not exist, as it is
irrelevant.
3. Follow the same instructions from the “Child” configuration section and the “Parent”
configuration section for this application, taking note of the exceptions above.
4. Once configured and both the “Child” and “Parent” applications have been reloaded, navigate to
the Load Script of the OEM Dashboard.
5. Navigate to the **Optional Configuration** tab and find the variable
vConsoleSettingsCollector. Set this variable value to 1.
Example:
SET vConsoleSettingsCollector = 1;
6. Reload the OEM Dashboard.
7. Validate that the data from the Console Settings Collector has been loaded by navigating to the
Dashboard sheet, and then selecting the Features Across Tenants tab within the container.
15
16
17
2. I have accidentally set the “Parent” tenant as a “Child” in one of the monitoring
applications. How do I fix this? (Though, this can sometimes be desired)
a. Fetch the TenantID for the Parent tenant. If you do not know it offhand, you
can get it at /api/v1/tenants.
b. Navigate to your third-party storage provider and locate to the
QlikMetaCollection/Tenants directory.
c. Find the subdirectory that matches the TenantID and delete that entire
directory.
d. Reload each “Parent” monitoring application.
e. Reload the OEM Dashboard.
3. I have accidentally set a “Child” tenant as a “Parent” in one of the monitoring
applications. What do I do?
a. Setting the “Child” application as a “Parent” will only provide another “Parent”
view. The application will load all data from the children, perform any
transformations required, and then store the consolidated data back down to
QVDs. As this is all that the “Parent” app does, this is nothing to correct
outside of flipping it back to “Child” mode.
18
19
Entitlement Analyzer
The Entitlement Analyzer cannot be analyzed itself while it is in “Parent” mode. The application was
initially designed for visualizing data from a single tenant with a single license, so many
visualizations would report incorrect numbers as the master measures are not designed to support
this use case. The OEM Dashboard is intended to be the visual layer upon this data for multiple
tenants.
In addition, this application once reloaded begins collecting data at the current month and builds
forward from there, incrementally. Harvesting historical data farther back than the first month is not
supported by this application.
Reload Analyzer
The Reload Analyzer will not collect data if it is the first app ever reloaded on a tenant. If this is the
case, simply reload it again to begin collecting data.
20
21