Aller au contenu

bpftop - Moniteur de programme eBPF en direct

bpftop - Moniteur de programme eBPF en direct

bpftop (par Netflix) est une interface utilisateur terminal qui fournit une vue en temps réel de tous les programmes eBPF en cours d’exécution sur un hôte. Pour chaque programme, il affiche le temps d’exécution moyen, les événements par seconde, et l’utilisation CPU estimée, mise à jour en direct — donc vous pouvez voir quels programmes eBPF s’exécutent, à quelle fréquence ils s’activent, et quel surcoût ils ajoutent. Alors que eBPF s’étend sur l’observabilité, la mise en réseau, et les outils de sécurité, bpftop répond à « quel eBPF est en cours d’exécution et quel en est le coût pour moi ? »

Exigences

  • Noyau Linux avec support des statistiques d’exécution eBPF
  • Privilèges root (lit les statistiques BPF du noyau)
  • bpftop active kernel.bpf_stats_enabled pendant l’exécution (et le restaure à la sortie)

Installation

MéthodeCommande
Script d’installation`curl -sSfL https://raw.githubusercontent.com/Netflix/bpftop/main/install.sh
Cargocargo install bpftop
Binairetélécharger depuis la page GitHub Releases
Vérifierbpftop --version

Exécution

CommandeDescription
sudo bpftopLancer le TUI en direct
bpftop --helpAfficher les options
bpftop --versionVersion

bpftop doit s’exécuter en tant que root car il lit les statistiques BPF du noyau et bascule bpf_stats_enabled.

L’affichage

ColonneSignification
IDID du programme BPF
NameNom du programme
TypeType de programme (kprobe, tracepoint, XDP, cgroup, …)
Period Avg Runtime (ns)Temps moyen par exécution dans la dernière période
Total Avg Runtime (ns)Moyenne depuis l’activation des statistiques
Events/secTaux d’invocation
Est. CPU %Utilisation CPU estimée de ce programme

Keys interactives

KeyAction
/ Déplacer la sélection
EnterOuvrir un graphique détaillé pour le programme sélectionné
SortOrdonner par runtime / événements / CPU (colonne)
qQuitter (restaure l’état bpf_stats_enabled avant)

Ce qu’il faut chercher

ObservationInterprétation
Est. CPU % élevé sur un programmeUn programme eBPF ajoutant du vrai surcoût
events/sec élevéUn hook chaud s’activant très fréquemment
Runtime moyen croissantUn programme devenant plus coûteux au fil du temps
Programmes inattenduseBPF que vous ne saviez pas avoir installé

Pourquoi c’est important

eBPF sous-tend les outils comme Cilium/Tetragon, Falco, Tracee, Pixie, et de nombreux profileurs. Chacun charge les programmes dans le noyau. bpftop donne un seul endroit pour voir l’empreinte agrégée et capturer un programme qui se comporte mal ou trop chaud avant qu’il ne dégrada l’hôte.

Workflows courants

# Voir quel eBPF s'exécute et son coût maintenant
sudo bpftop

# Valider le surcoût d'un agent de sécurité eBPF récemment déployé
sudo bpftop   # regarder l'Est. CPU % des programmes de l'agent sous charge

# Enquêter sur une régression CPU mystérieuse que les outils de tracing causent
sudo bpftop   # trier par Est. CPU %, explorer le programme du haut

bpftop vs outils connexes

Aspectbpftopbpftoolbtop / htop
FocusMétriques en direct par programme eBPFInspecter/gérer les objets BPFProcessus du système entier
Coût en temps réelOui (runtime, événements, CPU)Listing statiqueProcessus CPU/mem
InterfaceTUI avec graphiquesCLITUI
Meilleur pourSurveillance du surcoût eBPFGestion des programmes/cartes BPFSurveillance générale

Ressources