// replace this placeholder text with your code

Asset Auditor

Asset Auditor provides complete transparency into the data assets across your Sisense environment, helping teams optimize performance, reduce unnecessary costs, and ensure high-quality analytics. With dedicated dashboards, organizations can see all data sources, track dependencies, and pinpoint inefficiencies in data models, dashboards, and widgets.

Installation and configuration

The Asset Auditor plugin can be installed by an Admin. Note that the Asset Auditor has a different installation process than other QBeeQ plugins.

The Asset Auditor is supported for Sisense customers that have Sisense installations:

  • On-prem and Cloud
  • Self-managed or Managed Cloud

Operating system support:

  • Linux
 
❌

Asset Auditor requires using the Custom Code feature, which is unavailable on Windows.

 

Extract files from the zip archive

Download the files from the QBeeQ Framework Dashboard and extract the files from the zipped folder. Verify you have the following files before starting:

  • QBeeQ Asset Auditor Code.sipynb
  • QBeeQ Asset Auditor.smodel
  • QBeeQ Asset Auditor Dashboards.dash

Enable Custom Code

To enable the Custom Code feature:

  1. Navigate to Admin Tab > Feature Management > Advanced Analytics.
  1. Toggle Custom Code to on and click Save.

Import the data model and delete table

To import the Asset Auditor data model:

  1. Locate the zip file and extract the QBeeQ Asset Auditor.smodel file
  1. Navigate to the Data Tab and import the data model without assets, using the above file.
  1. Open the model QBeeQ Asset Auditor
  1. Delete the RESTAPIMetadataDataModels table from the model

Import custom code notebook

To import the code into a notebook:

  1. Click + Custom at the top of the Data Model page
  1. Select Add Custom Code from the dropdown
  1. Select Import Notebook
 

Open custom code in the notebook

  1. Click + Custom at the top of the Data Model page
  1. Select Add Custom Code from the dropdown
  1. Select the Notebook named QBeeQ Asset Auditor Code
  1. Click Open in Jupyter Notebook link. The Jupyter Notebook will open in a new browser tab.
 

Replace code variables

It is required to replace the following variables so that the Asset Auditor has access to the assets in your Sisense instance. In the Transformation section of the Notebook, the following variables are visible.

licensing_email = 'yourlicenseemail@mail.com'
hostname = "https://test.com"
bearerToken = "test" 
headers = {
            'Content-Type': 'application/json',
            'Authorization': 'Bearer ' + bearerToken
          }
TimeoutRequest=100 # set timeout for API request(default is 100)
model_skip= 0 # set 1 to skip the section Models
dashboard_skip=0 # set 1 to skip the section Dashboards
plugin_skip=0 # set 1  to skip the section Plugins
 
â„šī¸

The licensing_email will be read from the system and automatically populated.

 
  • Replace hostname with your Sisense URL
    • âš ī¸

      When replacing the hostname, the new URL should not include the slash

      ✅ "https://myinstance.sisense.com"

      ❌ "https://myinstance.sisense.com/"

 
  • Replace bearerToken with your Sisense bearer token
    • âš ī¸

      The Sisense bearerToken is not the same as your individual API key and must be generated from the REST API

      1. Navigate to Admin Tab > REST API
      1. If not already selected, click 1.0
      1. Scroll to locate and expand the authentication endpoints
      1. Expand the GET/authentication/tokens/api endpoint
       
      1. Click the Try it button
      1. Click the Execute button
      1. Copy the token from the response "token": "this_is_the_sample_token” and replace in the Notebook
 
 

Run code in notebook

  1. Run the code in the Notebook by clicking Run > Run All Cells from the top menu bar
  1. When completed successfully, save the Notebook
â„šī¸

Depending on the number of Elasticubes and Dashboards on the server, executing code in the Notebook could take around 10 minutes to an hour, or more.

  1. Leave the Notebook tab, but leave it open. Do not close the tab.
 

Add custom code RESTAPIMetadataDataModels

  1. Click + Custom at the top of the Data Model page
  1. Select Add Custom Code from the dropdown
  1. Select the Notebook named QBeeQ Asset Auditor Code
  1. Click Done
  1. Hover over the table New Custom Code newNotebook, and click the three-dot menu
  1. Rename the new table as RESTAPIMetadataDataModels
 

Build the Elasticube

  1. Build the Elasticube and select Replace All
â„šī¸

The RESTAPIMetadataDataModels table does not need to be connected to any of the other tables within the model.

Import dashboards

  1. Locate the zip file QBeeQ Asset Auditor Dashboards.dash
  1. Create a new folder, named QBeeQ Asset Auditor
  1. Hover over Dashboards list in the home page and click the + symbol.
    1. You can also right-click anywhere in the dashboards list, or click on the menu of one of your existing folders to import a dashboard into a folder.
  1. Select Import Dashboard from the menu.
  1. Select QBeeQ Asset Auditor Dashboards.dash file and click OK

Troubleshooting

Below are troubleshooting tips for common issues you may experience when installing and configuring the Asset Auditor. If you are unable to resolve issues, contact support@qbeeq.io

 

bearerToken has expired

If the code worked before but later started showing format-related errors, the issue might be an expired token. Try regenerating the token and updating it in the Notebook before running the code again.

 

Sisense Custom Code Notebook has timed out

If the build error shows a timeout message for 900 seconds and the cube takes more than 15 minutes to build, you need to adjust the settings:

  • Go to Admin tab > Feature Management > 5 clicks on Sisense Logo > Build section.
  • Change the customCodeNotebookTimeoutSec.value to a higher value (1880).
  • Click Save
 

Code does not run successfully in Jupyter Notebooks

If the code fails to run, update the TimeoutRequest variable in the Transformation section. This will increase the timeout for API requests.

âš ī¸

Only change the TimeoutRequest variable if you encounter an API-related error

 

The Jupyter Notebook crashes on the first run

If the notebook crashes on the first run, set one or more of the following variables to identify the problematic section

  • model_skip
  • dashboard_skip
  • plugin_skip

The default is set to 0 and will run all sections of the code. Setting the value to 1 will ignore/skip that section.

Using the Asset Auditor Dashboards

The Asset Auditor was built as a diagnostic tool to help users visualize and understand the data assets within their Sisense environment. The Asset Auditor includes six different dashboards that provide information on the usage and utilization of these data assets.

âš ī¸

Asset Auditor dashboards may not be compatible with the unique theme or branding set by customers. Users may need to make manual changes.

Overview

Section
Chart
Description
Data Models Utilization
Data Models Utilization
Data Models Utilization
Tables Utilization
Data Models Utilization
Columns Utilization
Dashboards and Widgets Score
Dashboards with Valid Data References
Dashboards and Widgets Score
Dashboards with Valid Plugin References
Dashboards and Widgets Score
Dashboards with Valid Widget References
Dashboards and Widgets Score
Plugins with Valid Widget References

Data Models Overview

Section
Chart
Description
Overview
Data Models
Overview
Tables
Overview
Columns
Overview
Data Models by Type
Overview
Tables by Type
Overview
Tables by Connectors
Overview
Most Used Data Models in Dashboards
Details
Data Models Details

Data Models Utilization

Chart
Description
Data Models
Data Models Utilization
Data Models
Data Models
Data Models
Unused Data Models
Data Models
Empty Data Models
Tables
Tables Utilization
Tables
Tables
Tables
Unused Tables
Tables
% of Unused
Columns
Columns Utilization
Columns
Columns
Columns
Unused Columns
Details
Utilization by Data Model
Details
Column Use by Data Model
Recommendations
Empty Data Models
Recommendations
Unused Data Models
Recommendations
Unused Tables
Recommendations
Unused Columns

Dashboards Overview

Section
Chart
Description
Dashboards Overview
Dashboards
Dashboards Overview
Data Model Usage
Dashboards Overview
Widget Types by Dashboards
Dashboards Overview
Widget Count by Dashboard
Widgets Overview
Widgets
Widgets Overview
Unique Widget Types
Widgets Overview
Most Used Widget Types
Dashboards List
Dashboards List

Dashboards Validation

Section
Chart
Description
Dashboard Data Reference Checks
Dashboards
Dashboard Data Reference Checks
Dashboards with Issues
Dashboard Data Reference Checks
Dashboard Issues
Recommendations
Empty Dashboards
Recommendations
Empty Dashboards List
Recommendations - Dashboards
Dashboard Reference Check - Data Models
Recommendations - Dashboards
Dashboards Referencing Deleted Data Models
Dashboards Referencing Missing Data Models
Dashboard Reference Check - Tables or Columns
Dashboards Referencing Missing Data Models
Dashboards Referencing Deleted Tables or Columns
Recommendations - Dashboards Referencing Missing Tables and/or Columns
Dashboard Reference Check - Tables or Columns
Recommendations - Dashboards Referencing Missing Tables and/or Columns
Dashboards Referencing Deleted Tables or Columns
Dashboard Widget Reference Checks
Dashboard Widget Reference Checks
Recommendations for Dashboards referencing disabled plugins
Dashboards with Unregistered Plugins
Recommendations for Dashboards referencing missing plugins
Dashboards with Missing Plugins
Number of widgets per Dashboard
Number of widgets per Dashboard
Recommendations for Dashboards with more than 8 widgets
Dashboards with more than 8 widgets

Plugins

Section
Chart
Description
Plugins
Installed Plugins
Plugins
Disabled Plugins
Plugins
Plugins by Use
Plugins
Dashboards by Plugin
Recommendations
Unused Widget Plugins
Recommendations
Disabled Plugins
Installed Plugins
Installed Plugins

Editing the Asset Auditor Dashboards

The Asset Auditor dashboards can be edited by users with a Sisense Admin or Designer role.

This is beneficial so that users can make changes to dashboards to better suite specific use cases. We have provided the canonical column names and descriptions for the data in the QBeeQ Asset Auditor data model.

💡

It is recommended to create your own dashboards when creating new charts so that when dashboards are updated by QBeeQ, bespoke charts do not get removed.

Tables_and_columns

Column
Description
ColumnID
The unique id of the column in Sisense.
ColumnName
The name of the column in the table in the data model in SIsense.
ColumnSourceName
The name of the column in the source table in source connection (if exist). It could have id value for some type of data sources.
ColumnType
The code of the data format in Sisense.
Database
The name of the database in the source connection (if exist).
DataModel
The name of the data model
DataModelID
The unique id of the data model
DataModelLink
The HTML version of URL associated with the data model, clickable when added to a table
DataModelType
The type of the data model in Sisense Values: live or elasticube
Dataset
The source of data in the data model. data models can have more than one source. Example: DataModel1 has two datasets: CSV and Snowflake
DatasetName
Full name of the data set as is in the Sisense.
DatasetType
Type of the dataset live: Live connections for data models extract: Data imported (ex. Excel or DB) custom: Custom tables in the model created by data designer
key
The concatentation of DataModel, TableName and ColumnName for relationship beetween tables in the data model.! Technical field for this data model.
SchemaName
The name of the schema in the source connection, if it exists
TableName
The name of the table in the data model
TableSourceName
The name of the table in the source connection, if it exists. The table name may present as a clear text, or an ID depending on how it is designated in the data model.
TableID
The unique id of the table
RelationFlag
Shows whether the column is part of any relationship in the data model 0: The column has no a relation(s) 1: The column has a relation(s)
URL
The URL of the data model

Dashboards

Plugins

Column
Description
ColumnKey
The concatenation of the TableName and ColumnName
ColumnName
The name of the column from table from data model in sisense that was used in the widget
DashboardEmptyCheck
A flag that indicates if the dashboard is empty false: The dashboard contains widgets true: the dashboard contains no widgets
DashboardErrorMessage
The message that describes the type of dashboard error. This message is visible when DashboardHasError=1 Possible messages: Empty Dashboard, Deleted Data Model, Deleted Table or Column
DashboardHasError
A flag that indicates if the dashboard contains at least one error related to missing data references 0: Dashboard has no errors 1: Dashboards has at least one error
DashboardID
The unique id of a dashboard
DashboardName
The name of the dashboard
DashboardOwner
The plaintext email address of the dashboard owner
DatasourceName
The name of the data model(s) that are referenced as data sources for widgets on a dashboard. A dashboard can have many data sources, but a widget can only have one.
Field
A string that contains part of the code of widget data panel
key
The concatenation of DatasourceName, TableName and ColumnName for relationship between tables in the data model
Link
The HTML version of URL associated with the dashboard, clickable when added to a table
ObjectType
Type of the object on the dashboard Options: Widget: a widget from the dashboard Filter: a filter from dashboard filter panel
QBeeQWidget
A flag that indicates if the plugin is by QBeeQ 0: The plugin is provided by another vendor or custom 1: The plugin is by QBeeQ
ReferencingMissingColumnOrTable
A flag that indicates if the column or table used in the widget/filter is missing from the data model 0: 1: It references missing value
ReferencingMissingDataSource
A flag that indicates if the data model used in the widget/filter is missing
TableName
The name of the table from data model that was used in the widget
URL
The URL of the dashboard
Widgetid
The unique id of a widget
WidgetLink
The HTML version of URL associated with the widget, clickable when added to a table
WidgetType
The type of widget, values are based on Sisense and custom naming Sample values: Filter : filter from dashboard filter panel indicator : Sisense indicator widget pivot2 - Sisense pivot table widget
Column
Description
isSisense
Specifies whether the plugin is an official Sisense plugin Values: Sisense plugin: A plugin provided by Sisense Plugin: A plugin provided by a third-party or a custom plugin
PluginActive
Indicates whether the plugin is enabled (active) Values: true: Plugin is enabled false: Plugin is not enabled
PluginName
The name of the plugin
PluginVersion
The version of the plugin
pluginType
Specifies the plugin type widget: A visualization-related plugin based on a predefined list functional : All other types of plugins
 
 
Did this answer your question?
😞
😐
🤩