Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Appanvil karma designer
summary YOU ASKED, SO WE DELIVERED Dashboard Release September 20242024_09 BackUp & Restore     Download Now     Ken Miller CTO I'm pleased to share with you our latest dashboard release, pi.2024_09 which is available to download now.In this release, we've taken the opportunity to introduce Custom Fields, something a number of customers have been asking for. We've also made some changes around Editable Tables, Exports and a number of Performance improvements too - but that's not all. As always, have a read through the release notes in full to learn of all the changes before you upgrade, just to make sure its right for you and your end users. Highlights - Custom Fields- Editable Table - Multiple Performance Improvements- Minimum Server Requirements Change- Exporting Improvements- Analytics Chart Improvement 5 4 New Features 3 Changes 10 Bug Fixes 11 Customer Requests
page{"premium":true,"id":"FMkTud2JrHXMpzIylO0bD","name":"page","children":[{"name":"section","params":{"backgroundSize":"cover","gap":10,"background":"#2d2f4cd4","padding":8,"image":{"value":"https://images.unsplash.com/photo-1491582325207-80d06869fb3d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwzMzg3MzF8MHwxfHNlYXJjaHwxMnx8bmV3JTIweW9ya3xlbnwwfDB8MXxibGFja19hbmRfd2hpdGV8MTY2MjEyNDU2MA&ixlib=rb-1.2.1&q=80&w=1080","target":"_self","type":"link"}},"children":[{"children":[{"children":[{"name":"text","children":[],"params":{"value":[{"type":"paragraph","children":[{"letterSpacing":0,"fontSize":20,"fontWeight":700,"fontFamily":"Poppins, sans-serif","text":"YOU ASKED, SO WE DELIVERED","lineHeight":"10px","color":"#ffffff"}]}]},"id":"rNX3qXaG8Q4ewjRCBgZcx"},{"params":{"value":[{"type":"paragraph","children":[{"text":"Dashboard Release ","letterSpacing":0,"fontWeight":700,"fontFamily":"Poppins, sans-serif","color":"#ffffff","lineHeight":"90px","fontSize":64}]}]},"children":[],"name":"text","id":"nr3C5FnGCNgZlayR21QHV"},{"children":[],"params":{"value":[{"type":"paragraph","children":[{"children":[{"fontFamily":"Poppins, sans-serif","letterSpacing":0,"text":"September 2024","lineHeight":"unset","color":"#ffffff","fontSize":24,"fontWeight":700}],"type":"paragraph"},{"type":"paragraph","children":[{"fontFamily":"Poppins, sans-serif","letterSpacing":0,"lineHeight":"unset","color":"#ffffff","text":"2024_09","fontSize":16}]}]}]},"name":"text","id":"DmpJb_rO3Qj4l9Aj66HdK"},{"name":"divider","params":{"templateId":"solid long","color":"#ef5693","alignment":"start","fontSize":24,"fontColor":{"light":"#000000","dark":"#ffffff"},"height":1,"borderStyle":"solid"},"children":[],"id":"TAZcq3EgP-1KdJ2bsdXuE"},{"name":"button","params":{"templateId":"regular button","label":"BackUp & Restore ","size":"medium","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://panintelligence.atlassian.net/wiki/spaces/PD/pages/376307765/Backup+and+Restore+of+the+Dashboard","target":"_blank","type":"link"}},"children":[],"id":"hfpGR1FJxGFfePSJR4g7T"},{"name":"button","params":{"templateId":"regular button","label":"   Download Now    ","size":"medium","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://panintelligence.atlassian.net/wiki/spaces/PD/pages/1258652085","target":"_blank","type":"link"}},"children":[],"id":"ImDnaOMj9XpCxaDqyPZPk"}],"params":{"verticalAlignment":"center","borderRadius":{"btl":0,"btr":0,"bbl":0,"bbr":0,"all":0,"isIndividualCorners":false},"padding":0,"gap":20},"name":"column","id":"jm4mo6d7GzYx3hUB4l-F0"},{"name":"column","children":[],"params":{"gap":20,"padding":0,"borderRadius":{"isIndividualCorners":false,"all":0,"bbl":0,"bbr":0,"btr":0,"btl":0},"verticalAlignment":"center"},"id":"yBKq_7TPH5d1DV8hFdhLu"},{"children":[],"name":"column","params":{"gap":20,"padding":0,"verticalAlignment":"center","borderRadius":{"bbl":0,"all":0,"btl":0,"bbr":0,"btr":0,"isIndividualCorners":false}},"id":"fH6MHBuk3I0R4it7BRCGP"},{"children":[],"params":{"verticalAlignment":"center","borderRadius":{"btl":0,"bbl":0,"bbr":0,"isIndividualCorners":false,"all":0,"btr":0},"padding":0,"gap":20},"name":"column","id":"_FPGEp6mQPRJJvPIB6VPD"},{"name":"column","params":{"borderRadius":{"bbr":0,"isIndividualCorners":false,"btl":0,"all":0,"btr":0,"bbl":0},"verticalAlignment":"center","gap":20,"padding":0},"children":[],"id":"mJWfn1yDf0yleGusTvyDV"},{"name":"column","params":{"verticalAlignment":"center","gap":20,"borderRadius":{"bbl":0,"btr":0,"bbr":0,"all":0,"btl":0,"isIndividualCorners":false},"padding":0},"children":[],"id":"3WBEHbIwEeCHcL3oWU6bg"}],"name":"row","params":{"gap":100,"padding":10,"minHeight":200,"borderRadius":0,"layout":[1]},"id":"mbQy4dSTfKlyYK-9k0_SM"}],"id":"AazdKjV1KYMbgvQPAld6a"},{"id":"iPYoTT8UrrUFlXqDlVg1m","params":{"background":"#ffffff","padding":22,"gap":10},"children":[{"id":"HaE0KXsm3rDEJhjTV7Mjx","name":"row","children":[{"id":"VaA-Y-CIV4m2ogQe_Sqmo","name":"column","children":[{"name":"image","params":{"alignment":"center","height":400,"position":"center center","borderRadius":{"all":5,"bbl":0,"bbr":0,"btl":0,"btr":0,"isIndividualCorners":false},"image":{"value":"att1673265190","target":"_blank","type":"attachment"}},"children":[],"id":"T2bXrsdBHviCyZtS2HZvV"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"0HIQC86K7mXpaQnPu4lsM","name":"column","children":[{"name":"text","params":{"value":[{"type":"paragraph","children":[{"text":"Ken Miller","letterSpacing":0,"fontWeight":600,"fontSize":28,"color":"#2c2c2c"}],"align":"left"}]},"children":[],"id":"pHAKnX_bCCwJ0kzgKbWXi"},{"name":"text","params":{"value":[{"type":"paragraph","children":[{"text":"CTO ","letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18}],"align":"left"}]},"children":[],"id":"l_VOVkhnKQUZUw-ve2Wf0"},{"name":"text","params":{"value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"lineHeight":"24px","letterSpacing":0,"text":"I'm pleased to share with you our latest dashboard release, ","fontFamily":"unset","fontSize":16,"color":"#555555"},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"fontWeight":700,"text":"pi.2024_09 ","color":"#ef5693"},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"text":"which","color":"#555555"},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#000000","text":" "},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"text":"is available to download now.","color":"#555555"}],"align":"left"},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":""}]},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":"In this release, we've taken the opportunity to introduce Custom Fields, something a number of customers have been asking for. We've also made some changes around Editable Tables, Exports and a number of Performance improvements too - but that's not all. "}]},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":""}]},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":"As always, have a read through the release notes in full to learn of all the changes "},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":"before","fontWeight":700},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":" you upgrade, just to make sure its right for you and your end users."}]}]}]},"children":[],"id":"3yPpnPcG9Ua1cMKx_-oPx"},{"name":"button","params":{"label":"","size":"medium","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#414141","label":"#ffffff"}},"hover":{"colors":{"background":"#000000","label":"#ffffff"}}},"icon":"linkedin-in","link":{"value":"https://www.linkedin.com/in/ken-miller-bb77975/?originalSubdomain=uk","target":"_blank","type":"link"}},"children":[],"id":"YkQiC1UEdSABfAG30yCAE"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"zQPv9B1ZIKSgIEL2-TqyZ","name":"column","children":[{"name":"image","params":{"alignment":"center","height":300,"position":"top center","borderRadius":{"all":5,"bbl":0,"bbr":0,"btl":0,"btr":0,"isIndividualCorners":false},"image":{"value":"att1698562062","target":"_blank","type":"attachment"}},"children":[],"id":"HC2565mrpH6QIPWrXG9rq"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"uFI2qIqzCdlp4soZcoFKh","name":"column","children":[{"name":"text","params":{"value":[{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"fontWeight":600,"fontSize":28,"color":"#2c2c2c","text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"fontWeight":600,"fontSize":28,"color":"#2c2c2c","text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"fontWeight":600,"fontSize":28,"color":"#2c2c2c","text":"Highlights"}]}]},"children":[],"id":"StFraL4oyQVb2F1-fMUdr"},{"name":"text","params":{"value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"- Custom Fields","letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18}],"align":"left"},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Editable Table "}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Multiple Performance Improvements"}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Minimum Server Requirements Change"}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Exporting Improvements"}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Analytics Chart Improvement"}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]}]}]},"children":[],"id":"lDEf-U_uv7DU3v6czqDnR"},{"name":"spacer","params":{"space":10},"children":[],"id":"iLlGX7VLo5DPMdB15Nsu8"},{"name":"spacer","params":{"space":10},"children":[],"id":"CEa3nvn4dCUclBcV0LcGx"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"6IYCbdH0yACltgbuUqUsV","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"TC07p_TJiJqkld5i-FtRF","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}}],"params":{"layout":[1,1,1,1],"gap":35,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}}],"name":"section"},{"params":{"background":"#393d4f","gap":10,"padding":0},"name":"section","children":[{"children":[{"name":"column","children":[{"name":"card","children":[{"children":[],"params":{"value":[{"children":[{"color":"#6fceb4","fontFamily":"Montserrat, sans-serif","fontWeight":700,"text":"54","fontSize":54}],"type":"paragraph","align":"center"}]},"name":"text","id":"x8h3JtbaitH4rONaExd2J"},{"children":[],"name":"text","params":{"value":[{"children":[{"text":"New Features","fontSize":20,"fontFamily":"Montserrat, sans-serif","color":"#ffffff"}],"type":"paragraph","align":"center"}]},"id":"lSiInwGpA8cK6ew5Fkmlz"}],"params":{"padding":20,"gap":10,"borderRadius":{"bbl":0,"bbr":0,"btr":0,"isIndividualCorners":false,"all":0,"btl":0},"hover":"elevate"},"id":"8sGgpAEhoNbWpufDnX9Is"}],"params":{"padding":0,"verticalAlignment":"center","gap":20,"borderRadius":{"all":0,"btr":0,"isIndividualCorners":false,"btl":0,"bbl":0,"bbr":0}},"id":"vxQl8_xUTLUeSdy6Zj667"},{"name":"column","children":[{"name":"card","children":[{"params":{"value":[{"type":"paragraph","children":[{"fontWeight":700,"text":"3","color":"#4bb9d2","fontFamily":"Montserrat, sans-serif","fontSize":54}],"align":"center"}]},"children":[],"name":"text","id":"YCgKCdTm1qwKX5q1EuCdr"},{"params":{"value":[{"align":"center","children":[{"fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif","text":"Changes"}],"type":"paragraph"}]},"name":"text","children":[],"id":"BR4va-GpZlAJOp2mwMH-1"}],"params":{"borderRadius":{"bbr":0,"isIndividualCorners":false,"btr":0,"btl":0,"bbl":0,"all":0},"gap":10,"hover":"elevate","padding":20},"id":"18AFcFB160BbE0iQeYr8c"}],"params":{"borderRadius":{"bbl":0,"bbr":0,"isIndividualCorners":false,"all":0,"btr":0,"btl":0},"verticalAlignment":"center","gap":20,"padding":0},"id":"l-GJ3YT3H_VJSsOjq70wP"},{"params":{"gap":20,"borderRadius":{"all":0,"bbr":0,"btr":0,"btl":0,"bbl":0,"isIndividualCorners":false},"verticalAlignment":"center","padding":0},"children":[{"name":"card","params":{"gap":10,"borderRadius":{"bbr":0,"isIndividualCorners":false,"all":0,"bbl":0,"btr":0,"btl":0},"padding":20,"hover":"elevate"},"children":[{"params":{"value":[{"type":"paragraph","align":"center","children":[{"fontWeight":700,"color":"#8871f9","fontSize":54,"text":"10","fontFamily":"Montserrat, sans-serif"}]}]},"name":"text","children":[],"id":"OLpC1-Pgjlm5sO19zrQ39"},{"params":{"value":[{"align":"center","type":"paragraph","children":[{"text":"Bug Fixes","fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif"}]}]},"children":[],"name":"text","id":"9mMYPgwoc1O74DZkegvHw"}],"id":"r5axRw3H73kS5E_cIjBvm"}],"name":"column","id":"zXI-oq_sWnVXrhI0dB3so"},{"children":[{"params":{"borderRadius":{"bbl":0,"bbr":0,"btr":0,"btl":0,"all":0,"isIndividualCorners":false},"gap":10,"hover":"elevate","padding":20},"name":"card","children":[{"name":"text","children":[],"params":{"value":[{"children":[{"fontFamily":"Montserrat, sans-serif","text":"11","fontSize":54,"fontWeight":700,"color":"#5098fa"}],"type":"paragraph","align":"center"}]},"id":"7DNl9bkskIgNrLnsUqDjN"},{"name":"text","children":[],"params":{"value":[{"align":"center","type":"paragraph","children":[{"fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif","text":"Customer Requests"}]}]},"id":"YLmi5VfiWq6zAkHD5bIWH"}],"id":"OWVeUSdsPsJFgJV2KFu6M"}],"name":"column","params":{"verticalAlignment":"center","gap":20,"borderRadius":{"btl":0,"all":0,"bbr":0,"btr":0,"isIndividualCorners":false,"bbl":0},"padding":0},"id":"3eUuDQUJ_7Wt3H0ogN0gG"},{"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"isIndividualCorners":false,"btr":0,"bbr":0},"gap":20,"verticalAlignment":"center","padding":0},"name":"column","children":[],"id":"LFnVMjeI8jdrjJ5UCbCpq"},{"params":{"borderRadius":{"bbr":0,"isIndividualCorners":false,"bbl":0,"all":0,"btl":0,"btr":0},"verticalAlignment":"center","gap":20,"padding":0},"name":"column","children":[],"id":"FotJeCTUtI5G5on3410IY"}],"params":{"gap":40,"borderRadius":0,"layout":[1,1,1,1],"minHeight":200,"padding":0},"name":"row","id":"d6_mAzNbYQvSXQvqfrwO7"}],"id":"hBpUSNSybAXZlGhjE3HRg"}]}

N.B. We have revised the minimum server requirements for a production
Table of Contents
minLevel1
maxLevel6
include
outlinefalse
indent
exclude
typelist
class
printablefalse
  • Customer Request tickets are highlighted with the 🗣️ icon

  • The 2024_09 release contains x1 Schema change

  • IMPORTANT: New Minimum Server Requirements

Note

Info

IMPORTANT: As a precaution, we removed the ability to download the September 24 release whilst we investigated a couple of issues. To take advantage of the changes listed in this release note, you will need to upgrade to the November 24 release.


Note

N.B. We have revised the minimum server requirements for a production system node. This also includes a recommended change to environment variables - see HERE for more information.

NEW FEATURES

Custom Fields (BETA) 🗣️

-

29554

Custom Fields

We’ve added an innovative way to unlock key-value data in your databases which has traditionally been difficult to report on.

Known as Custom Fields, you can now provide additional configuration to have the Dashboard create objects automatically from the key-value data where previously you would have needed to manually create these for each item. Click HERE for more information on the Custom Fields feature.

Info

When opting to use a BETA feature, we always recommend doing so in a Test environment first, ensuring you are familiar with the feature before you use it in your Production instance. We would encourage you to reach out to your Customer Success Manager to discuss such features, and arrange additional support from our Professional Service team, who can assist with introducing the features into your instances.

Single Chart Word Export - Performance Improvement (BETA) 🗣️

pi#2438

29822 & 32731

Exporting - Word

We’re excited to offer a completely rebuilt Word (docx) export functionality which is almost instant and reflects any changes you make to charts on your screen (including legend selection).

You can try it out by enabling the beta feature BROWSER_WORD_EXPORT (in pancredit_parameters table) and we’d love to hear your feedback and incorporate feedback into our upcoming releases. At present it only supports certain chart types (highcharts) which doesn’t include tables, card charts, maps. Any unsupported will simply fall back to the existing export functionality.

Example of the section from the new Word output:

Screenshot from 2024-08-15 09-23-13.png

 

Improved Preview Of Chart Headings - When Categories Load/Refresh 🗣️

pi#2532

31377

Category Preview

Before charts are fully rendered, we populate the cell with the Chart Title to give an indication of what is loading in. Previously, this was just the Chart Name but now this preview will more closely resemble the panel heading that will appear when the chart fully loads. It will show some of the icons that will be displayed as well as the title/subtitle appropriate for that chart. Replacement cannot be done at this stage meaning any form of replacement within the title/subtitle will result in the preview not including that element. Translations, however, are available so you can expect any translated values to be represented in the accurately.

New User/Role Permission (For Admin Users) - To Access The API Configuration Tab 🗣️

pi#2524

24595 & 31607

User/Role Permissions

A new User/Role permission has been added at the Admin level, to determine whether or not the User is allowed to access/edit the configuration within the APIs tab. The new “edit apis” permission defaults to ‘True’ for Admin users at the User Permission level and ‘False’ for Roles.

JDBC Driver - Class Isolation 🗣️

pi#2489

31482

Drivers

JDBC drivers are now loaded into a separate class-loader from system libraries, significantly improving the chances of untested drivers being compatible. As part of this, the Apache Drill driver has been included in the default distribution since this was a driver which had such an issue previously.

CHANGES

Exporting - Enhanced Single Chart PDF & PowerPoint (Performance Improvements) - REMOVED FROM BETA

pi#2600

-

Exporting - PDF & PowerPoint

Our greatly enhanced, rebuilt

CHANGES

Exporting - Enhanced Single Chart PDF & PowerPoint (Performance Improvements) - REMOVED FROM BETA

pi#2600

-

Exporting - PDF & PowerPoint

Our greatly enhanced, rebuilt pdf and ppt exports for single charts have been enabled by default in this release. If you experience any issue please let us know, for a limited time you can switch back to the old mode by using the beta flag OLD_PDF_EXPORT and OLD_PPT_EXPORT.

Exporting - Enhanced Single Chart PDF & PowerPoint - A Drill Down Chart

pi#2599

-

Exporting - PDF & PowerPoint

Resolved a Known Issue with exporting drilldown-level charts, when using the enhanced Single Chart PDF & PowerPoint export functionality - a Known Issue with the August 24 release.

When a user exports a chart at a drilldown level, the export will now correctly capture the chart from the appropriate hierarchy level, provided the chart type is supported. If the chart type is unsupported, the export will automatically revert to using the renderer service.

Editable Tables - Improved Performance When Sending All Data 🗣️

pi#2545

32019

Editable Tables

By removing some additional variable replacement that wasn’t useful we’ve improved the performance of editable tables. Especially when sending large volumes of data.

Editable Tables - Page Resize & Other Changes Causing Duplicate Data To Be Sent 🗣️

pi#2550

32019

Editable Tables

Resolved an issue where page actions such as a resize could result in duplicate rows of table data could be sent to the editable tables endpoint.

Reports - All Charts Load In Parallel - Improved Performance 🗣️

pi#2539

31184

Reports - Performance

Improved report performance by allowing each chart within a report to load in parallel. This does not affect how the charts are rendered, only how they are returned from the back end. Report performance logs have been updated to display the loading times for each individual chart, as well as an overall loading time, which will now be lower due to the requests for individual charts being asynchronous.

Schedules - Improvement Reliability When Scheduling Tables (Excel Format) 🗣️

scheduler#88

31192 & 31778

Scheduler & Exports

Enhanced the reliability of scheduling tables in Excel format by implementing additional checks to ensure the file's integrity before returning it to the scheduler, along with improvements in naming conventions, increased logging, and better error handling.

Analytics - Unable To Save Analytics Model

pirana#52

31872

Analytics

Despite having the necessary permissions, Admin Users (other than Super Admin) were unable to save Analytics models to the Data Connection, due to a CORS setting issue.

Analytics - Encoded Values Appearing On Analytics Charts

pi#2536

31871

Analytics

Comparators like ‘>=' and special characters like '&’ would appear HTML encoded on Analytics Charts.

Password Reset - Invalid Details Led To Exception

pi#2634

-

Password Reset

Using the password reset function with invalid details previously lead to an exception being displayed.

Organisation - Incorrect Organisation Name Showing In The Configuration Panel

pi#2648

33177

Organisations

Within the Organisations Configuration Panel dropdown list, users will now only see Organisation values where they are either an admin or have 'schedule' permission for those Organisations. If they are an admin, all content will be displayed relating to those Organisations, otherwise an error will be returned that informs the user that they do not have access.

Security - Resolved some issues with CORS settings

pi#2615

-

Security

Resolved an issue where the CORS settings were not being applied correctly.

Note

N.B if you are using CORS (browser based api access) it will not support wildcard hosts defined in the trusted hosts. We recommend api access is done via a server side technology which is not affected by this change.

Performance - Several Performance Improvements 🗣️

pi#2666 & pi#2625

-

Performance

A number of areas of performance improvement were identified and implemented

Translations - Several Improvements To Enable More Translations 🗣️

-

32769, 32816, 32821, 31377

Multi Lingual

A number of additional areas where translations occur in the dashboard have now been added.

SCHEMA CHANGES

 

Description

GitLab

ZenDesk

Column

Column ‘edit apis’

  • added to mis_users and mis_roles tables

pi#2524

24595 & 31607

User Roles / Permissions

MINIMUM SERVER REQUIREMENTS

The following data was created by load testing a pi server running on AWS Fargate.  Load was created by automatically logging users in / out of the server.  Additionally manual testing was performed during the load to observe actual performance within the system.   

Explanation: 

This testing was performed on the September 2024 Dashboard version.  We had noticed a degradation in performance in this version particularly in the June, May and August releases. 

This is not attributed to any one particular change, but rather is down to several different events / changes ; 

Updates to frameworks / libraries 

  • Java 

  • Tomcat 

Grails 

Background

During our internal pre-release testing of this September 2024 dashboard release, we observed some notable performance degradation within the dashboard. This coupled with a handful of similiar issues reported in releases since our May 24 release, triggered a review of our minimum system requirements - to ensure these were set sufficiently, and to understand the cause.

Between the May 24 and August 24 releases, we have introduced several changes that have individually contributed to the overall degradation we observed, however no one specific change was the cause;

  • Changes to frameworks / libraries 

    • Java

    • Tomcat

    • Grails

    • Angular 

  • Removal of some server level caching

,
  • - to make provision for horizontally scaling deployments 

  • Redis for maintaining session across application nodes 

  • Multi-lingual additions 

  • New

category object
  • Category Object (filter) features 

Organisations 
  • Organisations

  • Linked Data

connections 
  • Connections 

  • Custom

field logic 

 

For previous releases, the recommendation for the sizing of a single application node for nominal load was given as 1 vCPU and 2GB RAM 

We have tested additional combinations and our explanations, results and conclusions are below. 

There have also been two
  • Fields logic 

  • Two performance related code changes

made in the September release. 
  • Better handling of encrypted variables 

  • Application Optimisation to have also been introduced in this September 24 release

    • Improved handling of Encrypted Variables 

    • Application Optimisation - to reduce requests when refreshing the page 

  Analysis & Testing

The chart below logs the output produced by the dashboard (MIS_AUDITS) and shows the number of chart requests served by the dashboard per minute.  We use other metrics – but this served rate has proven to be highly correlated to performance and the user experience when interacting with the system.  The vast majority of requests are serving charts.  We tested the ability to perform configuration actions at the same time. 

image-20241014-072615.pngImage Removed

The green at the same time. 

image-20241014-072615.pngImage Added

Note

Load Testing was performed on pi server running on AWS Fargate.  Load was created by automatically logging users in / out of the server, in addition to manual tests being conducted during the load, to observe actual performance. The repository we tested against included volumized users, categories, organisations and data connections. We also included (and used) Secured Variables too.

The Green band shows the high load areas we observe on customers dashboards that run on our Pi SaaS instances. 

The pink Pink line shows the point of instability we noticed on the during our internal pre-release September version, testing for the September 24 release - that caused nodes to become unstablebe impacted.  We were able to observe this consistently, and this was before the code fixes were applied and we made subsequent code changes to address the issues, and were based on a node with 1vCPU and 2GB RAM (these being our previous recommended settings for a single application node). 

 

We used a repository with volumised users, categories, organisations and data connections.  The repository also included (and used) secured variables. 

On these runs we altered the number of vCPU’s, RAM and maxThreads environment variable. 

Matrix 

 To observe the impact of changing resources, we performed multiple test runs, making amendments to

  • vCPU’s

  • RAM

  • maxThreads (environment variable)

The table below details the finding we recorded for each run and configuration change.

Run 

vCPU 

RAM (GB) 

Max Threads 

Observed 

20 

System hit a limit at 170 charts served per minute.  The server remained stable at this point, and when load was reduced continued to operate efficiently. 

30 

The system performed well and was able to perform to ~350 chart requests. The server remained stable 

40 

The system performed well and was able to perform to ~400 chart requests. The server remained stable 

 

 

50 

The system was still able to perform to ~350 chart requests per minute, but the observed performance was significantly reduced. 

40 

The system was significantly slower even whilst no load was provided.  We struggled to load the system beyond ~120 charts per minute.  The server did remain stable. 

40 

The system was able to perform ~470 charts requests per minute, was stable and user experience was good even while loaded.  It was observed that the additional 4GB of RAM was not used by the system. 

40 

Following test 6, we re-performed test 5 to confirm that the additional 4GB of RAM was unnecessary, and the experience on this test 5 and 6 was comparable. 

2 load balanced * 2vCPU 

4GB 

40 

Where able to show that the resources where effectively run over load balanced nodes, and achieved ~1,000 charts per minute, and the solution was very stable even under this load. 

As Above 

 

 

Confirmed that the system could be loaded and unloaded without effect. 

Results & Recommendations 

Our current recommendation is that a pi Node should be as follows. 

Minimum Requirements Based on our findings, we recommend that the following resource and configuration changes are applied to ensure optimal performance and stability of application nodes.

Resource Requirement

  • 2vCPU 

  • 4GB RAM 

Configuration Changes Recommended SettingsWe recommend - the following configuration change.

Tomcat MaxThreads should be set to the same value as the repository MaxConnections (our recommended value is 40)

  • PI_TOMCAT_MAX_THREADS = 40

  • PI_TOMCAT_MAX_CONNECTIONS = 40

Also, with the increase in memory to 4GB RAM, you should make sure 3GB is allocated to tomcatthe Tomcat, leaving 1GB for the operating system.

  • PI_TOMCAT_MAX_MEMORY = 3072