The best way to check some statistics on Structure usage, see structures sizes and load time is to check the Performance Audit Log (PAL). To open it, go to Administration | Structure | Support | View Performance Audit Log.
If you have a Data Center instance, you will need to collect and analyze the Performance Audit Log from every node. When a user opens a structure while being on a certain node - structure will execute all the required operations on that node.
There is no built-in parser, but you can write a simple script, which will parse the PAL files, search for the structure in the file based on the criteria you need and send alerts if certain problems are found.
Here is how the file is structured:
Basic Instance Information
Version of Jira and Structure
This section contains the descriptions of structures. This includes:
- Structures names and IDs (the same you see in the URL when you open a structure)
- Generators with all their parameters
- Synchronizers with all their parameters
- If Manual Adjustments are enabled for a structure, information on such adjustments are shown
- If any saved filters are used in the generators or synchronizers, the JQLs for such filters are shown
This section shows info for the recently accessed structures. It includes the following:
- structureId - id of the structure
- count of rows - total number of items in the structure including generators and folders
- unique items count - number of unique items
- item types - number of items by type - shows how many of the items are issues, generators, folders or loop markers
- counts on depths - number of items on each level with the first number being the top level
Things you should be analyzing here are as follows:
- The sizes of structures. If the count of rows is getting really big (tens of thousands), it might make sense to check with the user if the structure is actually showing what the user needs. Sometimes users would configure generators incorrectly, which would result in abnormally large structures.
- The number of rows vs unique items. If the number of rows is much bigger than the number of unique items, it means there are multiple duplicates in this structure. Sometimes it makes sense, but in most cases it indicates the structure was built incorrectly, so it's a good idea to check the configuration.
- In the types section you may see "type-loop-marker" records. If the generators produce loops in the structure, structure detects such loops and shows special loop markers. The simplest example would be if the user is visualizing some link in the structure and there is a cyclical link. But in some cases when there is some problem with data or incorrect configuration, you may get multiple loop markers. In such cases it's a good idea to check why they are there. If 5-10% of all items are loop markers, it makes sense to check the structure configuration.
Forest Changes Updates
This section shows the time in ms it took to load a structure or update the one already open. Full update means the structure was fully reloaded. Incremental update means some changes happened in Jira and a part of the structure was adjusted.
You need to monitor the loading time and if it becomes really large, such structures require attention. It's ok for larger structures to load longer (sometimes over a minute for really big and complex ones). But you can monitor the patterns and if all of a sudden loading time became much longer, this may indicate a problem.
This section contains some technical information used by ALM Works for further troubleshooting.
Saved Filters with S-JQL
If you are using S-JQL in some saved filters, such filters will be listed here. It's important to remember about them because they may affect the performance. For all S-JQL requests made for generated structures, every time the saved filter is used (either explicitly or, for example, on the Agile board) the structure is generated. This means users maybe triggering structure generation without actually opening them.
Here you will see the list of Structures for which the Gantt chart has been configured together with the configuration details.