Problem
You see red blocks of uninstrumented time in transaction traces with transaction_tracer.detail=1
set.
Cause
There are two reasons why you may see red blocks of uninstrumented time in a transaction trace.
The first reason is when you have a function that is called frequently and is very quick (below the default 2ms threshold for the top 100 list).
The second, and most common reason, is when a function:
- Takes a long time to execute
- Is written in C
- Either is an internal function or is a function provided by an external module
In this situation, the most frequent culprits are functions that send large blocks of data or large files to users. If the user is on a slow connection, sending small files (small images for example) could take a long time due to simple network latency. Since no internal or C extension functions are instrumented, the PHP agent has no one to "blame" the time spent on, and this appears in a transaction trace as uninstrumented time.