New Relic の PHP エージェントには、Magento 1 および 2 の Community エディションおよび Enterprise エディション向けの自動トランザクション名付けのサポートが含まれています。このドキュメントでは、この仕組みと、自動化された名前を使って Magento アプリケーションの問題を追跡する方法について説明します。
Magento 1
Magento 1 アプリケーションのトランザクションは、リクエストを処理するモジュール、コントローラー、アクションに基づいて名前が付けられます。たとえば、デフォルトの顧客アカウント ページのトランザクションにはcustomer/account/index
という名前が付けられます。これは、 Mage_Customer_AccountController
のindexAction()
メソッド( customer
モジュールのaccount
コントローラ) がトランザクションを担当していたことを示します。
Magento 2
Magento 2 アプリケーションの通常の Web トランザクションには、Magento 1 トランザクションと同様の名前が付けられます。トランザクション名は、リクエストを処理したモジュール、コントローラー、およびアクションをエンコードします。たとえば、 Magento\Customer\Controller\Account\Index
コントローラー クラスによって処理されるリクエストの名前もcustomer/account/index
になります。
Web API
Magento 2 には、 Web API のサポートも組み込まれています。これらは、RESTやSOAPで利用可能なウェブサービスです。
PHP エージェント バージョン 7.0以降、New Relic は、この機能を使用するトランザクションの自動命名をサポートしています。PHP エージェントの以前のバージョンでは、デフォルトで Web API トランザクションにunknown
という名前が付けられていました。
Magento 2 web APIs | Comments |
---|---|
SOAP | SOAP トランザクションには、リクエストを処理したサービス クラスとメソッドに基づいて名前が付けられます。たとえば、トランザクション名 WSDL トランザクションにも自動的に名前が付けられます。 |
REST | Magento 2.1 以降、REST トランザクションにはSOAPトランザクションと同様の名前が付けられます。唯一の違いは、REST リクエストの接頭辞が Magento 2.0 では、PHP エージェントは、トランザクションを処理した特定のサービス クラスとメソッドに自動的に名前を付けることができません。代わりに、REST リクエストは現在、汎用名 |
FrontControllerInterfaceのプラグイン
Magento 2 では、 Magento\Framework\App\FrontControllerInterface
インターフェースのプラグインまたはインターセプターを登録して、デフォルトのルーティング エンジンを置き換えることができます。たとえば、 Web API 機能は次のように動作します。
インターセプターがMagento\Framework\App\FrontControllerInterface
に登録されている場合、New Relic の PHP エージェント バージョン 7.0 以降を使用する場合、そのクラスの名前がデフォルトのトランザクション名として使用されます。必要に応じて、 newrelic_name_transaction()
使用して手動で名前を付けることもできます。
トランザクションの自動ネーミングの解除
自動トランザクション命名が役に立たない場合は、 newrelic_name_transaction()
API 関数を使用して PHP エージェントの自動トランザクション命名をオーバーライドできます。