New RelicのeBPFエージェントは、eBPF APMで使用しているのと同じゼロコードで言語に依存しないアプローチを、スタックのAIレイヤーに拡張します。エージェントがインストールされると、サービスがLLMプロバイダーに対して行うアウトバウンド呼び出しをLinuxカーネルから直接自動的に検出し、SDK、コードの変更、または専用のAI監視エージェントを必要とせずに、生成AIのパフォーマンス、コスト、および信頼性のテレメトリーを報告します。
このテレメトリーは、APM、ネットワーク、およびログデータをすでに報告している自動検出された同じeBPFエンティティに表示されるため、サービスの健全性とAIの使用状況を単一の統合されたビューで確認できます。これは、存在を知らなかった生成AIワークロードを見つけるのに特に役立ちます:サードパーティのサービス、レガシーアプリケーション、またはLLMベンダーを密かに呼び出している、自身が所有していないコードなどです。
主な特徴
ゼロコードの生成AI検出:SDK、ラッパーライブラリ、またはコードの変更を必要とせずに、カーネルレベルでLLMプロバイダー(OpenAI、Azure OpenAI、Amazon Bedrockなど)へのアウトバウンド呼び出しを自動的に検出します。
eBPF APMとシームレスに連携:eBPFエージェントに付属しているため、生成AIのテレメトリーの収集を開始するために別のエージェントをデプロイまたは管理する必要はありません。eBPF AIワークロード監視を有効/無効にするオプションがあります(デフォルトではオフ)。
自動検出とバックオフ:言語APMエージェントがすでにインストゥルメントされ、同じサービスのAIモニタリングデータを報告している場合、自身のAIテレメトリーを抑制し、データの重複を回避します。これは、eBPFエージェントがAPM、ネットワーク、およびログデータに対してすでに使用しているのと同じパターンです。
オプションのプロンプトとレスポンスのキャプチャ:有効にすると、エージェントはモデル、ベンダー、トークン使用量、レイテンシ、エラーなどの生成AIメタデータのみをキャプチャします。デバッグや品質レビューのために必要な場合は、別の設定により、完全なプロンプトとコンプリーションコンテンツを追加でキャプチャできます。
統合されたエンティティビュー:生成AIのテレメトリーは、eBPF APM、ネットワークメトリクス、およびログデータと同じエンティティに表示されるため、サービスの動作を理解するために複数のエンティティ間で相関付ける必要はありません。
サポートされているLLMプロバイダー
eBPF AIモニタリングは現在、以下のLLMプロバイダーへのアウトバウンド呼び出しを検出して報告します:
- Google Gemini
- オープンAI
- Anthropic Claude
- アマゾン岩盤
検出は、サービスがこれらのプロバイダーのAPIに対して行うHTTP呼び出しに基づいてカーネルレベルで行われるため、ベンダーのSDKやクライアントライブラリは必要ありません。他のプロバイダーへの呼び出しは、生成AIのテレメトリーとして報告されません。
使用事例
プラットフォームエンジニア向け:所有していないサービスや、AI対応であることを知らなかったサービスを含め、LLMプロバイダーを呼び出している環境内のすべてのサービスのインベントリを取得します。
不透明なワークロードまたはサードパーティのワークロードを持つチーム向け:直接計装できないレガシーアプリケーションやベンダーバイナリの生成AIの使用量、コスト、レイテンシをモニターします。
AIのコストとパフォーマンスの監視向け:より詳細なコードレベルのAIモニタリング計装に投資する場所を決定する前に、環境全体でトークンを大量に消費する、または応答が遅い生成AIの呼び出しを特定します。
セキュリティおよびコンプライアンスの可視化:どのサービスが外部のAIプロバイダーにデータを送信しているかを把握することで、難読化やドロップルールを適用する場所を決定できます。以下の「機密データとeBPF AIモニタリング」を参照してください。
eBPF AIモニタリングを有効にする
この機能はデフォルトではオフになっていますが、ガイド付きインストールフローから、またはエージェントの設定を直接編集することで簡単に有効にすることができます。また、完全なプロンプトと応答のコンテンツをキャプチャするための個別のコントロールも用意されています。
ガイド付きインストール
LinuxホストとKubernetesのガイド付きインストールフローには、AIモニタリング用の2つのスイッチが含まれています:
- Enable eBPF AI Monitoring: 生成AIワークロード監視をオンにします。デフォルトでは無効です。
- Enable recording model inputs and outputs: 生成AIのインタラクションの完全なメッセージコンテンツ(プロンプトとコンプリーション)をキャプチャします。デフォルトでは無効になっており、Enable eBPF AI Monitoringがオンになっている場合にのみ使用できます。これにより実際のプロンプトと応答のテキストがNew Relicに送信されるため、注意して使用してください。
重要
New Relicは、APMエージェント独自のAIモニタリング計装がすでに報告しているテレメトリーの重複を避けるため、言語APMエージェントを検出した場合、eBPF AIモニタリングを自動的に無効にします。
手動で設定する
ガイド付きインストールを使用しない場合は、エージェントの設定でこれらのパラメーターを設定してください:
ai_monitoring.enabled:生成AIテレメトリーのレポートを制御します。許容される値:"true"(常に送信)、"false"(送信しない)、"auto"(エンティティのAIモニタリングデータをすでにレポートしている言語APMまたはOTelエージェントがない場合にのみ送信)。ai_monitoring.genAICaptureMessageContent:trueの場合、生成AIインタラクションの完全なプロンプトとコンプリーションコンテンツをキャプチャします。ai_monitoring.enabledがtrueまたはautoの場合のみ有効になります。注意して使用してください。
インストールスクリプトを使用するLinuxホストでは、代わりに同等のai_monitoring.enabledおよびai_monitoring.genAICaptureMessageContent環境変数を設定してください。これは、reportApmData、reportNetworkMetrics、およびreportLogsですでに使用されているパターンを踏襲しています。パラメーターの完全なリストについては、LinuxインストレーションまたはKubernetesインストレーションガイドの「設定パラメーター」セクションを参照してください。
eBPF AIモニタリングデータを表示する
New Relic APM UIでeBPF AIモニタリングデータを表示できます:
- one.newrelic.com > APM & Servicesに移動します。
- LLMプロバイダーを呼び出しているサービスのeBPFエンティティを選択します。
- 左側のナビゲーションでAI monitoringをクリックし、AI tracesを選択します。
ヒント
eBPF エージェントは、環境に基づいてエンティティ名を自動的に生成します。
ホストまたはDockerの場合: 名前は、プロセス名、ディレクトリ パスまたはコンテナ ID、およびリスニング ポートを組み合わせたものです。 例:
ruby:/home/ubuntu/app:[5678]またはjava:f4aead533895:[8080]Kubernetesでは、名前はサービス名から派生します。
mysql-database-serviceeBPFエージェントによって収集された属性のリストを表示するには、eBPFエージェント属性リファレンスを参照してください。
機密データとeBPF AIモニタリング
重要
eBPF AIモニタリングは、それ自体で機密データを難読化、マスク、またはドロップすることはありません。設計上、ネットワーク上で観察したものを正確に報告します。
Enable recording model inputs and outputsをオフ(デフォルト)のままにすると、エージェントはプロンプトや補完コンテンツをキャプチャすることはなく、モデル、ベンダー、トークン数、レイテンシなどのメタデータのみをキャプチャします。これにより、そもそも機密性の高いプロンプトや応答テキストがNew Relicに送信されるのを防ぎます。
デバッグや品質レビューのためにそのコンテンツが必要で記録をオンにする場合、機密情報のデータ難読化とドロップは、OpenTelemetry Transformation Language(OTTL)を使用するPipeline Control Gateway(PCG)を通じてのみ利用可能です。eBPFからNew Relicへの直接のデータフローには、AIモニタリングデータの組み込みの難読化は含まれていません。ご注文にPCGを追加するには、アカウント担当者にお問い合わせください。
たとえば、この設定は生成AIインタラクションからキャプチャされた補完コンテンツを秘匿化します(eBPFエージェントが報告するものと一致するように属性名を調整してください。正確な属性名については、eBPFエージェント属性リファレンスを参照してください):
transform/Traces: trace_statements: - statements: - replace_pattern(attributes["gen_ai.completion"], ".+", "***REDACTED***") conditions: - attributes["gen_ai.completion"] != nilこの例では、表示されているcompletion属性のみをマスキングします。プロンプトコンテンツ、特定のモデルベンダー、またはその他の属性に関するルールを含む、追加またはカスタマイズ可能な難読化およびドロップルールについては、PCGでサポートされているOTTL Transform processorを直接設定してください。その他の例については、Redact PIIを参照してください。