New Relic の PHP エージェントには、Magento 1 および 2 の Community エディションおよび Enterprise エディション向けの自動トランザクション名付けのサポートが含まれています。このドキュメントでは、この仕組みと、自動化された名前を使って Magento アプリケーションの問題を追跡する方法について説明します。
Magento 1
Magento 1 アプリケーションのトランザクションは、リクエストを処理するモジュール、コントローラ、およびアクションに基づいて命名されます。例えば、デフォルトの顧客アカウントページのトランザクションは、 customer/account/index
という名前になり、 indexAction()
Mage_Customer_AccountController
( customer
モジュール内の account
コントローラ)のメソッドがトランザクションを担当したことを示します。
Magento 2
Magento 2 アプリケーションの通常のウェブトランザクションは、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 API | コメント |
---|---|
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\FrameworkApp\FrontControllerInterface
にインターセプターが登録されている場合、New Relic の PHP エージェントのバージョン 7.0 以降を使用する際には、そのクラスの名前がデフォルトのトランザクション名として使用されます。また、必要に応じて newrelic_name_transaction()
を使って手動で命名することもできます。
トランザクションの自動ネーミングの解除
トランザクションの自動命名が有用でない場合には、 newrelic_name_transaction()
API 関数を使用して、PHP エージェントの自動トランザクション命名を上書きすることができます。