コンテンツにスキップ

2026年eBPFオブザーバビリティ:連続プロファイリングおよび何を実際に監視AIエージェント

· 13 min read · default
monitoringebpfobservabilityprofilingailinux

本番問題をプロファイルするための伝統的な方法は不幸な依存を持っています:それを既に疑っている必要があります。何かは遅く見える、プロファイラーをアタッチし、条件を再現しようとし、—幸運 問題は依然起きている場合—データをキャプチャします。障害モードは明白おおよび。インシデント 3 午前 で起きました、4分間 続き、誰かが見て時間、証拠は去りました。ロギング追加し、それが再現することを望み、待機します。

eBPFは十分な経済性を変更 ワークフロー反転。eBPFプログラム カーネル内での実行にため 検証 サンドボックス、彼ら観察することができます syscall、スケジューリング、スタック トレース、マシンのすべてのプロセス低いオーバーヘッド で—継続的に1%下—永遠に離れる留置する。それプロファイリング 何かをスタートから クエリー何かに変換:3午前データはすべてが既に存在します。このガイド、その変化をカバー Parca Agent経由 連続プロファイリング、および新しい アプリケーション自律 エージェント増殖として浮上している—使用 同じカーネル レベル 可視性 何 AI エージェント実際に行った を見る、AgentSightのようなツール経由。

eBPFがいかに常時オン実用的にしました

技術的な理由 連続プロファイリング以前実用的でなかった理由は 旧オプションすべて、税をかけた永遠支払わない。perfベース サンプリング プロファイラーは安い が要件 ターゲット設定 およびデータを生成 自分自身を管理する必要があります。計測 プロファイラーは、コード変更 を要求し、呼び出しごとのオーバーヘッド追加。言語固有エージェントは1つのランタイムをカバーおよび しばしば独自パフォーマンス コスト導入。永遠すべてのプロセス何も ノード上に実行するためにならず。

eBPF の寄与は プログラムカーネル スペース実行そのスタック トレース呼び出さない必要があります ユーザースペース エージェント サンプルごと、カーネル検証 静的にプログラムを証明 システム クラッシュできない またはループ永遠を許可する前に。結果 ノイズでカバレッジ オーバーヘッドおよび安全保証を持つカーネル レベル 可視性です。決定的にそれは同様にゼロ計測:変更しない、アプリケーション再コンパイル、またはプロファイル される、摩擦削除 ほとんど以前の試み(「各チーム エージェント追加する必要があります」)を殺してしまった。

1つの実在する 前提条件 記述する価値があります:これは依存 かなり モダン カーネル BTFサポート付き、スタック アンワインディング品質はシンボルを持つバイナリーに依存。剥き出し の本番バイナリー16進数アドレス いっぱい プロファイル生成、解決可能な問題ですが、ツール機能しません 前に解決する 。

連続プロファイリング 実践

Parca Agent考えの最もクリア式。Kubernetes DaemonSetとして配置(またはノード プロセス)、それスタック トレースをサンプルその ノードのすべてのプロセスから、継続的に、ラベル ポッド、コンテナー、および名前空間メタデータで、および配送 それら サーバーのため 保存される メトリクス のような—クエリー可能 時間範囲 およびラベルで。

その ストレージ モデル これはそれは むしろない 興味深い 有用にすること。プロファイル ラベルが付い時間 シリーズなので、オンデマンド プロファイリング答えことができない質問を問い。何のような 支払い名前空間 消費 03:04 および 03:08 CPU? プロファイル存在する;フィルター ウィンドウへ。さらに有用 は比較:配置前 後プロファイル相違、および 回帰 関数として 現れる大きくなっている。予測 の必要はなかった 「前」プロファイル—継続 コレクション それが常に ある という意味。

Parca 処理 混合言語スタック、どれより重要 より、それがサウンド。モダン サービス Go 可能性があります C ライブラリーまたは Python 呼び出す ネイティブ拡張にまで、プロファイル 1つのレイヤーのみ解決 物語を誤ったを伝えます。カーネル レベル アンワインディング 完全スタック見 。深いワン オフ分析の用 あなたは に到達する依然 perfまたはasync-profiler—連続プロファイリング 最適化 カバレッジ およびhistory用、最高値ごと実行詳細ではなく—しかし日常 質問「何をこのクラスター CPU使用」は答える 継続的 安く。

新しい問題:エージェント 何をした?

2 アプリケーション新しく、2026、プレッシング増加。チーム 実行 自律 コーディング エージェント および ツール アクセス 持つ LLMエージェント 本当のシステム。これら エージェント 読み取り ファイル、実行 コマンド、インストール パッケージ、ネットワーク呼び出しを実行。オブザーバビリティ これらシステム 提供 isアプリケーション レベル:プロンプト、ツール 呼び出し、トークン 数、スパン。LangfuseおよびArize Phoenixのようなツール 行う これ 良く および本当に有用。

しかし アプリケーション レベル トレース構造的 制限 持つ:それを示す何 エージェント フレームワーク報告選択した。ツール を実行 場合 シェル コマンド、トレース レコード コマンド 文字列—実行された17プロセス、触れたファイル、またはホスト連絡しません。エージェント プロンプト 削除によって侵害される および 意図されたスコープ外のアクション、トレース表示 アクション それはナレート、セキュリティ質問についてはまったく 誤った 真実のソース です。

AgentSight適用 eBPF ここ:観察 エージェント実際のシステム 動作 カーネル レベル—プロセス実行、ファイル アクセス、ネットワーク接続—計測なし エージェント。エージェント 省略できません またはリポート誤ったこれらのイベント 無視 報告している コンテキスト持つ。コーディング エージェント リポジトリーで 動作 リアルな答え取得「どのファイル それを修正」、「何をそれを実行」、「これが到達外 ワークスペース を実行 。」

右の姿勢 は それら相補的レイヤーです、競争ではなく。アプリケーション トレース エージェント意図 および推論;カーネル トレース伝えます その*効果。相関 タイムスタンプ ここ両方半分:これは何 エージェント試みた実行し、このは本当にマシン で起きた。何でも本当の権限では、最初の半分のぶっかだけあることはギャップです。

セキュリティ、パフォーマンスだけではなく

そのフレーミング ブロード ユースへの指数:同じeBPFファンデーション 下支えランタイム セキュリティ ツール—TraceeFalcoTetragon—ポリシー監視 疑わしいカーネル レベル動作およびTetragons ケース、のインカーネル政策を施行。すべてプロセス、ファイル、ネットワーク イベント毎ノード 収集 前までの「オブザーバビリティ」も「検出」ものは大部分ウィッチ クエスチョン 質問 データの。

エージェント ワークロード のための、その収束は有用。クエスチョン 「なぜ それは遅い」、「何した エージェント 変更」、「何もそのサンドボックスを脱出する」すべて答える されている同じイベント ストリームから。実際に、これはデプロイ エージェント システム アクセス 持つ場合 組織、カーネル レベル 可視性 デプロイ処理の一部として 見るべき、ではない思いやり—それは唯一のレイヤー 本当に制作確実な 自律プロセスの証拠。

正直ただし 健全性は ボリューム。カーネル レベルトレース 生成 膨大イベント ストリーム、おおよび 無思慮ナイブ ログ すべての忙しいノード のすべてのsyscall 圧倒 ストレージ 何もしたやる いくつか。ソースで フィルタリング—パスによる、プロセス、イベント タイプ—はなく 最適化 だが 要件、、その まさに ここで大部分 操作シタニュアル 作業 これらツール 生きる。

プロファイル リーディング ご自身を愚弄 なしで

連続プロファイリング膨大なデータを制作し、しかし あります 信頼すべき 誤読方法 数。知る価値前あなたはプロファイル 行為。

幅 サンプル です、壁時計 遅延 ではなく。 CPUプロファイル CPU時間がどこに ワイドに示してください。あなたのサービス 遅い 理由 があるので待っている—ダウンベース、ロック、ネットワーク 呼び出し—CPU プロファイル外 できるかもしれません ブロック スレッド 穏や かもしれません 消費なし CPU。これ 唯一の最も 共通 誤診:それはないから CPUプロファイル フラット ときに本当に 問題を閉じ—オフ CPU時間 代わり答える すること。

集計 ホットスポット 通常 あなたの遅延 問題。 関数の消費 クラスター 30% CPU できるかもしれません 完全に 期待される バックグラウンド 仕事—シリアライゼーション、圧縮、ガベッジ収集。興味深い信号 通常は変更:この関数 5% 最後 週およびいま30%。それは理由比較 は 絶対 ランク、および 継続 コレクション は 1つのスナップショット。

シンボル品質シェイプ 結論。 シンボル紛失 スタック フラット 無駄 16進数 アドレスに、さらに悪い、それら できるかもしれません 属性 誤った 最も近い解決可能なフレーム を時間—信頼できる、誤った答え 制作。プロファイル 関数 ブレーム コード疑い 前に 前に 何もしない感覚 アンワインディング。

サンプリング フロアがある。 関数が実行 頻繁に ですが 非常に 短命 できるかもしれません アンダー 相対 本当のコスト、、稀だが高価なイベント できるかもしれません 短いウィンドウですべてに見えません。連続 コレクション長期間 聚 何かは 別 議論 常時オン。

実際的な習慣:仮説を形成するためにプロファイルを使用、その後 確認して 目標を絞った測定 前にあなたが使用する前 スプリント最適化。

採用 これを感覚的に

実用的なシーケンス避ける すべてを配置し溺死する共通失敗。ノード 部分集合 で連続プロファイリングで開始。 それは最も低いリスク 導入、即座 提供値(検出 何かを発見 最初の週に)、および教える前に シンボルがある本当は どのように動作 依存します。確認 スタック に解決 本当の関数名;。シンボル 利用可能フィックス しない 場合。

その後追加 比較 ワークフロー、ペイオフ 集中する 場所なので:配置プロセス にプロファイル diffing ワイヤーのため回帰 CPUが 回帰 3日後遅延警告をキャッチされます 代わりに。

エージェントレベル 追加 トレース エージェント システムアクセス 持つ運用するとき 実際に。 エージェント API のみを呼び出し テキスト戻ったする場合、カーネルトレース過度;場合 彼ら 実行 コマンド、書き込み ファイル、または リポジトリーで動作、可視性ギャップは本当 および閉じ価値。

アグレッシブ フィルター 前から開始。 決定 パス、プロセス、イベント タイプ 役立つ、残りを除外。それは はるかに容易 を拡大 狭いフィルター 後でフィルタリング 改造 あなた既に保存 している 火ホース。

最後に、オンデマンド ツール 保つ 鋭い。継続的なプロファイリングを伝えるその 関数なった ホット およびいつperfbpftrace、およびasync-profiler残り より良い、深いダイブなぜ。ワークフロー 働く継続的データ は 検出 およびhistory、ターゲット ツール 診断 。

ボトムライン

eBPF移動 オブザーバビリティ「プロファイラーをアタッチ 問題 疑う 場合」に「データが既に存在、それをクエリー、」なぜならカーネル側実行 検証 サンドボックス 左 常時オン コレクション コスト 1%下および要件 アプリケーション 変更。Parca Agent伝えます ラベル クエリー可能、混合言語 CPUプロファイリング 本当の超能力 比較前おおよび 後 。新しいフロンティアは 適用 可視性 同じ自律エージェント:AgentSight エージェント实际に示す 何を did syscall レベル、閉じギャップ 左 アプリケーション トレース レポート のみ し を選択ナレート。ノード 数 プロファイリングで開始、シンボル確認、構築 リリース 比較、エージェント トレース 追加 エージェント 真実システムタッチ、前から困難フィルター日1、保つperfおよびbpftrace深いダイブ。

参考文献とリソース

ツール

背景および分析

関連1337skills チートシート