このプロジェクトについて
Parca Agentは、eBPFを基盤とする常時稼働のサンプリングプロファイラです。低オーバーヘッドで生のプロファイリングデータを取得し、ユーザー空間とカーネル空間のスタックトレースを毎秒約19回観測し、抽出したデータからpprof形式のプロファイルを構築します。収集したデータは、ローカルHTTPエンドポイントで表示するか、クエリや長期的な分析のためにParcaサーバーへ送信できます。
要件: BTFを備えたLinuxカーネル5.3以降。エージェントはrootまたはCAP_SYS_ADMIN権限で実行する必要があります。プロジェクトではセキュリティ上の考慮事項と脆弱性報告プロセスが文書化されています。
言語サポートは広範かつ発展途上で、C、C++、Go(拡張サポート付き)、Rust、.NET、Deno、Erlang、Java、Julia、Node.js、Wasmtime、PHP 8以降、Ruby、Pythonが含まれます。On-CPUプロファイルが利用可能で、ネットワーク使用量とアロケーションは計画中とされています。ゴルーチンなどのランタイム固有の情報には明示的な計装が必要です。
設定はコマンドラインフラグまたは--config-pathによるYAMLファイルで指定でき、フラグがファイルの値より優先されます。文書化されたオプションは、ロギング、HTTPアドレス、プロファイリング頻度と期間、確率的プロファイリング、メタデータラベル、ローカルおよびリモートストレージ、debuginfoの処理、OTLPエクスポート、eBPFバッファとマップのチューニング、オフラインモード、CUDA起動計装を網羅しています。
プロファイルには常にnode、comm、cpu、thread_id、thread_nameなどのラベルが付与され、オプションで外部ラベルも追加できます。Prometheusスタイルのリラベリングにより、プロセス詳細、システムカーネル情報、Kubernetes、Docker、containerd、LXCコンテナ属性など、多数のディスカバリメタデータを付加できます。2つの設定例が提供されています。1つはエージェント独自のラベル名でKubernetesメタデータを昇格させるもの、もう1つはOTLPエクスポート用にOpenTelemetryセマンティック規約名を使用するものです。
ユーザー空間コードはApache 2ライセンス、カーネル空間のeBPFプロファイラはGPLv2です。プロジェクトはInspektor Gadgetから着想を得たことを明記しています。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.