New Relic prend en charge les versions 3, 4, 5, 6 et 7 de Guzzle HTTP client library avec l'agent PHP New Relic version 7.0 ou supérieure.
La bibliothèque Guzzle permet requests séquentielles et parallèles. Cette page décrit comment chaque type de demande apparaîtra dans la Summary page de l'UI New Relic. Pour découvrir quel appel a été le plus lent, consultez la page Services externes qui affiche le temps des appels externes individuels.
requestsséquentielles
Ce code PHP effectue plusieurs requests séquentielles avec Guzzle:
$client = new \GuzzleHttp\Client;$response = $client->get('http://YOUR_SITE.com/api/foo');$client->delete('http://YOUR_SITE.com/api/foo/'.$response->getBody());
Ce code apparaîtrait dans l' comme New Relic UI suit :

one.newrelic.com > All capabilities > APM & services > (select an app) > Overview > Web transactions time: séquentielles requests avec Guzzle dans l'UI New Relic.
Le temps de réponse est indiqué par la ligne bleu foncé. Le web external time vert représente le temps passé dans la bibliothèque Guzzle. Étant donné que les requests ont été effectuées de manière séquentielle, le temps de réponse est de equal par rapport au temps total passé en PHP, MySQL et aux activités externes du Web.
requestsparallèles
Ce code PHP effectue plusieurs requests en parallèle en déballant un éventail de promesses :
$client = new \GuzzleHttp\Client;
$promises = [ $client->getAsync('http://YOUR_SITE.com/api/foo'), $client->getAsync('http://YOUR_SITE.com/api/bar'), $client->getAsync('http://YOUR_SITE.com/api/quux'),];
\GuzzleHttp\Promise\unwrap($promises);
Ce code apparaîtrait dans l' comme New Relic UI suit :

one.newrelic.com > All capabilities > APM & services > (select an app) > Summary > Web transactions time: parallèles requests avec Guzzle dans l'UI New Relic
Le web external time vert représente le temps passé dans la bibliothèque Guzzle. Étant donné que les requests ont été exécutées de manière asynchrone, le temps total passé dans PHP, MySQL et le Web externe est greater supérieur au temps de réponse.
Synchronisation avec Guzzle 6 et 7
Contrairement aux versions précédentes, Guzzle 6 et 7 ne génèrent pas d'événement lorsqu'une requête est envoyée. Au lieu de cela, l'agent commence à chronométrer une demande lorsque l'objet de demande est créé. Si un objet de demande est créé et qu'un travail supplémentaire est effectué avant l'envoi, New Relic peut signaler que la demande a pris plus de temps qu'elle ne l'a réellement pris.
Désactiver le support Guzzle
Pour désactiver la prise en charge de Guzzle :
- Ajoutez
newrelic.guzzle.enabled = false
à votre fichiernewrelic.ini
. - Redémarrez votre serveur Web (Apache, Nginx, PHP-FPM, etc.).