Sobre o projeto

O Parca é uma plataforma de criação de perfis contínua de código aberto para analisar o uso de CPU e memória ao longo do tempo, até ao número da linha. Foi concebido para ajudar a reduzir os custos de infraestrutura, melhorar o desempenho e aumentar a fiabilidade através da recolha de dados de criação de perfis em toda a infraestrutura. Principais capacidades descritas no README: - Criador de perfis eBPF: Um único criador de perfis que utiliza eBPF descobre automaticamente alvos do Kubernetes ou do systemd em toda a infraestrutura com baixo overhead. Suporta linguagens como C, C++, Rust e Go. - Normas abertas: O criador de perfis baseado em eBPF produz perfis em formato pprof, e o Parca pode ingerir quaisquer perfis em formato pprof, suportando uma ampla adoção de linguagens e interoperabilidade com ferramentas existentes. - Armazenamento e consulta otimizados: Os dados de criação de perfis são armazenados de forma eficiente, mantendo os dados em bruto. Os dados podem ser fatiados e combinados através de pesquisa baseada em etiquetas. Os utilizadores podem agregar dados de criação de perfis em toda a infraestrutura, ver perfis individuais no tempo ou comparar entre dimensões. Os casos de uso destacados no README incluem poupar dinheiro ao encontrar recursos desperdiçados, melhorar o desempenho ao identificar caminhos críticos com significado estatístico e comparar diferenças entre etiquetas como implementações, versões e regiões, e compreender incidentes como fugas de memória ou picos momentâneos de CPU ou I/O. A instalação e a documentação estão disponíveis no site do projeto. O desenvolvimento requer Go, Node e Pnpm. O repositório inclui um processo de compilação com Makefile, e o binário compilado é executado localmente com uma interface web na porta 7070 por predefinição. A configuração é gerida através de flags e de um ficheiro parca.yaml, abrangendo definições de HTTP, opções de armazenamento, simbolização, tratamento de debuginfo e ligações a armazenamentos remotos. O projeto foi originalmente desenvolvido pela Polar Signals e é lançado sob a licença Apache 2.