PHPエージェントのLogs in contextは、New RelicのログとAPMのデータをつなぎます。これらのデータをひとつのツールにまとめることで、問題の根本的な原因をすばやく把握し、問題の特定と解決に必要なログラインを見つけることができます。
PHPアプリのセットアップ
PHP で監視する APM アプリのコンテキストでのログを有効にするには、次のようにします。
- New Relic の ロギングの設定がすでに完了していることを確認してください。これには、アプリケーションのログを収集し、New Relic に転送されるメタデータを拡張する、サポートされているログフォワーダーの設定が含まれます。
- をインストールするか、 を最新の PHP エージェントバージョンに更新し、 分散型トレーシングを有効にする 。 PHP エージェントのバージョン 9.13.0.270 以降を使用 コンテキストのログを取得します。
- Monolog バージョン1または2をインストールするか、New Relicに組み込まれたMonolog Handlerを使用していない場合は、 互換性のあるログ転送プラグイン を使用します。
- Monolog拡張機能を使用している場合は、PHPのコンテキストでログを設定します。
- ログアペンダーが正しく設定されていることを確認するためには、アプリケーションを実行した後、New Relic One で、クエリ演算子
has:span.id has:trace.id
を使って のログデータを確認してください。
すべての設定が正しく行われ、データがエンリッチメントされたメタデータとともにNew Relicに転送されていれば、ログはJSONとして出力され、 trace.id
と span.id
フィールドが含まれているはずです。UI にログデータが表示されない場合は、 トラブルシューティングの手順 に従ってください。
アプリケーションからのログに trace.id
や span.id
のようなフィールドが含まれていない場合、Monolog のログエンクリッチャーの設定に問題がある可能性があります。このような場合には
- アプリ用のPHPエージェントがインストールされ、分散型トレースを有効にするように設定されていることを確認します。
- アプリケーションがログレコードを送信する際に、
syslog()
ではなく、Monolog logger オブジェクトを使用していることを確認してください。 - 他のMonologハンドラーが、ログレコードが bubbling を妨げていないか確認してください。
次のステップ
APMのログを文脈に合わせて設定した後は、ログデータを最大限に活用しましょう。
- Logs UI を使って、プラットフォーム全体のロギングデータを調べてみましょう。
- 分散型トレーシング でログのコンテキストデータを表示します。なお、PHPの場合、コンテキスト内のログデータは、APM UIの Logs タブには表示されません。
- インフラストラクチャ監視エージェント でログを転送することで、アプリケーションとプラットフォームの両方のパフォーマンスデータをより深く把握することができます。 インフラストラクチャーのログ をUIで確認することができます。
- アラートの設定.
- データのクエリ と ダッシュボードの作成.