Sobre o projeto
O Parca Agent é um profiler de amostragem sempre ativo construído sobre eBPF. Ele captura dados brutos de profiling com baixo overhead, observando stack traces de espaço de usuário e espaço de kernel aproximadamente 19 vezes por segundo, e constrói perfis em formato pprof a partir dos dados extraídos. Os dados coletados podem ser visualizados por meio de endpoints HTTP locais ou enviados a um servidor Parca para consulta e análise de longo prazo.
Requisitos: kernel Linux 5.3+ com BTF. O agente deve ser executado como root ou com CAP_SYS_ADMIN; o projeto documenta considerações de segurança e um processo de relato de vulnerabilidades.
O suporte a linguagens é amplo e em evolução, incluindo C, C++, Go (com suporte estendido), Rust, .NET, Deno, Erlang, Java, Julia, Node.js, Wasmtime, PHP 8+, Ruby e Python. Perfis de CPU estão disponíveis, com uso de rede e alocações indicados como planejados. Informações específicas de runtime, como goroutines, exigem instrumentação explícita.
A configuração pode ser fornecida por meio de flags de linha de comando ou de um arquivo YAML via --config-path; as flags têm precedência sobre os valores do arquivo. As opções documentadas abrangem logging, endereço HTTP, frequência e duração do profiling, profiling probabilístico, rótulos de metadados, armazenamento local e remoto, tratamento de debuginfo, exportação OTLP, ajuste de buffer e mapas eBPF, modo offline e instrumentação de lançamento CUDA.
Os perfis sempre carregam rótulos como node, comm, cpu, thread_id e thread_name, com rótulos externos opcionais. O relabeling no estilo Prometheus pode anexar um grande conjunto de metadados de descoberta, incluindo detalhes de processos, informações do kernel do sistema e atributos de contêineres Kubernetes, Docker, containerd e LXC. Duas configurações de exemplo são fornecidas: uma promovendo metadados do Kubernetes sob os próprios nomes de rótulos do agente, e outra usando nomes de convenções semânticas do OpenTelemetry para exportação OTLP.
O código de espaço de usuário é licenciado sob Apache 2; os profilers eBPF de espaço de kernel são GPLv2. O projeto credita o Inspektor Gadget como inspiração.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.