Об этом проекте
Parca Agent — это постоянно работающий выборочный профилировщик, построенный на eBPF. Он собирает необработанные данные профилирования с низкими накладными расходами, наблюдая трассировки стека пользовательского и ядерного пространства примерно 19 раз в секунду, и формирует из извлечённых данных профили в формате pprof. Собранные данные можно просматривать через локальные HTTP-эндпоинты или отправлять на сервер Parca для запросов и долгосрочного анализа.
Требования: ядро Linux 5.3+ с BTF. Агент должен работать от имени root или с CAP_SYS_ADMIN; в проекте описаны соображения безопасности и процесс сообщения об уязвимостях.
Поддержка языков широка и развивается, включая C, C++, Go (с расширенной поддержкой), Rust, .NET, Deno, Erlang, Java, Julia, Node.js, Wasmtime, PHP 8+, Ruby и Python. Доступны профили On-CPU, а использование сети и аллокации отмечены как планируемые. Информация, специфичная для среды выполнения, например горутины, требует явной инструментации.
Конфигурацию можно задавать через флаги командной строки или YAML-файл с помощью --config-path; флаги имеют приоритет над значениями из файла. Документированные параметры охватывают логирование, HTTP-адрес, частоту и длительность профилирования, вероятностное профилирование, метки метаданных, локальное и удалённое хранилище, обработку debuginfo, экспорт OTLP, настройку буферов и карт eBPF, офлайн-режим и инструментацию запуска CUDA.
Профили всегда несут такие метки, как node, comm, cpu, thread_id и thread_name, с необязательными внешними метками. Перемаркировка в стиле Prometheus может прикреплять большой набор метаданных обнаружения, включая сведения о процессе, информацию о ядре системы и атрибуты контейнеров Kubernetes, Docker, containerd и LXC. Приведены два примера конфигураций: одна продвигает метаданные Kubernetes под собственными именами меток агента, а другая использует имена семантических соглашений OpenTelemetry для экспорта OTLP.
Код пользовательского пространства лицензирован под Apache 2; профилировщики eBPF ядерного пространства — под GPLv2. Проект указывает Inspektor Gadget как источник вдохновения.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.