Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Suggest an Idea

Announcements
This page is no longer in use. To suggest an idea, please visit Browse and Suggest.

extension usage dashboard/api, etc..

simonaubert
Partner - Specialist II
Partner - Specialist II

extension usage dashboard/api, etc..

As of today, there isn't a solution to get an idea of the extension usage. However, I think this is a crucial need, especially when upgrading QlikSense.

So, what I sugget :
-a standard usage extension dashboard
-the ability to query the data through API.

Best regards,

Simon

Bi Consultant (Dataviz & Dataprep) @ Business & Decision
21 Comments
Iqbal_Khan
Contributor II
Contributor II

@Levi_Turner : Thanks. I validated and found that only Extensions of type "Visualization" are extracted. Type "theme" and "mashups" are not pulled. Do you have any plan to include theme and mashups as well?

Levi_Turner
Employee
Employee

Theme is a fair ask, but would require a fair bit of work to fetch that metadata. Mashups will always be excluded. At their core, mashups are not inside an app. So the approach of mapping app <> extension does not make sense. It's a fair ask to see whether a mashup has been used but will not be in the scope of the Extension Usage Dashboard.

Iqbal_Khan
Contributor II
Contributor II

@Levi_Turner : Sure, If we can extract theme information that will be sufficient for our requirement. please help us once this is possible. Thank you very much.

Iqbal_Khan
Contributor II
Contributor II

@Levi_Turner : Extension usage dashboard is failing after QlikSense Upgrade from April 2019 to June 2020 Patch 1. When I run the app it failed while executing below query in "Sheet Owners from QRS" script tab. I noticed that '$(vLibConnect)' used in other script tab also but they executed successfully.

Not sure why it is failing in a particular tab "Sheet Owners from QRS" . I am pasting log file too at the bottom. Can you please help to fix this.

LIB CONNECT TO '$(vLibConnect)';

RestConnectorMasterTable:
SQL SELECT
"id" AS "id_u2",
//"objectType",
"engineObjectId",
"__KEY_root",
(SELECT
"id",
"userId",
"userDirectory",
"name",
"__FK_owner"
FROM "owner" FK "__FK_owner"),
(SELECT
"id" AS "id_u1",
"__KEY_app",
"__FK_app"
FROM "app" PK "__KEY_app" FK "__FK_app")
FROM JSON (wrap on) "root" PK "__KEY_root"
WITH CONNECTION(
URL "https://$(vCentralHostname)/qrs/app/object/full?filter=objectType eq 'sheet'",
QUERY "xrfkey" "abcdefg123456789",
HTTPHEADER "X-Qlik-Xrfkey" "abcdefg123456789"
);

Log file snippet:

20200909T093302.592+0000 0449 LIB CONNECT TO 'monitor_apps_REST_app_old'
20200909T093303.076+0000 Connected.
20200909T093303.077+0000 0451 RestConnectorMasterTable:
20200909T093303.077+0000 0452 SQL SELECT
20200909T093303.077+0000 0453 "id" AS "id_u2",
20200909T093303.077+0000 0454
20200909T093303.077+0000 0455 "engineObjectId",
20200909T093303.077+0000 0456 "__KEY_root",
20200909T093303.077+0000 0457 (SELECT
20200909T093303.077+0000 0458 "id",
20200909T093303.077+0000 0459 "userId",
20200909T093303.077+0000 0460 "userDirectory",
20200909T093303.077+0000 0461 "name",
20200909T093303.077+0000 0462 "__FK_owner"
20200909T093303.077+0000 0463 FROM "owner" FK "__FK_owner"),
20200909T093303.077+0000 0464 (SELECT
20200909T093303.077+0000 0465 "id" AS "id_u1",
20200909T093303.077+0000 0466 "__KEY_app",
20200909T093303.077+0000 0467 "__FK_app"
20200909T093303.077+0000 0468 FROM "app" PK "__KEY_app" FK "__FK_app")
20200909T093303.077+0000 0469 FROM JSON (wrap on) "root" PK "__KEY_root"
20200909T093303.077+0000 0470 WITH CONNECTION(
20200909T093303.077+0000 0471 URL "https://qlikprod.go.akamai-access.com/defproxy/qrs/app/object/full?filter=objectType eq 'sheet'",
20200909T093303.077+0000 0472 QUERY "xrfkey" "abcdefg123456789",
20200909T093303.077+0000 0473 HTTPHEADER "X-Qlik-Xrfkey" "abcdefg123456789"
20200909T093303.077+0000 0474 )
20200909T093304.133+0000 12 fields found: id, userId, userDirectory, name, __FK_owner, id_u1, __KEY_app, __FK_app, id_u2, engineObjectId, __KEY_root, __extra_,
20200909T093304.139+0000 Error: HTTP protocol error 400 (Bad Request):
20200909T093304.139+0000
20200909T093304.139+0000 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
20200909T093304.139+0000 <HTML><HEAD><TITLE>Bad Request</TITLE>
20200909T093304.139+0000 <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
20200909T093304.139+0000 <BODY><h2>Bad Request</h2>
20200909T093304.139+0000 <hr><p>HTTP Error 400. The request is badly formed.</p>
20200909T093304.139+0000 </BOD...
20200909T093304.139+0000 Execution Failed
20200909T093304.149+0000 Execution finished.

Levi_Turner
Employee
Employee

@Iqbal_Khan : Either upgrade to June 2020 Patch 5 for the bug fix for QB-1995 or see this variant of the app which works around things (https://github.com/eapowertools/qs-extension-usage-dashboard/issues/9).

simonaubert
Partner - Specialist II
Partner - Specialist II

Hello @Patric_Nordstrom @Levi_Turner

As mentioned here : https://github.com/eapowertools/qs-extension-usage-dashboard/issues/7

The extension usage dashboard shows even extension that has been deleted (but without mentioning it's deleted). In my opinion as previoulsy discussed, the root is the use of the Telemetry Dashboard. Extension usage must show only the current metadata while TS must show an historical data. Maybe using API instead of logs would solve that?  I'm pretty sure it would take a couple of hours for a qlik dev to make a new monitor rest connection and plug it to the chart.

The sad part is that I have a project that needs to remove all illegitimate extensions and replace it with native object.


Best regards,

 

Simon

simonaubert
Partner - Specialist II
Partner - Specialist II
Jeffrey_Goldberg
Employee
Employee

However, I'm going to look into how to track it.

Status changed to: Open - Not Planned
simonaubert
Partner - Specialist II
Partner - Specialist II

@Jeffrey_GoldbergThanks. I really hope for a native, out of the box solution.

 Best regards,

Simon

mgranillo
Specialist
Specialist

@Levi_Turner  do you know if extensions in a container would be captured? It looks like we're missing those when I look through the results in the app.