Excessive splitting results, also known as measure explosion, can cause the Performance Warehouse to fill up, so additional data cannot be written to the Performance Warehouse. AppMon detects misconfigured Business Transactions and disables creating measures for them, to prevent excessive data. A disabled Business Transaction has the mark.
When a Business Transaction is disabled:
- No new charting data is generated for the Business Transaction. No new data is generated for existing splitting values.
- No new splitting entries are generated in the Business Transaction Hotspots Dashlet dashlet. Existing splitting values are not updated.
- No Incidents are triggered based on result measures of the Business Transaction.
All other diagnostic dashboards operate as normal, without any limitations.
Causes of measure explosion
A reasonably designed Business Transaction can have thousands or even tens of thousands of splits. For example:
- The World Map dashboard may have 200 to 300 regions times three satisfaction levels times the number of applications.
- If the captured URI for the metric Web Requests - URI Pattern Value contains a
Session-ID, a very large number of unique URIs may be collected.
A common method to transmit the
Session-ID is to put it into the query
http://www.example.com/index?sid=<Session-ID> or into the URI path
The Business Transaction configuration includes options for restricting splitting. The default is No restriction. When no splitting restriction is defined and the split results contain a measure like the previously described example, the Business Transaction is vulnerable to a measure explosion.
The following techniques can help to prevent a measure explosion, while preserving the intended goals of a Business Transaction.
Disable results storage in the Performance Warehouse
If the Business Transaction is not intended for charting, you can disable the results storage in the Performance Warehouse. In most cases, charting data is not needed. Charting a Business Transaction split by a URI with a
Session-ID in particular has no purpose. To do so, un-select the Store results in the Performance Warehouse check box in the Business Transaction Editor dialog box.
Change splitting options
If you need to use the Business Transaction for charting, try the following solutions for measure explosion:
Reconfigure the Business Transaction
You may be able to subscribe another Split Result measure. This is possible if the measure explosion was an effect of misconfiguring the Business Transaction.
If possible, remove the explosion-triggering part from the splitting value
For all metrics that may produce unpredictably huge numbers of splitting values, it is possible to define a regular expression for transformation. When you use a regular expression, you should be able to remove the explosion-triggering part. However, using a regular expression is prone to error. It also slows down real time analysis and cannot be recommended for high-load scenarios.
Apply a splitting restriction
You can configure splitting options to restrict the number of splitting values in the Business Transaction configuration. See Reset Splittings for details.
Measure Explosion Prevention
The Measure Explosion Prevention maintains a record of the number of splitting values every Business Transaction produces. For the splittings held in Server memory, the exact numbers are constantly updated. In the Performance Warehouse, the numbers are updated once per hour.
If the number of splittings in the Server memory or in the Performance Warehouse exceeds the default limit of 50,000, the Measure Explosion Prevention disables creating measures for the affected Business Transaction.