Transactions

Tideways attempts to assign each request a transaction name, a name that represents the operation, endpoint, controller that is executed. Ideally each block of code that performs a dedicated function in your project has its unique transaction name, so that the performance across many requests executed the same block of code can be aggregated and compared over time. This includes dedicated request counts, response times and error-rates per transaction.

By default every transaction will automatically get the name last two parts of SCRIPT_FILENAME (for example web/index.php) as the transaction name.

If you are using a framework supported by Tideways, then the transaction name becomes the controller class / action method that is being executed (for example App\Controller\UserController::viewAction).

If you are using a currently unsupported MVC framewor, then a programmatic separation into the controller class and action method names for the transaction names yields much more insights than the script name based naming. See docs on the programmatic Transaction API to manually set transaction names in your application code.

The number of transactions is limited based on the projects license. As such it is recommended not to allow user input in transaction names or use URLs that contain dynamic variables.

Configuring Human Readable Names

After you have started using transaction names based on framework or manual support, you can go one step further and set a human readable name for all transactions or just for the ones which you care about the most.

Doing so improves the utility of Tideways, because it frees you from having to know what page each listed controller/action is responsible for — especially for the non-technical users in the weekly report. For example in the transaction list:

image

Or in the transaction detail page:

image

To configure a human-readable transaction name:

  1. Go to Project Settings  Transactions

  2. Click the configure transaction (pencil) icon, at the far right-hand side of the transaction which you want to name

    View the list of transactions under the project’s settings
    Figure 1. View the list of transactions under the project’s settings
  3. Specify a name for the transaction in the Name field, and then click Save

    Setting a transaction’s name
    Figure 2. Setting a transaction’s name

Following this, you will then see the configured human-readable name, in the Name column, next to the transaction in the transactions list.

A transaction with a human-readable name
Figure 3. A transaction with a human-readable name

Transaction Limits

Each license has an upper limit of transactions that are tracked in monitoring and tracing. A finite number of transactions is better for your usability, because it allows to see aggregated performance data with a high enough number of requests per transaction every minute or every hour and provides better insights into changes of performance at a high level.

As soon as you reach the transaction limit by reporting data for transactions that would exceed the limit, all these transactions over the limit will be grouped into a single transaction called "Uncategorized". All data recorded on the uncategorized transaction will belong to the transactions that are above the limit.

This often happens because you are using Tideways\Profiler::setTransactionName with dynamic user input or based on dynamic content variables such as Page Ids in Urls.

Transaction names should describe blocks of code like controllers, classes, functions or scripts. They should not describe dynamic data, such as entries based on ID or name.

The exact Transaction limits can be seen on the Tideways pricing page.

To get below the transaction limit, you can delete transactions from the "Project Settings" > "Transactions" screen. Transactions on the higher pages that haven’t been reported in the last minutes will have a "Delete Transction" action in their dropdown menu.

Alternatively you can go to "Project Settings" > "General Settings" and perform the "Delete all Transactions" operations, which will however also have a negative effect on transactions that are named correctly already.

Still need help? Email [email protected]