뉴렐릭은 뉴렐릭 PHP 에이전트 버전 7.0 이상을 사용하여 Guzzle HTTP client library 버전 3, 4, 5, 6, 7을 지원합니다.
Guzzle 라이브러리는 순차 요청과 병렬 요청을 모두 허용합니다. 이 페이지에서는 Summary 뉴렐릭 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 capabilities > APM & services > (select an app) > Overview > Web transactions time: 뉴렐릭 UI 에서 Guzzle을 사용한 순차적 요청입니다.
응답 시간은 진한 파란색 선으로 표시됩니다. 녹색 web external time Guzzle 라이브러리에서 소요된 시간을 나타냅니다. 요청이 순차적으로 이루어졌기 때문에 응답 시간은 PHP, MySQL 및 웹 외부 활동에 소요된 총 시간 에 대해 equal 입니다.
병렬 요청
이 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 capabilities > APM & services > (select an app) > Summary > Web transactions time: 뉴렐릭 UI에서 Guzzle을 사용한 병렬 요청
녹색 web external time Guzzle 라이브러리에서 소요된 시간을 나타냅니다. 요청이 비동기식으로 수행되었기 때문에 PHP, MySQL 및 웹 외부에서 소요된 총 시간은 응답 시간보다 greater 입니다.
Guzzle 6 및 7을 사용한 타이밍
이전 버전과 달리 Guzzle 6 및 7은 요청이 전송될 때 이벤트를 생성하지 않습니다. 대신 에이전트는 요청 개체가 생성될 때 요청 시간을 측정하기 시작합니다. 요청 객체가 생성되고 보내기 전에 추가 작업이 수행되면 New Relic은 요청이 실제보다 오래 걸렸다고 보고할 수 있습니다.
Guzzle 지원 비활성화
Guzzle 지원을 비활성화하려면:
newrelic.ini
파일에newrelic.guzzle.enabled = false
을(를) 추가합니다.- 웹 서버(Apache, Nginx, PHP-FPM 등)를 다시 시작합니다 .