A New Relic oferece suporte às versões 3, 4, 5, 6 e 7 do Guzzle HTTP client library com o agente PHP New Relic versão 7.0 ou superior.
A biblioteca Guzzle permite solicitações sequenciais e paralelas. Esta página descreve como cada tipo de solicitação aparecerá na páginaSummary da interface do New Relic. Para descobrir qual chamada foi a mais lenta, consulte a página Serviços Externos , que exibe o tempo de chamadas externas individuais.
Solicitações sequenciais
Este código PHP faz múltiplas solicitações sequenciais com o Guzzle:
$client = new \GuzzleHttp\Client;$response = $client->get('http://YOUR_SITE.com/api/foo');$client->delete('http://YOUR_SITE.com/api/foo/'.$response->getBody());
Este código apareceria na interface do New Relic como:
one.newrelic.com > All capabilities > APM & services > (select an app) > Overview > Web transactions time: Solicitações sequenciais com Guzzle na interface New Relic.
O tempo de resposta é mostrado como a linha azul escura. O web external time verde representa o tempo gasto na biblioteca Guzzle. Como as solicitações foram feitas sequencialmente, o tempo de resposta é equal em relação ao tempo total gasto em PHP, MySQL e atividades externas da web.
Solicitações paralelas
Este código PHP faz múltiplas requisições em paralelo desembrulhando uma matriz de promessas:
$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);
Este código apareceria na interface do New Relic como:
one.newrelic.com > All capabilities > APM & services > (select an app) > Summary > Web transactions time: Solicitações paralelas com Guzzle na interface New Relic
O web external time verde representa o tempo gasto na biblioteca Guzzle. Como as solicitações foram executadas de forma assíncrona, o tempo total gasto em PHP, MySQL e web externa é greater maior que o tempo de resposta.
Cronometragem com Guzzle 6 e 7
Ao contrário das versões anteriores, o Guzzle 6 e 7 não geram um evento quando uma solicitação é enviada. Em vez disso, o agente começa a cronometrar uma solicitação quando o objeto de solicitação é criado. Se um objeto de solicitação for criado e trabalho adicional for realizado antes do envio, a New Relic poderá relatar que a solicitação demorou mais do que realmente demorou.
Desativar suporte ao Guzzle
Para desativar o suporte do Guzzle:
- Adicione
newrelic.guzzle.enabled = false
ao seu arquivonewrelic.ini
. - Reinicie seu servidor web (Apache, Nginx, PHP-FPM, etc.).