このプロジェクトについて

Parcaは、Open-Sourceの継続的プロファイリングプラットフォームで、時間軸に沿ったCPUおよびメモリ使用量を出力行レベルで分析することができます。インフラ全体のプロファイリングデータを収集することで、インフラコストの削減、パフォーマンスの向上、信頼性の向上を目指して設計されています。 READMEで説明されている主な機能: - eBPF Profiler: 単一のeBPCプロファイラーが、Kubernetesまたはsystemdからインフラ全体のターゲットを自動検出し、低オーバーヘッドで動作します。C、C++、Rust、Goなどの言語をサポートしています。 - Open Standards: eBPCベースのプロファイラーはpprof形式のプロファイルを生成し、Parcaはあらゆるpprof形式のプロファイルを取り込むことができます。これにより、幅広い言語対応と既存ツールとの相互運用性が実現します。 - Optimized Storage and Querying: プロファイリングデータは生データを保持しつつ効率的に保存されます。ラベルベースの検索でデータを細かく分析できます。インフラ全体でプロファイリングデータを集約したり、特定の時点のプロファイルを表示したり、異なる次元で比較することができます。 READMEで強調されているユースケース: - 無駄なリソースを見つけることでお金を節約 - 統計的に有意義なホットパスを特定し、デプロイ、バージョン、地域などのラベル間で差異を比較することでパフォーマンスを向上 - メモリリークや一時的なCPU/IOスパイクなど、インシデントの理解を深める インストールとドキュメントはプロジェクトウェブサイトから利用可能です。開発にはGo、Node、Pnpmが必要です。リポジトリにはMakefileビルドプロセスが含まれており、コンパイルされたバイナリはデフォルトでポート7070でWeb UIを起動します。設定はフラグとparca.yamlファイルによって処理され、HTTP設定、ストレージオプション、シンボル化、debuginfo処理、リモートストア接続をカバーしています。 本プロジェクトはもともとPolar Signalsによって開発され、Apache 2ライセンスの下でリリースされています。