Looking for a better way to get the top or bottom 30 issues from each project

The report I’m working on has several different Jira projects and displays a “score” for each one, based on a few different metrics. To get those metrics, I have several measurements that perform operations on the top 30 issues (by rank) for each project.

The problem I’m running into is that some of our projects have up to 55k issues, and I’m running out of memory even though I really only need to get the top 30 for my operations. I’m new to eazyBI, so I’m hoping there’s a more efficient way to get this data.

Here’s one of the measurements I’m using. My row dimension is Project so I call Descendants to get all the issues in that project, filter that to only show issues that match the current Pages filter and aren’t Done, then I sort that list by Rank, and Tail to get just the 30 issues I want to perform the real calculation on (in this case, it’s filtering to count the number of those issues that have the ‘Ranked’ label).

Count(
  Filter(
    Tail(
      Order(
        Filter(
          Descendants(
            [Issue].[Project].GetMemberByKey([Project].CurrentHierarchyMember.Get('KEY')),
            [Issue].[Issue]
          ),
          [Measures].[Issues created] > 0 AND
          NOT [Issue].CurrentMember.get('Status ID') = 10001
        ),
        [Measures].[Issue Rank],
        DESC
      ),
      30
    ),
    InStr([Measures].[Issue Labels], 'Ranked') > 0)  
  )

How can I make this more efficient?

I have the same problem for listing all issues that are open OR closed within the last 6 weeks. It seems I need to use a calculated member for this, but I run out of memory if I try to filter all issues. I can use the Project dimension in Pages + the Descendants portion of the above code to make it manageable, but I still feel like there is probably a better way to do this.

Hi @cchase,

To get the list of top or bottom issues by rank, you may use another approach using standard options and filters in the report, without calculated measures.

  1. Set Label dimension on pages to filter only issues with a label “Ranked”.
  2. Set dimension Status on pages and select status categories “To Do” and “In progress” to get unresolved issues. Or use dimension Resolution and select value (unresolved).
  3. Set issue property "Issue Rank"
  4. Click on column “Issue Rank” and select option Top rows to order and get only the top 30 issues. When the filter is on place, you may remove the column “Issue Rank”, but the filter will remain.

In a similar way, you may build a report for issues closed in the last six weeks. In that case, also add the Time dimension to pages and use measure “Issues closed” for the report.

Best,
Zane / support@eazyBI.com

Hi Zane,

We have a chart like you described and it works well, but for this chart that I’m having problems with, Issues is not one of the Rows. This is a bar chart to show a score based on the data in the issues, it does not show the issues themselves. That’s why we had to use a calculated member.