Design Guidelines for Advanced Aternity Dashboards (Best Practices)

This article provides guidelines and tips for building good and scalable dashboards. Learn how to avoid high CPU utilization, performance and timeout issues when creating dashboards in Aternity.

Dashboard Performance Considerations

  • Too many sheets in a single dashboard can slow its load time. If your dashboard is taking a long time to response or reports timing out, consider reducing the number of sheets.

  • Too many filters on one sheet can slow a dashboard load time. Reduce the number of filters and do not use the exclude option on large data sets since Tableau will have to scan all the selected data.

  • Use username where possible instead of device name, because Aternity indexes data sets by username and not by device name.

  • Avoid showing ALL devices for large tenants especially with many calculations or high resolution data. Consider whether the list of 10, 20, 30K devices is useful from a dashboard perspective. Consider showing only worst or bad devices.

  • Avoid using Tableau function contains because this function causes high CPU utilization and is very slow. Use regexp_match function instead.

  • Where applicable, use Hourly or Daily aggregation level (by default, dashboards present Raw data).

  • You can often improve performance if you split a story and present the data into separate tabs. For example, when analyzing remote workforce, you can create separate sheets (tabs) for the summary, connections, UXI, usage, health events, and more.

  • Use the lowest required data retention from the Timeframe menu with the highest Aggregation Type. For example, if you are building a weekly analysis, use Last 7 days timeframe and not a longer one. If you analyze the summarized data for the whole retention period, it is recommended to use Daily, there is no need for low granularity. Hourly data is useful only when analyzing a change per hour (for example, in trends).

Best Practices for Creating Calculations in Tableau

  • Where possible, use the case function to perform logical tests and return appropriate values. case is often easier to use than if (learn more).

  • Avoid using Tableau comparison or lookup functions on subsets of data when possible. Use regexp_match function instead.

  • Make yourself familiar with the REGEX guide. For example, you can use the following functions:
    1. REGEXP_REPLACE(string, pattern, replacement)
    2. REGEXP_MATCH(string, pattern)
    3. REGEXP_EXTRACT(string, pattern)
    4. REGEXP_EXTRACT_NTH(string, pattern, index)
  • Make sure there are no "wrong Joins”. Sometimes, data join may return the wrong totals.

  • Avoid using a calculated field multiple times in another calculation. Use Nested Calculation instead. For example, rather than using RIGHT([Business Location], LEN([Business Location]) -1), you can use MID([Business Location], 2). Learn more.

  • In the advanced dashboards, use Number of Users or Number of Devices for Count Distinct calculations and not COUNTD(User Name) or COUNTD(Device Name).

    Use Number of Users in most cases, and only if it is unavailable, then use Number of Devices.

  • In the advanced dashboards that aggregate data on a device level, when you select Last 30 Days or Last 90 Days timeframe option, GROUP BY Device Name for such long time periods. It is a heavy query and it returns many rows. Use Daily (3 Months) aggregation level when working with Last 30 Days or Last 90 Days timeframe.

    • Consider Design change that will show the users / devices on a separate tab that doesn’t include additional widget.

    • Make sure to have a filter to show only Top Users / Devices

    • Consider changing the Aggregation level into Hourly (1 Month) or Daily (3 Months). By default, this is Raw (1 Week). You can change this by selecting Show Parameter Control from the Parameters area on the left, and then change the type on the right side of a dashboard.

      Show the Aggregation Type menu
      Change Aggregation
  • In the if statements, use "equals" first for known items like application names, for example: IF [Application]="Skype for Business/Lync" then "Skype"

Learn more.

How to Create a Group to Better Support Long Case Statements and Avoid High CPU Utilization

This section includes an example on how to create groups.
  1. Create a Group in Tableau.
    Select the Create menu
  2. Select relevant devices and then the Group button to group them all together.
    Create a group
  3. Give a group the unique name.
    Add values to the group

    The new dimension values will be device names and the new group name.

    See the values in the new group
  4. Now create a calculated field with check condition.
    Create a calculated field

    For example, the device Adam_Covert_WKS is in the group, the value for this device in the group (Serving Device Name (group) dimension) is the group name #MyGroup#.

    If “Adam_Covert_WKS” <> “#MyGroup#” then “Adam_Covert_WKS” else “Other”.

    Edit group

Learn more.

Dashboard Design Tips and Tricks

This section includes recommendations for editing and saving dashboards:
  • Save as often as you can. Save a dashboard whenever you are done with each sheet, or whenever you are done compiling the sheets into a dashboard.

  • Provide high level insights and explanations at the top of a dashboard. This will help the users to understand the content in a dashboard.

    Example 1
    Example 2
  • Use meaningful colors, use green/red/yellow only for indicating scores and statuses. Here are some example of the color palette we use in the out-of-the-box dashboards:
    Use these colors for statuses and scores
    Use these colors in dashboards
    Use these colors in dashboards
  • Use specific numbers for breakdown of Activity Response Time to have consistent color-coding:
    • Client Time = HEX: 9ccfe1

    • Network Time = HEX: 5399b3

    • Backend Time= HEX: 2e6073

    Activity Response Colors

Examples of Error Messages You Can Receive from Tableau

This section includes examples of error messages you might receive from Tableau, if the dashboard best practices are not followed.

(For Advanced dashboards) When the execution time exceeds, the following error messages might appear:
Unable to connect to the data source
Session Ended by Server
(For all dashboards) When saving dashboard time exceeds, the following error messages might appear:
Session Ended by Server