New Relic의 PHP 에이전트에는 Magento 1 및 2의 Community 및 Enterprise 버전에 대한 자동 트랜잭션 이름 지정 지원이 포함되어 있습니다. 이 문서에서는 이것이 작동하는 방식과 Magento 애플리케이션의 문제를 추적하기 위해 자동화된 이름을 사용하는 방법을 설명합니다.
마젠토 1
Magento 1 애플리케이션의 트랜잭션은 요청을 처리하는 모듈, 컨트롤러 및 작업에 따라 이름이 지정됩니다. 예를 들어, 기본 고객 계정 페이지의 트랜잭션 이름은 customer/account/index
이며, 이는 Mage_Customer_AccountController
의 indexAction()
메소드 ( customer
모듈의 account
컨트롤러)가 트랜잭션을 담당했음을 나타냅니다.
마젠토 2
Magento 2 애플리케이션의 일반 웹 트랜잭션은 Magento 1 트랜잭션과 유사하게 이름이 지정됩니다. 트랜잭션 이름은 요청을 처리한 모듈, 컨트롤러 및 작업을 인코딩합니다. 예를 들어, Magento\Customer\Controller\Account\Index
컨트롤러 클래스에서 처리하는 요청의 이름도 customer/account/index
로 지정됩니다.
웹 API
Magento 2에는 웹 API 에 대한 기본 제공 지원도 포함되어 있습니다. REST 및 SOAP를 통해 제공되는 웹 서비스입니다.
PHP 에이전트 버전 7.0 부터 New Relic은 이 기능을 사용하는 트랜잭션 이름 지정을 자동으로 지원합니다. 이전 버전의 PHP 에이전트에서는 기본적으로 웹 API 트랜잭션의 이름을 unknown
으로 지정했습니다.
Magento 2 web APIs | Comments |
---|---|
비누 | SOAP 트랜잭션은 요청을 처리한 서비스 클래스 및 메소드를 기반으로 이름이 지정됩니다. 예를 들어, 트랜잭션 이름 WSDL 트랜잭션의 이름도 자동으로 지정됩니다. |
쉬다 | Magento 2.1부터 REST 트랜잭션의 이름은 SOAP 트랜잭션과 유사하게 지정됩니다. 유일한 차이점은 REST 요청에 Magento 2.0에서 PHP 에이전트는 트랜잭션을 처리한 특정 서비스 클래스 및 메서드의 이름을 자동으로 지정할 수 없습니다. 대신 REST 요청은 현재 일반 이름 |
FrontControllerInterface 플러그인
Magento 2에서는 기본 라우팅 엔진을 대체하기 위해 Magento\Framework\App\FrontControllerInterface
인터페이스에 대한 플러그인 또는 인터셉터 를 등록할 수 있습니다. 예를 들어, 이것이 웹 API 기능이 작동하는 방식입니다.
인터셉터가 Magento\Framework\App\FrontControllerInterface
에 등록되어 있으면 New Relic의 PHP 에이전트 버전 7.0 이상을 사용할 때 해당 클래스의 이름이 기본 트랜잭션 이름으로 사용됩니다. 필요한 경우 수동 이름 지정에 newrelic_name_transaction()
을 사용할 수도 있습니다.
자동 트랜잭션 이름 지정 탈출
자동 트랜잭션 이름 지정이 유용하지 않은 경우 newrelic_name_transaction()
API 함수를 사용하여 PHP 에이전트의 자동 트랜잭션 이름을 재정의할 수 있습니다.