New Relicはウェブトランザクションとバックグラウンドタスクなどの非ウェブトランザクションについて情報を収集し報告します。通常、New Relicはユーザーがアプリケーションコードを変更しなくても自動的に完全な情報を生成します。ただし、サポートされているフレームワークを使用してない場合は、カスタムインストゥルメンテーションを追加する必要があるかもしれません。
カスタムインストゥルメンテーションは以下を行うためにも使われます。
- トランザクショントレースに詳細を追加する。
- 選択したトランザクションをインストゥルメントしたくない場合に、インストゥルメンテーションをブロックする。
- New Relicがピックアップしていないコードの一部をインストゥルメントする。
新たなトランザクションを作成するカスタムインストゥルメンテーションは、メトリックタイムスライスデータとイベントデータの両方を収集します。すでにインストゥルメントされたトランザクションに対するカスタムインストゥルメンテーションはメトリックタイムスライスデータだけを収集します。
重要
トランザクション名の末尾に角括弧[suffix]
を使わないでください。New Relicは名前から自動的に角括弧を除去します。代わりに、必要に応じて丸括弧(suffix)
、またはその他の記号を使ってください。
いつカスタムインストゥルメンテーションを使うか
カスタムインストゥルメンテーションでは、New Relicの自動インストゥルメンテーションによってキャプチャされないインタラクションを追跡できます。カスタムインストゥルメンテーションはトランザクショントレースに詳細を追加することもでき、主な問題点を把握するのに役立ちます。
New Relicは多くのフレームワークから自動的にデータを収集します。サポートされているフレームワークを使っている場合、メトリックタイムスライス、イベント、トレースを収集するためのカスタムインストゥルメンテーションは必要ありません。
ただし、以下の状況に遭遇した場合は、カスタムインストゥルメンテーションが必要になるかもしれません。
- UIにトランザクションが表示されない。
- トランザクショントレースに完全な詳細がないアプリケーションコード時間の膨大なブロックが含まれている。
サポートされているフレームワークを使用しているにもかかわらずAPMのTransactionsページにトランザクションが表示されない場合は、フレームワークインストゥルメンテーションが機能しているか確認するためsupport.newrelic.comにサポートを依頼してください。
カスタムインストゥルメンテーションを実施する
カスタムインストゥルメンテーションの実装はエージェントごとに異なります。
グループ化の問題
アカウントがNew Relicに名前の異なるメトリックタイムスライスを送りすぎたり、それらのウェブトランザクションが適切に集計されない場合、メトリクスのグループ化問題が起こります。たとえば、単一の/user/controlpanel/
メトリック名ではなく、/user/controlpanel/alice
、/user/controlpanel/bob
および/user/controlpanel/carol
が表示される場合があります。
New Relicが効率的にグループ化できないほど多くの固有の名前が付けられたメトリックタイムスライスを導入した場合、カスタムインストゥルメンテーションはメトリクスのグループ化問題を招くことがあります。数千のメトリクスを送ると、New Relicはトランザクション数を減らすルールを適用するかもしれません。