RubyエージェントのLogs in contextは、New RelicのログとAPMのデータをつなぎます。これらのデータをひとつのツールにまとめることで、問題の根本的な原因に素早くたどり着き、問題を特定して解決するために必要なログラインを見つけることができます。
Rubyアプリの設定
Rubyで監視しているAPMアプリのコンテキストでのログを有効にするには
- New Relic の ロギングの設定がすでに完了していることを確認してください。これには、アプリケーションのログを収集し、New Relic に転送されるメタデータを拡張する、サポートされているログフォワーダーの設定が含まれます。
- をインストールするか、 を最新の Ruby エージェントバージョンに更新し、 分散型トレーシングを有効にする 。 Rubyエージェントのバージョン6.7.0以降を使用 コンテキストのログを取得します。
- Railsアプリケーションの場合は、 サポートされているRailsのバージョン を使用してください。
- Rubyのコンテキストでログを設定する。
- ログアペンダーが正しく設定されていることを確認するためには、アプリケーションを実行した後、New Relic One で、クエリ演算子
has:span.id has:trace.id
を使って のログデータを確認してください。
{"entity.name":"your_app_name","entity.type":"SERVICE","hostname":"79bcbf8d","trace.id":"79bcbf8d","span.id":"00fc7d46","timestamp":1567701375543,"message":"example log message one","log.level":"DEBUG"}{"entity.name":"your_app_name","entity.type":"SERVICE","hostname":"79bcbf8d","trace.id":"79bcbf8d","span.id":"6754870b","timestamp":1567702843604,"message":"example log message two","log.level":"DEBUG"}
トラブルシューティング
UIにログデータが表示されない場合は、 トラブルシューティングの手順に従ってください。 。また、アプリケーションの出力にJSONログが表示されているにもかかわらず、クエリがログを返さない場合は、 ログフォワーダを確認してください 。
アプリケーションからのログが、 trace.id
や span.id
のようなフィールドを持つJSONでフォーマットされていない場合、ログ転送用の拡張機能に問題がある可能性があります。このような場合には
- アプリケーションが サポートされているロギングフレームワーク を使用していることを確認してください。
- ロギング設定 が、New Relic に送信されるログデータを転送してリッチ化したいすべての環境に適用されていることを確認します。
- アプリケーションの設定で、別のロガーが後から設定されていないか確認してください。
Logs in context for Ruby はタグ付きのログをサポートしていません。 log_tags
の引数でロガーを初期化している場合、カスタムタグは最終版のログに表示されないかもしれません。
次のステップ
APMのログを文脈に合わせて設定した後は、ログデータを最大限に活用しましょう。
- Logs UI を使って、プラットフォーム全体のロギングデータを調べてみましょう。
- APM UI で、アプリケーションのパフォーマンスのコンテキストでログを確認できます。 エラーのトラブルシューティング 分散型トレース 、スタックトレース、アプリケーションログなどを使用します。
- インフラストラクチャ監視エージェント でログを転送することで、アプリケーションとプラットフォームの両方のパフォーマンスデータをより深く把握することができます。 インフラストラクチャーのログ をUIで確認することができます。
- アラートの設定.
- データのクエリ と ダッシュボードの作成.