eBPF ネットワーク監視は、重要な DNS、TCP、ソケット メトリクスをカーネルから直接追跡することで、アプリケーションのネットワーク通信を詳細に可視化します。 インフラストラクチャの接続に焦点を当てた従来のネットワーク監視とは異なり、このソリューションは特定のアプリケーションやサービスのコンテキストでネットワーク サイトを提供し、「アプリケーションなのかネットワークなのか?」という疑問に答えるのに役立ちます。
この機能は、カーネルから直接、詳細なパケットレベルのネットワーク分析を提供し、追加のネットワーク分析ツールの必要性を排除しながら、アプリケーションのパフォーマンス データと関連付けられた詳細なネットワーク テレメトリーを提供します。 これらのメトリクスを使用すると、ビジネスにとって重要な特定のアプリケーションやサービスのコンテキスト内で、接続の問題を診断したり、パフォーマンス ボトルネックを特定したり、データ スループットを追跡したりできます。
IPアドレスのメタデータ
包括的なネットワークの可視性とトラブルシューティング機能を実現するために、eBPF ネットワーク監視はネットワーク接続メタデータの一部として IP アドレスを収集します。 これには、TCP接続、DNS、およびその他のネットワーク通信の送信元および宛先IPアドレスの両方が含まれます。 IPアドレスデータは以下の目的で不可欠です。
接続エンドポイントとネットワークパスの特定
サービス間のネットワーク依存関係を追跡する
接続の問題とパフォーマンスのボトルネックを診断する
ネットワーク メトリクスと特定のアプリケーションおよびサービスの関連付け
ネットワーク メトリクス データは、 New Relicデータ保持期間の設定に従って保持されます。 データ保持期間は、アカウント設定から設定するか、アカウントチームに連絡して個別の保持要件を設定することで変更できます。詳細については、 「データ保持期間の管理」を参照してください。 ネットワーク通信の送信元および宛先 IP アドレスを収集したくない場合は、eBPF ネットワーク監視を計装しないでください。
ネットワーク監視機能
ネットワークメトリクスダッシュボードは、体系的なトラブルシューティングワークフローをガイドするように設計された6つの専用タブを通じて、包括的なネットワーク分析を提供します。
ネットワーク監視タブ
ネットワーク監視ダッシュボードは次のタブで構成されており、各タブにはネットワーク関連のパフォーマンスの問題の診断と解決に役立つ特定のインサイトが提供されています。
エラー: Errorsタブは、ネットワークの問題を診断するための出発点であり、ネットワーク関連のエラーすべてを包括的に表示するのに役立ちます。これには以下が含まれます。
- DNS接続エラーとエラー数
- TCP接続エラーとエラー数
- HTTPエラー(4xxおよび5xxステータスコードなど)とその発生件数および経時的な傾向
レイテンシ: Latencyタブは、次のような重要なタイミング メトリクスを追跡することにより、ネットワーク パフォーマンスに関する詳細なインサイトを提供します。
- TCP ハンドシェイク レイテンシ、TCP 接続の確立にかかる時間を測定します。
- TCP パケット配信レイテンシ。パケットが送信されて確認応答されるまでにかかる時間を示します。
- DNS 解決レイテンシ。ドメイン名の IP アドレスを見つけるのにかかる時間を示します。
パケット損失: Packet lossタブは、以下の項目を追跡することでネットワークの信頼性の問題を特定するのに役立ちます。
- カーネルレベルのパケットドロップとは、OSによってドロップされたパケットを示すものです。
- TCP接続タイムアウトとは、指定された時間内に接続が確立できない場合に発生する現象です。
- パケットの再送信は、パケットが失われ、再送する必要がある場合に発生します。
ソケット: Socketsタブでは、インサイトに次のようなシステム レベルの接続問題が表示されます。
- ソケットエラーとその発生回数は、バッファ割り当て、メモリ制約、またはファイルディスクリプタ制限の問題を示している可能性があります。
TCPフラグ: TCP flagsタブでは、TCP接続の状態を詳細に確認できます。以下が含まれます。
- 受信TCPフラグは、SYN、ACK、FIN、およびRSTパケットの分析を通じて受信接続の状態を示します。
- 送信TCPフラグは、SYN、ACK、FIN、およびRSTパケットの分析を通じて送信接続の状態を示します。
接続: Connectionsタブには、受信トラフィックと送信トラフィックの両方に関する包括的な接続メタデータが表示されます。これには以下が含まれます。
- 接続数とは、時間の経過に伴うアクティブな接続数を示すものです。
- 接続継続時間統計とは、接続が維持される時間を示すものです。
- プロセス レベルの詳細。どのアプリケーションがネットワーク トラフィックを生成しているインサイトを提供します。

使用事例
- トラブルシューティングの遅い外部APIコール:アプリケーションが外部サービスに対する応答タイムの低下を示した場合、ネットワーク メトリクスは、問題の原因がアプリケーションのロジックではなく、TCP ハンドシェイクの遅延、パケット損失、または再送信の問題にあるのかどうかを特定するのに役立ちます。
- パフォーマンス低下の根本原因分析: TCP 接続の正常性、パケット配信レイテンシ、および接続状態の変化を調査することにより、アプリケーションのパフォーマンスの問題とネットワーク層の問題を関連付けます。
- サービス間通信監視:クラスタ全体にわたるマイクロサービス間の通信の健全性を監視し、ネットワークの輻輳やサービス間のルーティングの問題を特定します。
- 外部依存関係トラブルシューティング:アウトバウンド ネットワーク パターンと接続品質を分析することで、外部APIエンドポイントまたはサードパーティ サービスに起因するパフォーマンスの問題を迅速に特定します。
デプロイメントのオプション
現在の監視設定に応じて、次の 2 つの方法で eBPF ネットワーク メトリクスを有効にできます。
既存のNew Relic APMカスタマーの場合: New Relic APMエージェント デプロイをすでにお持ちの場合は、既存の計装と一緒に eBPF ネットワーク メトリクスを追加できます。 eBPF エージェントはネットワーク専用モードで動作し、現在のセットアップを中断することなく、 APMデータをカーネル レベルのネットワーク インサイトで補完します。 詳細については、「既存のAPM顧客に対してネットワーク メトリクス専用モードを有効にする」セクションを参照してください。
より包括的な監視:デプロイするには、 eBPF APMとネットワーク メトリクス機能の両方を備えた完全な eBPF エージェントを使用して、アプリケーション、インフラストラクチャ、およびネットワーク層にわたる完全な監視を実現します。 このアプローチでは、単一エージェントを通じて統合テレメトリー収集が提供されます。
どちらのデプロイメント オプションも、以下で説明する同じネットワーク監視機能を提供します。
既存のAPM顧客に対してネットワーク メトリクス専用モードを有効にする
すでにNew Relic APMエージェント デプロイをお持ちで、現在のAPM計装を変更せずにネットワークの可視性を追加したい場合は、ネットワーク メトリクス専用モードで動作するように eBPF エージェントを設定できます。 これにより、既存のAPMデータを補完するカーネル レベルのネットワーク インサイトが提供されます。
ネットワーク メトリクス専用モードが有効な場合、eBPF エージェントはシステム上の既存のNew Relic APMエージェントの存在を自動的に検出し、競合を回避するために eBPF APMデータ収集をインテリジェントに抑制します。 このシームレスな統合により、現在のAPM計装を維持しながら、ネットワーク層の可視性をさらに高めることができ、両方の監視ソリューションが連携して重複を避けることができます。
Kubernetes環境の場合
Linuxホスト環境
eBPFネットワーク監視データを見る
New Relic APM UI で eBPF ネットワーク監視データを表示できます。
- one.newrelic.com > APM & Servicesに移動します。
- 必要な eBPF エンティティを選択します。
- Monitor [モニター]セクションで、 Network Metrics [ネットワーク メトリクス]をクリックします。 ネットワーク メトリクスが表示されます。
ヒント
eBPF エージェントは、環境に応じて異なるエンティティ名を自動的に生成します。
ホストまたは Docker では、これらの名前はプロセス名、そのディレクトリまたはコンテナ ID、およびリスニング ポートの組み合わせです。たとえば、
ruby:/home/ubuntu/app:[5678]またはjava:f4aead533895:[8080]。Kubernetes では、これらの名前はサービス名から派生されます (例:
mysql-database-service)。アプリケーションにカスタム名を割り当てる:
Kubernetesとオンホスト アプリケーションの両方に
NEW_RELIC_APP_NAME環境変数を設定することで、アプリケーションにカスタム名を割り当てることができます。