Autumn Launch: PHP 8, Autoloading Performance, Deprecation Tracking, Alerting Improvements

Benjamin Benjamin 19.11.2020

This autumn launch for Tideways includes new features and improvements that we worked on the last three months. These are (in no particular order):

  • Add support for PHP 8.0 and announce deprecation of PHP 5 support
  • Autoloading Performance in Layer Monitoring and Profiler
  • Deprecation Tracking
  • Improvements to Alerting: Filter for Service/Environments
  • Weekly Report: Make included services in weekly e-mail configurable
  • Add new "All" Services Filter-Option in Traces and Issues List
  • APCu Performance in Layer Monitoring and Profiler
  • New Apt and RPM Package Repository and Migration Timeline

Aside from this blog post explaining the new features in detail and the documentation, we also invite you to sign up for our 30 minute webinar "New Features and Improvements launched in autumn 2020" scheduled for 25th November 2020, 15:00 Europe/Berlin.

Signup for the Tideways Autumn 2020 Launch Webinar

To benefit from all these changes you need to upgrade your Tideways PHP Extension to version 5.3.4 and Tideways Daemon to version 1.6.24.

PHP 8 Support and PHP 5 Deprecation

The latest Tideways PHP extension version 5.3.4 (released today) includes support for the upcoming PHP 8.0 version that will be released next week (November 26th 2020).

In addition we are announcing to deprecate support for Tideways on all PHP 5 versions. All our release packages for Tideways will continue to include PHP 5 builds of Tideways, but only of the Tideways branch 5.2 (latest release as of today is 5.2.6). If necessary we will update PHP 5 builds with important bugfixes or security patches, but new features are not targeted for PHP 5 anymore.

Autoloading Performance

PHPs autoloading has a significant impact on performance of applications that you should be aware of. With this newest release of Tideways, we now track the autoloading performance impact in both monitoring and profiling. This means you can see the average time spent in autoloading aggregated by every minute in the layer tooltip:

And in the summary section of every collected trace:

As was the case before, you can then dive into a Callgraph to see where exactly time is spent during autoloading:

Deprecation Tracking

Tracking deprecations triggered in your PHP applications is now possible using Tideways. This hooks into PHPs E_USER_DEPRECATED and E_DEPRECATED error levels, collects and aggregates deprecations and shows them as a new issue type in the "Issues" screen of your Tideways projects.

With this feature it is easy to get an overview of all deprecations in PHP core or libraries that your application is causing, so that you can update the syntax and APIs before upgrading your dependencies.

Alerting Improvements: Fine-Grained Service and Environment Filters

Instead of having to select exactly one service and environment, configuration for notifications is now more flexible, allowing fine-grained control which services and environments should be included when checking for incident conditions.

This is achieved by adding a free-form filter syntax:

  • Using the star (*) is a wildcard matching all services or environments
  • Using the service or environment by name includes them in the notification checks
  • Prefixing a service or environment with ! excludes them from being checked.

Examples: "web worker" or "* !cli"

See the documentation for details

Include More Services in Weekly Report

Before this release, only the default service of a project was included in the weekly report e-mail. You can now configure which services to include and exclude from the weekly report on the "Services" configuration screen.

See the documentation for details

APCu Layer in Monitoring and Profiling

Usage of APCu is now tracked as a seperate layer in monitoring and profiling of Tideways. This gives you an average time spent in APCu and concrete times for individual traces.

View Traces and Issues from All Services

Previously you could only view traces and issues from one service of a project at a time. We have now added an option to show traces and issues from "All" services on a single screen.

New Package Repository

Our Debian and CentOS (RPM) package repositories have always been served directly from AWS S3 using open-source publishing tools and custom tools that we have added on top. To increase automation, convenience and security on our end, we recently migrated package publishing to Bintray, but are still mirroring packages from there to the old S3.

For now nothing has to change for you, but at the end of 2021 we will stop publishng to the S3 repository. Until then, you should perform these two steps:

  1. Trust our new GPG key for the [email protected] e-mail address
  2. Change the URL for package updating from the AWS S3 to the Bintray endpoint.

See more details in the documentation

Photo by Jeremy Thomas on Unsplash