Spring Release: Tracepoints, Callgraphs, Slow SQL Log and Deprecations

We are releasing a new stable minor version of the Tideways PHP extension 5.1 today, which will include a few new features that we have been writing about before and a few new ones that we have cooked up in the last few weeks.

The following packages have received updates:

  • tideways-php to version 5.1.14
  • tieways-daemon to version 1.6.10
  • tideways-proxy to version 0.1.34

Using Tracepoints to Trigger Callgraphs

We have written about trace boosting with Tracepoints a few times before. Now we have tested the dynamic callgraph tracepoints feature in great depth and are ready to release a stable version of it. In the Tracepoint form, you can now click the “Activate Callgraph Profiler” checkbox and select how long the Tideways PHP extension should be elevated to Callgraph Profiler mode:

Once the tracepoint is activated the collected callgraphs are highlighted separately from regular timeline traces in the UI:

By default, dynamic tracepoints is still deactivated, but there are just a few PHP.ini settings explained in this documentation page to get it running.

Automated Builds for Alpine, ARM and FreeBSD

You can now use Tideways with Alpine Linux (musl), ARM architecture and the FreeBSD operating system, as we have automated builds for these systems and they are now listed on the Downloads page. Builds for these systems are now fully automated and artifacts are released at the same time as the already supported operating systems and architectures are released.

In addition we have stopped building packages for i386 architectures as our logs indicate that nobody is using them.

In Beta now: Slow SQL Query Logging

Tideways now collects slow SQL queries from your application very similar to the MySQL slow log functionality, but enhanced with a PHP stack trace, transaction name and other context information. Slow queries are aggregated and de-duplicated similarly to exceptions and presented in a similar user interface:

This feature is available for beta testers with the PHP extension 5.1 installed. Please write to [email protected] if you want to be part of the beta test and see the documentation how to activate it.

In Beta now: Unified Callgraph Screen

We have but a lot of work into a prototype to merge the “Calls” and “Callgraph” tab in a single unified screen. The benefit here is that you don’t have to force reloads of the UI when switching between those two modes. The tricky thing about this new screen is that we have to make use of the full screen, and adjust elements on the screen much more to different display sizes.

For this change we are dependent on feedback from you, so we have published this beta early. This beta feature does not need to be enabled for you directly, it is available to everyone.

In Beta soon: Deprecations

Reusing the already familiar Error/Exception Tracking feature we have added Deprecation Tracking as another feature to Tideways. If you enable tideways.features.deprecations=1 in the new PHP extension 5.1, we will collect the following deprecations triggered in your PHP application:

  • trigger_error with E_DEPRECATED or E_USER_DEPRECATED, even if error_reporting is not enabled for these error types.
  • Engine deprecations triggered by using a deprecated feature of PHP itself, but only if userland error handlers don’t interfere with this. This is a restriction of the PHP engine itself and we are actively working to improve this for the upcoming PHP 8.

This feature is available for beta testers with the PHP extension 5.1 installed. Please write to [email protected] if you want to be part of the beta test.

Benjamin Benjamin 04.05.2020