このドキュメントは、PHP フレームワークの開発者やメンテナを対象としています。New Relic のサポートを追加してフレームワークを拡張する方法を提案します。
PHPエージェントは、フレームワークをサポートするために、 フレームワークのコードのどこにWebトランザクションが適切な名前を つけられるかを把握し、クラスや関数の呼び出しなどの情報に基づいて Webトランザクションを命名します。このソリューションは脆弱で、開発者がコードを変更した場合に影響を受けます。New Relic は、フレームワークの開発者に対して、自分が保守しているフレームワークのアウトオブボックスのユーザーエクスペリエンスを向上させるために必要ないくつかのコールを行うことを推奨しています。
ユーザーのために
New Relic は、New Relic のブラウザモニタリングのために、ウェブトランザクション名と、JavaScript のヘッダーとフッターを挿入する場所を特定することができます。しかし、エンドユーザーの体験を向上させ、パフォーマンスを向上させ、コードのメンテナンスを容易にするためには、フレームワークの開発者が自らこの作業を行うべきである。
New Relic のネイティブサポートを追加してユーザーを支援するかどうかは、さまざまなフレームワークの開発者に委ねられています。ほとんどの場合、New Relicのサポートを追加するには、フレームワークのコードのどこかに3つのAPIコールを挿入する必要があります。
用語解説
New Relic のサポートを追加する最善の方法を理解するためには、相互作用の重要なポイントを理解することが役立ちます。
学期 | 定義 |
---|---|
Webトランザクション | ウェブトランザクション は、あなたのサイトへのアセットリクエスト(またはユーザーヒット)です。フレームワークでは、MVCのディスパッチ機構で処理されることが多いです。 |
指標 | Metrics [メトリクスは] 、タイミング情報を報告する名前付きエンティティです。New Relic はこれらのメトリクスを使用して、 APM Summary ページなどのチャートやページを生成します。たとえば、New Relic インストルメントは MySQL を呼び出し、ユーザーがデータを選択または更新するたびに、 メトリクスにはタイミングデータしか含まれていません。 |
トランザクショントレース | 毎回の収穫期に、New Relic はユーザーが定義した閾値を下回った最も遅いウェブトランザクションを記録します。これは、 トランザクショントレース 。 単純なメトリクスよりも詳細な情報が得られます。有効にすると、どの関数が呼び出され、どのくらいの時間がかかったかを正確に示す詳細なコールグラフが含まれます。低速のクエリ文については、呼び出し中のすべてのデータを難読化します。 |
名前トランザクション
ウェブ取引にどのように名前を付けるかは、ユーザー体験の質に影響します。
重要
トランザクション名の末尾に角かっこ[suffix]
を使用しないでください。 New Relicは、名前から角かっこを自動的に削除します。代わりに、必要に応じて括弧(suffix)
またはその他の記号を使用してください。
例:
ブログ スタイルのフレームワークがある場合は、ユーザー アクティビティに基づいてさまざまなトランザクションに名前を付けます ( display
、 edit
、 login
など)。
MVC アーキテクチャを使用する場合、適切な命名規則は controller/action
です。トランザクション名にはリクエスト固有のデータを含め ないで ください。たとえば、実際のリクエスト URL を使用すると、 メトリクスのグループ化の問題が発生します。
プラットフォーム | トランザクションのネーミング例 |
---|---|
Drupal 7 | ディスパッチは |
CakePHP 1.3 | CakePHP には、 |
コードを特定のコントローラとアクション(MVCを使用している場合)、またはアクション(MVCを使用していない場合)にルーティングしたいポイントで、以下のようなコードを挿入します。
コントローラーとアクション (MVCを使用している場合)。
if (extension_loaded ('newrelic')) { newrelic_name_transaction ($controller . '/' . $action);}
アクションのみ (MVCを使用していない)。
if (extension_loaded ('newrelic')) { newrelic_name_transaction ($action);}
JavaScriptのヘッダーとフッターの挿入
ページのロードタイミング(リアルユーザーモニタリング(RUM)と呼ばれることもあります)については、JavaScriptのヘッダとフッタを挿入します。これにより、生成されたページに対するエンドユーザーの体験をモニターすることができます。
- 推奨: フレームワークにすべてのページのヘッダーとフッターを生成する中央機能がある場合は、ここにJavaScriptのコードをインストールします。
- テンプレート駆動型のフレームワークでは、ヘッダーやフッターのテンプレートに挿入します。