New Relic은 New Relic PHP 에이전트 버전 7.0 이상을 사용하여 Guzzle HTTP 클라이언트 라이브러리 버전 3, 4, 5, 6, 7을 지원합니다.
Guzzle 라이브러리는 순차 및 병렬 요청을 모두 허용합니다. 이 페이지에서는 각 유형의 요청이 New Relic UI의 요약 페이지 에 어떻게 표시되는지 설명합니다. 가장 느린 호출을 찾으려면 개별 외부 호출에 대한 타이밍을 표시하는 외부 서비스 페이지 를 확인하십시오.
순차적 요청
이 PHP 코드는 Guzzle을 사용하여 여러 순차적 요청을 수행합니다.
$client = new \GuzzleHttp\Client;$response = $client->get('http://YOUR_SITE.com/api/foo');$client->delete('http://YOUR_SITE.com/api/foo/'.$response->getBody());
이 코드는 New Relic UI에 다음과 같이 표시됩니다.
one.newrelic.com > All capabilties > APM & services > (앱 선택) > Overview > Web transactions time: New Relic UI에서 Guzzle을 사용한 순차적 요청.
응답 시간 은 진한 파란색 선으로 표시됩니다. 녹색 웹 외부 시간 은 Guzzle 라이브러리에서 보낸 시간을 나타냅니다. 요청이 순차적으로 이루어지기 때문에 응답 시간은 PHP, MySQL 및 웹 외부 활동에 소요된 총 시간 과 동일 합니다.
병렬 요청
이 PHP 코드는 Promise 배열을 풀어서 여러 요청을 병렬로 만듭니다.
$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);
이 코드는 New Relic UI에 다음과 같이 표시됩니다.
one.newrelic.com > All capabilties > APM & services > (앱 선택) > Summary > Web transactions time: New Relic UI에서 Guzzle을 사용한 병렬 요청
녹색 웹 외부 시간 은 Guzzle 라이브러리에서 보낸 시간을 나타냅니다. 요청이 비동기적으로 수행되었기 때문에 PHP, MySQL 및 웹 외부에서 보낸 총 시간 은 응답 시간 보다 큽니다 .
Guzzle 6 및 7을 사용한 타이밍
이전 버전과 달리 Guzzle 6 및 7은 요청이 전송될 때 이벤트를 생성하지 않습니다. 대신 에이전트는 요청 개체가 생성될 때 요청 시간을 측정하기 시작합니다. 요청 객체가 생성되고 보내기 전에 추가 작업이 수행되면 New Relic은 요청이 실제보다 오래 걸렸다고 보고할 수 있습니다.
Guzzle 지원 비활성화
Guzzle 지원을 비활성화하려면:
newrelic.ini
파일에newrelic.guzzle.enabled = false
을(를) 추가합니다.- 웹 서버(Apache, Nginx, PHP-FPM 등)를 다시 시작합니다 .