Сетевая телеметрия с нулевым оверхедом.
Прямо из ядра Linux.
netpulse подключает легковесные eBPF-трейспоинты к сетевой подсистеме Linux, непрерывно транслируя пропускную способность сокетов и интерфейсов без нагрузки на центральный процессор.
Поток телеметрии в реальном времени
Прямой мониторинг физических сетевых карт и шифрованных оверлеев (WireGuard, Docker bridges) в лаконичном консольном интерфейсе.
Ключевые возможности
Разработано для production-окружений, где предсказуемость потребления ресурсов и надежность критически важны.
Трейсинг сокетов через eBPF
Перехватывает события TCP/UDP ядра без переключения контекста и задержек для хост-приложений.
Бинарник без зависимостей
Полностью статический исполняемый файл без привязки к glibc. Запускается на Alpine, NixOS и Ubuntu.
Нативный эндпоинт Prometheus
Встроенный HTTP-сервер отдает метрики для сбора в Prometheus и визуализации в Grafana из коробки.
Потоковый вывод в NDJSON
Перенаправляйте структурированные события в Vector, Fluentbit или собственные bash-скрипты.
Установка
Загрузите предсобранный бинарник или воспользуйтесь пакетным менеджером вашей ОС.
# Загрузка и проверка контрольной суммы бинарника в /usr/local/bin
curl -fsSL https://get.netpulse.io | sudo sh
brew tap netpulse/tap
brew install netpulse
yay -S netpulse-bin
docker run --rm -it --net=host --cap-add=NET_ADMIN ghcr.io/netpulse/netpulse:latest
Для трейсинга сетевых событий через eBPF требуются права CAP_NET_ADMIN либо запуск через sudo. Базовая статистика сетевых карт работает от непривилегированного пользователя.
Параметры запуска (CLI)
netpulse работает как в интерактивном режиме терминала, так и в виде фонового демона.
| Параметр | По умолчанию | Описание |
|---|---|---|
-i, --interface |
all |
Выбор конкретного сетевого интерфейса (например, eth0, wg0). |
-w, --interval |
1s |
Периодичность опроса и агрегации телеметрии. |
-f, --format |
interactive |
Формат вывода данных: interactive, json или csv. |
--prom-port |
отключен |
TCP-порт для встроенного Prometheus HTTP-эндпоинта (например, 9102). |
-s, --sockets |
true |
Включение модуля eBPF для привязки трафика к процессам и сокетам. |
Файл конфигурации
Постоянные параметры сервиса указываются в ~/.config/netpulse/config.yaml.
# Параметры демона netpulse version: 1 collector: interval: "1s" interfaces: - "eth0" - "wg0" enable_ebpf_sockets: true exporter: prometheus: enabled: true listen_addr: "127.0.0.1:9102" metrics_path: "/metrics"
Диагностика и решение проблем
Ошибка доступа к BPF-трейспоинтам (Permission denied)
Если при старте возникает ошибка загрузки BPF-объектов, назначьте права на исполняемый файл без полного root-доступа:
sudo setcap cap_net_admin,cap_net_raw+ep /usr/local/bin/netpulse