프로젝트 소개

Parca는 CPU 및 메모리 사용량을 라인 번호까지 시간별로 분석하는 오픈소스 지속적 프로파일링 플랫폼입니다. 인프라 전반에서 프로파일링 데이터를 수집하여 인프라 비용 절감, 성능 개선, 안정성 향상을 돕기 위해 설계되었습니다. README에 설명된 주요 기능: - eBPF 프로파일러: eBPF를 사용하는 단일 프로파일러가 Kubernetes 또는 systemd에서 대상을 자동으로 발견하며, 낮은 오버헤드로 인프라 전반을 프로파일링합니다. C, C++, Rust, Go 등의 언어를 지원합니다. - 개방형 표준: eBPF 기반 프로파일러는 pprof 형식의 프로파일을 생성하며, Parca는 모든 pprof 형식의 프로파일을 수집할 수 있어 광범위한 언어 채택과 기존 도구와의 상호 운용성을 지원합니다. - 최적화된 저장 및 쿼리: 프로파일링 데이터는 원시 데이터를 유지하면서 효율적으로 저장됩니다. 데이터는 레이블 기반 검색을 통해 세분화하거나 집계할 수 있습니다. 사용자는 인프라 전반의 프로파일링 데이터를 집계하고, 시간별 단일 프로파일을 보거나, 차원 간 비교할 수 있습니다. README에서 강조하는 사용 사례는 낭비되는 리소스를 찾아 비용을 절감하고, 통계적으로 유의미한 핫 경로를 식별하고 배포, 버전, 지역 등의 레이블 간 차이를 비교하여 성능을 개선하며, 메모리 누수나 일시적인 CPU 또는 I/O 급증과 같은 인시던트를 이해하는 것입니다. 설치 및 문서는 프로젝트 웹사이트에서 제공됩니다. 개발에는 Go, Node, Pnpm이 필요합니다. 저장소에는 Makefile 빌드 프로세스가 포함되어 있으며, 컴파일된 바이너리는 기본적으로 포트 7070에서 웹 UI와 함께 로컬로 실행됩니다. 구성은 플래그와 parca.yaml 파일을 통해 처리되며, HTTP 설정, 저장 옵션, 심볼화, 디버그 정보 처리, 원격 저장소 연결을 다룹니다. 이 프로젝트는 원래 Polar Signals에서 개발했으며 Apache 2 라이선스로 배포됩니다.