Supported Frameworks and Databases

Tideways includes support for many PHP frameworks, libraries and databsaes out of the box so that a maximal amount of insights can be automatically collected with no code changes.

Support for measuring performance metrics of code is called instrumentation.

This documentation page details all the different instrumentations Tideways includes.

Supported Frameworks

Framework

Versions

Description

Symfony

2.x, 3.x, 4.x, 5.x, 6.x, 7.x

  • Transaction detection based on Controller and Console Command names

  • Exceptions in HttpKerel and Console Commands

  • kernel.request events

  • Event Listeners

  • Controller and Sub-Controller invocations

  • Bootstrapping

  • Twig Support

  • Custom callgraph argument capturing for EventDispatcher

Laravel

4.x, 5.x, 6.x, 7.x, 8.x, 9.x

  • Transaction detection based on Controller and Console Command names

  • Exceptions in Web and Console

  • Events

  • Blade Templates

  • Eloquent ORM Queries

  • Bootstrapping

Shopware 5

5.x

  • Transaction detection based on Controller names

  • Enlight Events

  • Controllers

  • Symfony Instrumentation

  • Smarty Support

Shopware 6

6.x

  • Transaction detection based on Controller and Console Command names

  • Symfony Instrumentation

  • Twig Support

  • Automatic service detection for "api"

  • Custom callgraph argument capturing for Data Access Layer (DAL)

  • Data Access Layer (DAL) ORM support including queries/criteria for Product/Category

  • Service Layer functions for Category, Product, Order

Magento 1

1.9.x

  • Transaction detection based on Controller names

  • Dispatched Events

  • Rendering of Blocks

  • ORM Model and Collection Fetching

  • Bootstrapping

Magento 2

2.x

  • Transaction detection based on Controller and Console Command names

  • Event Manager and Dispatched Events

  • Observers

  • View and Block Rendering

  • GraphQL and REST API Queries

Oxid

5.x, 6.x

  • Transaction detection based on modules

  • Modules

  • Smarty support

Wordpress

4.x, 5.x

  • Transaction detection based on templates names

  • Filters and Actions

  • Templates

Drupal 7

7.x

  • Transaction detection based on page callbacks

Drupal 8

8.x

  • Transaction detection based on controller and console command names

  • Symfony Instrumentation

TYPO 3

> 6.x

  • Transaction detection based on Extbase controller names

Flow

4.x, 5.x, 6.x, 7.x

  • Transaction detection based on Controller and Console names

  • Template Rendering

  • Bootstrapping

CakePHP

2.x, 3.x, 4.x

  • Transaction detection based on Controller names

  • Event Dispatcher

  • Controller invocations

Slim

3.x

  • Transaction detection based on Controller names

Spryker

3.x

  • Transaction detection based on Controller and Console command mames

  • Service detection based on Yves, Zed, Glue

  • Symfony instrumentation

Yii

1.x, 2.x

  • Transaction detection based on Controller names

  • Event Dispatching

  • Template Rendering

PrestaShop

1.6

  • Transaction detection based on Controller names

Laminas

3.x

  • Transaction detection based on Controller names

  • Event Dispatching

  • Template Rendering (PhpRenderer)

Supported Databases

The list of database APIs and abstractions that Tideways supports via instrumentation of PHP extensions.

Extension

Instrumented Functions

PDO

  • PDO::__construct to measure connect time

  • PDO::exec

  • PDO::query

  • PDO::commit

  • PDOStatement::execute

mysqli

  • mysqli::__construct, mysqli_connect, mysqli::real_connect

  • mysqli::prepare and mysqli_prepare

  • mysqli::query and mysqli_query

  • mysqli::real_query and mysqli_real_query

  • mysqli_stmt::execute and mysqli_stmt_execute

ibmdb2

  • db2_connect and db2_pconnect

  • db2_prepare

  • db2_execute

  • db2_exec

oci

  • oci_connect and oci_pconnect

  • oci_parse

  • oci_execute

  • oci_commit

Memcache

  • Memcache::set

  • Memcache::get

  • Memcache::replace

  • Memcache::increment

  • Memcache::decrement

Memcached

  • Memcached::set

  • Memcached::get

  • Various other APIs accessing the Memcache server

APCu

  • apcu_add

  • apcu_cas

  • apcu_dec

  • apcu_delete

  • apcu_entry

  • apcu_exists

  • apcu_fetch

  • apcu_inc

  • apcu_store

MongoDB

  • MongoDB\Driver\Manager::__construct

  • MongoDB\Driver\Manager::executeCommand

  • MongoDB\Driver\Manager::executeBulkWrite

  • MongoDB\Driver\Manager::executeQuery

  • MongoDB\Driver\Server::executeCommand

  • MongoDB\Driver\Server::executeBulkWrite

  • MongoDB\Driver\Server::executeQuery

AMQP

  • AMQPExchange::publish

  • AMQPChannel::startTransaction

  • AMQPChannel::commitTransaction

  • AMQPChannel::rollbackTransaction

Redis

  • Redis class with all methods

  • RedisCluster class with all methods

rdkafka

  • RdKafka\Producer::__construct

  • RdKafka\Producer::flush

  • RdKafka\Producer::poll

  • RdKafka\Producer::initTransactions

  • RdKafka\Producer::commitTransaction

  • RdKafka\Producer::abortTransaction

  • RdKafka\ProducerTopic::produce

  • RdKafka\ProducerTopic::producev

Supported PHP Core APIs

The following PHP Core APIs are instrumented for the given purpose:

API

Instrumented Functions

Purpose

curl

  • curl_exec

  • curl_close

  • curl_setopt, curl_setopt_array

  • curl_multi_exec

  • curl_multi_add_handle

  • curl_multi_remove_handle

  • curl_multi_info_read

  • curl_multi_close

Outgoing HTTP calls

session

  • session_start

Session Locking

Shell

  • shell_exec

  • system

  • exec

  • passthru

  • proc_open

  • proc_close

  • proc_terminate

  • popen

  • pclose

External Program Executions

Errors

  • trigger_error

Tracking deprecations

Stream/File APIs

  • fopen, fclose

  • fgets, fputs and more

  • file APIs

  • directory APIs

File I/O layer timing if stream is file://

Streams

  • HTTP Stream Wrapper

Outgoing HTTP calls for http:// and https:// stream wrappers

gRPC

  • Grpc\Call::__construct

  • Grpc\Call::startBatch

Outgoing gRPC/HTTP calls

Autoloading

  • spl_autoload_call

Autoloading layer timing

FPM

  • fastcgi_finish_request

Adding marker about early FastCGI finish

Supported PHP Libraries

The following PHP libraries are instrumented for the given purpose:

Library

Versions

Description

Doctrine ORM

2.x

  • Fetching Entities via Persister APIs

  • Fetching Entities via DQL Queries and Parsing

  • EntityManager Flush and sub-operations

Twig

1.x, 2.x, 3.x

  • Twig\Template::display

  • Twig\Template::displayBlock

Smarty

2.x, 3.x

  • Smarty::fetch

  • Smarty_Internal_TemplateBase::fetch

  • Smarty_Internal_TemplateBase::display

Predis

1.x

  • All Redis commands via Predis\Client::__call

Yii2 Redis

2.x

  • All Redis commands via yii\redis\Connection::executeCommand

Pheanstalk

2.x, 3.x, 4.x

  • Sending a message via Pheanstalk::put

PhpAmqpLib

2.x

  • Publish message via PhpAmqpLib\Channel\AMQPChannel::basic_publish

Elasticsearch PHP

2.x, 5.x, 6.x, 7.x, 8.x

  • Elasticsearch\Client::performRequest

  • Elasticsearch\Endpoints\AbstractEndpoint::performRequest

  • Elastic\Elasticsearch\Client::performRequest

  • Elastic\Elasticsearch\Endpoints\AbstractEndpoint::performRequest

Webonyx GraphQL

0.13.x, 14.x

  • GraphQL\GraphQL::executeQuery

  • GraphQL\Executor\Executor::resolveOrError

Propel

2.x

  • Fetching and Manipulation via Criteria APIs

Still need help? Email [email protected]