Benjamin Benjamin 09.11.2015

Profiling SQL, MongoDB and more

We are excited to announce a new version of Tideways PHP extension. The release is available to all our users since last Friday.

With detailed SQL query profiling it contains one of the most wanted features. A timeline trace now shows anonymized queries when you hover over a pink SQL span:

This Wordpress example request with a query on tables wp_terms and wp_taxonomy shows why the timeline traces are so valuable. They allow first class support for calls to databases, webservices and other external services mixed with PHP profiling insights.

About the implementation: The profiler extension sends all queries to your local daemon, where they get anonymized and then sent to our servers: Any potentially private data inside the queries never leaves your servers. Furthermore you have to activate the detailed analysis explicitly, giving you full control over how much details you want to send to us.

We are super happy this feature finally shipped, after a very long design, feasibility and testing phase. When we started out with Tideways last year, we were sure that SQL query profiling will be high in demand. Our first customer requested this feature in June 2014 and in the last weeks we had an increasing amount of conversations with users where you asked about SQL query profiling.

You can sign up for our demos to see SQL support at work.

N+1 Bottleneck Detection

On top of the SQL queries support we are now able to detect queries that are called repeatedly right after each other with different parameters. When this occurs often there is often a huge performance drain. The solution is to refactor the code to only execute one query instead. We show this directly in the timeline by highlighting the affected span and showing details in the hover:

N+1 detection is performed on SQL queries and HTTP calls at the moment.

MongoDB Support

Next, we have included support for the Mongo PHP extension. Several of our customers have only used the custom instrumentation API for this and we are greatful to have worked with them together to bring Mongo support to core.

In this first version we display the operation and the collection it was performed on. The next Tideways version adds support for the new PHP driver that was released last week.

Magento Framework support

Magento is now on the list of supported PHP frameworks and applications. We are very happy about the amazing help from Daniel Fahlke and from Maxcluster. Their research will allow us to improve Magento support even further in the next versions.

To use Magento support just configure Tideways framework setting to specify:

tideways.framework=magento

Predis, Pheanstalk and PhpAmqLib Support

Last but not least, there is now support for libraries that a number of our customers and we ourselves use:

  • Redis support when you use Predis PHP library
  • BeanstalkD Queue support when you use Pheanstalk library
  • RabbitMQ support when you use PhpAmqLib

As usual we will be adding more libraries in each version, depending on demand and our own roadmap.

Upgrading

We provide a documentation page with detailed notes about upgrading your version of Tideways to the current versions of PHP extension 3.0.3 and daemon 1.3.1.

As usual if you have questions or need help, please send an email to [email protected].