Profiling with Tideways
Roll-out in progress: These features are new and they might not be available in all environments yet.
Recent PHP version required: To use the Tideways integration, make sure you have PHP 7.2 activated. You want your site to be as fast as possible, right?
Xdebug is not for production use
We have provided a pre-installed Xdebug configuration in our Seravo WordPress Vagrant images for many years already, but not in our production or staging environments. The reason is that the instrumentation Xdebug does is quite heavy and it can be performed only in a separate development environment. For production environments something more lightweight is needed, so that the tool itself does not slow down the production site. Also to complement long running in-production tests one needs a good dashboard and tools to extract useful information from the profiling data collected. Thus we decided to cooperate with Tideways and integrate it their profiling tool into our system.
Tideways can be safely used in both production and staging all the time
Tideways is a service to collect and analyze information about how the code of your WordPress site performs. It helps developers to:
- visualize changes in the site production code performance over time
- drill down into execution logs and find bottle necks in PHP code
- analyze database queries so their performance can be optimized
- alert about PHP errors and analyze stack traces so the code can be improved to avoid the errors
- e-mail, Slack, Github and other integrations
The Tideways profiling agent has neglible impact of the performance of the site, so it can be active in the backgroud all the time. In our integration we have configured it to sample 1% of production site PHP executions and 10% in staging shadows when it collects execution traces and profiling data. The Tideways integration also includes that we have pre-configured the Tideways agent to work optimally with WordPress and data from production and staging shadows is automatically separated in the Tideways logs, so developers know what data came from where.
Tideways offer the same timeline and execution path visualizations as XDebug+Webgrind, but in addition it will also store the PHP profiling traces permanently in an online database so you can compare changes over time and thanks to the team functionalities, you can share the information between all the development team members. Tideways even has some automatic bottle neck detection and improvement suggestions. Analyzing and improving your application could not be easier. Tideways have a wealth of features and we strongly recommend to try it out.
Steps to activate Tideways
- Create an account at Tideways.io. You can start with a free trial and later upgrade to a paid account.
- In the Tideways dashboard, create a new application and get the application API key (e.g. A0A0A0A0A0A0A0A0).
- Create a file /data/wordpress/.tideways.key in your project and save the application API key in it (e.g.
echo 'A0A0A0A0A0A0A0A0' > .tideways.key).
- In your production site environment, run
wp-restart-phpso that the Tideways key is detected and the PHP module and Tideways daemon activates.
- Double check that you are running PHP 7.2 or newer.
- Go back to your Tideways dashboard and start watching the data coming in!
Seravo’s customer support is available to help you with the Tideways key activation if the steps above didn’t work for you as expected.