New RelicのPHPエージェントは、エージェントの動作をカスタマイズするためのAPIを提供します。エージェントは多くの一般的なPHPフレームワークを自動的にインストルメントしますが、PHP APIを使用して、エージェントがデフォルトでまだインストルメントしていないアクティビティをインストルメントできます。
このガイドでは、いくつかの一般的なタスクに対するPHPAPI呼び出しについて説明します。例えば:
ヒント
これらのオプションの多くは、ディレクトリごとまたはnewrelic.iniに設定することもできます。 APIを介して設定する場合、 APIは他のメソッドよりも優先されます。
エラーに気付くか無視する
通常、エージェントはエラーを自動的に検出します。ただし、エージェントで手動でエラーをマークすることができます。
| あなたがしたい場合は... | これを行う... | 
|---|---|
| エージェントが自動的に報告しないエラーを報告する | 
 | 
| エラーを無視する | 
 | 
トランザクションのメタデータを強化する
ターゲットとするコードがNewRelicに表示されることがありますが、メソッドの詳細の一部は役に立ちません。例えば:
- デフォルトの名前は役に立たないか、メトリックのグループ化の問題を引き起こしています。
- トランザクションまたはスパンにカスタム属性を追加して、NRQLクエリでそれらをフィルタリングできるようにします。
New Relicがすでに表示されているトランザクションを計測する方法を変更する場合は、次のメソッドを使用します。
| あなたがしたい場合は... | これを行う... | 
|---|---|
| トランザクションの名前を変更する | 
 | 
| メタデータ(顧客のアカウント名やサブスクリプションレベルなど)をトランザクションまたはスパンに追加します | カスタム属性を使用します。 トランザクションとスパンに追加されるカスタム属性(有効な場合)については、  スパンにのみ追加されるカスタム属性については、  | 
| トランザクションをバックグラウンドジョブとしてマークする | 
 | 
| トランザクションがApdexスコアに影響を与えないようにする | 
 | 
関連ログを見る
アプリケーションのエラーとトレースのコンテキスト内でログを直接表示するには、次のAPI呼び出しを使用してログに注釈を付けます。
ログデータを他のテレメトリデータと相関させる方法の詳細については、コンテキストドキュメントのログを参照してください。
名前報告アプリ
New Relic UIは、アプリケーションに名前を付ける方法によってデータを整理します。それぞれの名前は異なるアプリとして表示されます。コードの任意の部分のレポートアプリの名前を変更して、次のことを行うことができます。
これは、同じPHPインストールを使用するマルチサイトアプリケーションまたはアプリケーションコードの個別のセットがある場合に特に役立ちます。
または、 newrelic.appname config値、 Apache 、またはPHP-FPMを使用して、代わりにアプリ名をより高いレベルに設定することもできます。
| あなたがしたい場合は... | これを行う... | 
|---|---|
| コードの特定の部分のレポートアプリの名前を変更します | アプリ名を設定します。  | 
コードの欠落しているセクションをトランザクションで計測する
アプリをインストルメント化するために、NewRelicはコード内の各パスを独自のトランザクションに分離します。 New Relic Times(または「instruments」)は、これらのトランザクションの親メソッドでアプリの全体的なパフォーマンスを測定し、実行時間の長いトランザクションからトランザクショントレースを収集して詳細を確認します。トランザクションの詳細については、トランザクションおよびトランザクショントレースを参照してください。
New Relicがコードの特定の部分をまったくインストルメントしていない場合は、次のメソッドを使用します。
| あなたがしたい場合は... | これを行う... | 
|---|---|
| メソッドのタイミングを開始するNewRelicが自動的にインストルメント化しない | トランザクションを開始します。  | 
| 作業が完了したら、メソッドのタイミングを停止します | トランザクションを停止します。  | 
| トランザクションがNewRelicに報告されないようにする | トランザクションを無視します。  | 
セグメントを使用した時間固有の方法
New Relic UIにトランザクションがすでに表示されているが、そのトランザクション中に呼び出された特定のメソッドに関する十分なデータがない場合は、セグメントを作成して、それらの個々のメソッドの時間をより詳細に計測できます。たとえば、複雑なロジックを使用して特に重要なメソッドの時間を計測したい場合があります。
既存のトランザクション内でメソッドをインストルメント化する場合は、次のメソッドを使用します。
| あなたがしたい場合は... | これを行う... | 
|---|---|
| 特定の方法の時間を計る | 
 | 
機器の非同期作業
PHPエージェントがインストルメントする唯一の非同期作業はGuzzleであり、これはデフォルトでインストルメントされます。
アプリからカスタムイベントと指標データを送信する
New Relicには、任意のカスタムデータを記録するためのさまざまな方法が含まれています。 New Relicのデータ型の説明については、 データ収集を参照してください。
| あなたがしたい場合は... | これを行う... | 
|---|---|
| New Relicで分析できるように、イベントに関するデータを送信します | カスタムイベントを作成します。 APMエージェント(PHP)を介したカスタムイベントの挿入を参照してください。 | 
| イベントにメタデータのタグを付けて、イベントをフィルタリングしてファセット化します | カスタム属性を追加します。  | 
| カスタムパフォーマンスデータを報告する | カスタムメトリックを作成します。  | 
外部サービスへの機器呼び出し
次の方法を使用して、アプリと他のアプリまたはデータストアとの接続に関するデータを収集します。
| あなたがしたい場合は... | これを行う... | 
|---|---|
| デフォルトでインストルメントされていないデータストアへの呼び出しの時間を計測します | 
 | 
| リクエストが分散システムを通過するときにたどるパスを確認する | 9.8より前のバージョンのPHPエージェントについては、次のAPI呼び出しを参照してください。 
 | 
特定のブラウザページを監視する
Browserエージェントは、ページに自動的に追加するか、JavaScript スニペットをコピーして貼り付けることで特定のページにデプロイしてインストールできます。 API呼び出しを使用して エージェントを制御することもできます。 詳細については、ブラウザ監視および PHP エージェントを参照してください。