Parca Agent - 常時オンeBPF連続プロファイリング チートシート
Parca AgentはeBPFベースの連続プロファイラです。問題が疑わしい場合にプロファイラーをアタッチするのではなく、ノード上のすべてのプロセスから、常にスタック トレースをサンプリングします—約1%のオーバーヘッドで、ゼロアプリケーション計測で。通常のワークフローを反転させます。インシデント下でプロファイラーの下で問題を再現する代わりに、インシデント ウィンドウで実際に実行されていたかを見ます。行番号まで属性を指定し、Parca サーバーまたはPrometheus互換のプロファイル ストアにプロファイルを出荷します。
要件
- eBPF/BTF付きLinuxカーネル(5.4+、新しいが好ましい)
- Root / 特権コンテナ
- プロファイルを受信するParcaサーバー(または互換ストア)
インストール
| Method | Command |
|---|
| Binary | download from GitHub Releases |
| Docker | docker run --privileged ghcr.io/parca-dev/parca-agent:latest |
| Kubernetes | DaemonSet配置(マニフェスト提供) |
| Server | parcaを別途実行してプロファイルを保存/クエリ |
| Verify | parca-agent --version |
実行
sudo parca-agent \
--node=my-node-1 \
--remote-store-address=parca.internal:7070 \
--remote-store-insecure
| Flag | Purpose |
|---|
--node | プロファイルに付与されるノード ラベル |
--remote-store-address | プロファイル出荷先 |
--http-address | ローカルUI/メトリクス エンドポイント(:7071) |
--profiling-duration | サンプリング ウィンドウ(デフォルト10秒) |
--log-level | 詳細度 |
Kubernetes DaemonSet
| Aspect | Note |
|---|
| Deployment | ノードごとに1つのエージェント |
| Privileges | privileged: true、hostPID |
| Discovery | ポッド/コンテナ/名前空間で自動ラベル付け |
| Overhead | 典型的には約1% CPU |
| Storage | プロファイルはParcaサーバーに移動し、ノードには移動しません |
言語サポート
| Runtime | Stack unwinding |
|---|
| C/C++/Rust/Go | ネイティブ(DWARFまたはフレーム ポインタ) |
| Java | JITシンボル解決 |
| Python / Ruby | インタープリター対応アンワインディング |
| Node.js | ランタイム アンワインディングでサポート |
| Any binary with symbols | シンボルがない場合は最良結果 |
混合言語スタックは1つのプロファイルで解決され、ポリグロット サービスに正確に必要です。
プロファイルのクエリ
Parca UI(およびAPI)を使用すると、メトリクスのようなプロファイルをスライスできます:
| Query dimension | Example |
|---|
| Time range | インシデント周辺の5分間 |
| Labels | namespace="prod", pod=~"api-.*" |
| Comparison | 2つの時間範囲を差分(デプロイ前/後) |
| Function | シンボルのフィルター |
# 概念的:スパイク中の1つのサービスのCPUプロファイル
cpu_samples{namespace="prod", container="api"} [14:05 → 14:10]
キラー機能:比較
| Use | How |
|---|
| Regression hunt | リリース前後のプロファイル diff |
| Incident analysis | インシデント ウィンドウとベースラインの diff |
| Optimization proof | ホット関数が縮小したことを表示 |
連続プロファイリングは「before」プロファイルが既に存在するため、これを可能にします—それを望むことを予測する必要はありませんでした。
Parca Agent対関連プロファイラー
| Aspect | Parca Agent | perf | Pyroscope | async-profiler |
|---|
| Model | 常時オン、フロート規模 | オンデマンド、実行単位 | 常時オン | オンデマンド、JVM |
| Instrumentation | なし(eBPF) | なし | エージェント/SDKオプション | JVMエージェント |
| Multi-language | Yes | Yes (native) | Yes | JVMのみ |
| Best for | 本番環境の連続プロファイリング | ディープなローカル分析 | 連続プロファイリング | JVM精度 |
Pyroscopeと同じカテゴリ;深い1回限りの分析が必要な場合はperfまたはasync-profilerを使用します。
リソース