--- title: "Web App Performance Installation Instructions" slug: "web-app-performance-installation-instructions" status: "update" updated: 2026-10-06T14:03:23Z published: 2026-10-06T14:03:23Z canonical: "documentation.lakesidesoftware.com/web-app-performance-installation-instructions" --- > ## Documentation Index > Fetch the complete documentation index at: https://documentation.lakesidesoftware.com/llms.txt > Use this file to discover all available pages before exploring further. # Web App Performance Installation Instructions ## Prerequisites - Minimum Version: Requires SysTrack 11.4 or later. ## Notes - After this DEX Pack is installed, it may take up to 24 hours for data to appear. - If you update or reinstall this DEX Pack, you must reassign any Views created below to the relevant role. - Web Apps need to be defined in [Configure > Web Apps](/documentation/docs/web-apps). ## Installation Steps To install this DEX Pack, complete the following steps: 1. [Import the Kit](/documentation/docs/web-app-performance-installation-instructions#import-kit). 2. [Create the Web Browser View](/documentation/docs/web-app-performance-installation-instructions#web-browser-view). 3. [Assign the Web Browser View to a Role](/documentation/docs/web-app-performance-installation-instructions#assign-the-web-browser-view-to-a-role). ### Import the Kit There are two ways to import the DEX Pack to SysTrack: - Import the pack directly from the Kits page in SysTrack. See the [Import Online Kits](/documentation/docs/import-online-kits) guide for more information. - Import a local file downloaded from the [DEX and Kit Downloads](/documentation/docs/dex-packs-dex-and-kit-downloads) page. Click the **Download Kit** link for the pack and follow the [Import Local Kits](/documentation/docs/import-local-kits) guide to finish the import. ### Create the Web Browser View The Web App Performance Dashboard requires you to create a View. 1. Navigate to **Configure** > **Views**. 2. Click the **padlock icon** in the upper-right to enable editing. 3. Click the **plus icon** to add a new View. 4. Fill in the **Settings** as follows: 1. **View Name: SF_WEBAPPDAILY** 2. **Existing Category:** **Web** 3. **Expires in:** **30 Days** 4. **When Expired:** **Append Data** 5. Do *NOT* check **When overdue by 1 day (s)**. 6. Set the **Refresh** drop-downs to **Daily**, **Inside**, **24x7**, and **Every Day**. 7. Copy the [SF_WEBAPPDAILY SQL Query](/documentation/docs/web-app-performance-installation-instructions#sfwebappdaily-sql-query1), and paste it into the box under **SQL Selection** > **Generic**. 8. Click **Test SQL**. A **Success** message should appear at the top of the screen. If the test is not successful, the query may have been copied incorrectly. 5. Click **Create View** at the top right. #### SF_WEBAPPDAILY SQL Query ```sql SELECT T0.WGUID, GETUTCDATE() AS VWTIME, S1.WEB_APP_NAME, DATEADD(D, DATEDIFF(D, 0, FIRST_USE), 0) AS DOTY, AVG(CASE WHEN NULLIF(LOADEND,0) > NULLIF(NAVSTART,0) THEN NULLIF(LOADEND,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS AVG_CLICKTORENDER, AVG(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS AVG_LATENCY, AVG(CASE WHEN NULLIF(LOADEND,0) > NULLIF(DOMLOADING,0) THEN NULLIF(LOADEND,0) - NULLIF(DOMLOADING,0) END) / 1000.0 AS AVG_PROCESSING, AVG(CASE WHEN NULLIF(FETCHSTART,0) > NULLIF(NAVSTART,0) THEN NULLIF(FETCHSTART,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS AVG_CLIENTPRE, AVG(CASE WHEN NULLIF(REQUESTSTART,0) > NULLIF(FETCHSTART,0) THEN NULLIF(REQUESTSTART,0) - NULLIF(FETCHSTART,0) END) / 1000.0 AS AVG_NETWORKSEND, AVG(CASE WHEN NULLIF(RESPONSESTART,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSESTART,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS AVG_SERVER, AVG(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(RESPONSESTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(RESPONSESTART,0) END) / 1000.0 AS AVG_NETWORKREC, AVG(CASE WHEN NULLIF(LOADEND,0) > NULLIF(RESPONSEEND,0) THEN NULLIF(LOADEND,0) - NULLIF(RESPONSEEND,0) END) / 1000.0 AS AVG_CLIENTPOST, MAX(CASE WHEN NULLIF(LOADEND,0) > NULLIF(NAVSTART,0) THEN NULLIF(LOADEND,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS MAX_CLICKTORENDER, MAX(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS MAX_LATENCY, MAX(CASE WHEN NULLIF(LOADEND,0) > NULLIF(DOMLOADING,0) THEN NULLIF(LOADEND,0) - NULLIF(DOMLOADING,0) END) / 1000.0 AS MAX_PROCESSING, MAX(CASE WHEN NULLIF(FETCHSTART,0) > NULLIF(NAVSTART,0) THEN NULLIF(FETCHSTART,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS MAX_CLIENTPRE, MAX(CASE WHEN NULLIF(REQUESTSTART,0) > NULLIF(FETCHSTART,0) THEN NULLIF(REQUESTSTART,0) - NULLIF(FETCHSTART,0) END) / 1000.0 AS MAX_NETWORKSEND, MAX(CASE WHEN NULLIF(RESPONSESTART,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSESTART,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS MAX_SERVER, MAX(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(RESPONSESTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(RESPONSESTART,0) END) / 1000.0 AS MAX_NETWORKREC, MAX(CASE WHEN NULLIF(LOADEND,0) > NULLIF(RESPONSEEND,0) THEN NULLIF(LOADEND,0) - NULLIF(RESPONSEEND,0) END) / 1000.0 AS MAX_CLIENTPOST, MIN(CASE WHEN NULLIF(LOADEND,0) > NULLIF(NAVSTART,0) THEN NULLIF(LOADEND,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS MIN_CLICKTORENDER, MIN(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS MIN_LATENCY, MIN(CASE WHEN NULLIF(LOADEND,0) > NULLIF(DOMLOADING,0) THEN NULLIF(LOADEND,0) - NULLIF(DOMLOADING,0) END) / 1000.0 AS MIN_PROCESSING, MIN(CASE WHEN NULLIF(FETCHSTART,0) > NULLIF(NAVSTART,0) THEN NULLIF(FETCHSTART,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS MIN_CLIENTPRE, MIN(CASE WHEN NULLIF(REQUESTSTART,0) > NULLIF(FETCHSTART,0) THEN NULLIF(REQUESTSTART,0) - NULLIF(FETCHSTART,0) END) / 1000.0 AS MIN_NETWORKSEND, MIN(CASE WHEN NULLIF(RESPONSESTART,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSESTART,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS MIN_SERVER, MIN(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(RESPONSESTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(RESPONSESTART,0) END) / 1000.0 AS MIN_NETWORKREC, MIN(CASE WHEN NULLIF(LOADEND,0) > NULLIF(RESPONSEEND,0) THEN NULLIF(LOADEND,0) - NULLIF(RESPONSEEND,0) END) / 1000.0 AS MIN_CLIENTPOST FROM SAWEB AS T0 INNER JOIN SAWEBSTR AS S0 ON T0.FULLURL = S0.STRINGID INNER JOIN SAWEBAPPS AS S1 ON S0.STRVALUE LIKE S1.WEB_URL + '%' WHERE DATEDIFF(D, FIRST_USE, ) <= 0 AND DATEDIFF(D, FIRST_USE, GETUTCDATE()) > 0 GROUP BY WGUID, WEB_APP_NAME, DATEADD(D, DATEDIFF(D, 0, FIRST_USE), 0) ``` ### Assign the Web Browser View to a Role To assign the new View: 1. Navigate to **Configure** > **Roles**. 2. Use the drop-down at the top to select any previously created role. 3. Click **Views**, the check the box next to **SF_WEBAPPDAILY**. 4. Click **Save Changes** at the top right. After this View is assigned, **web app performance and usage** **data** will be collected each day. It will take **30 days** before the data in this Dashboard is fully populated.