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
Exécution
| Commande | Description |
|---|
sudo bpftop | Lancer le TUI en direct |
bpftop --help | Afficher les options |
bpftop --version | Version |
bpftop doit s’exécuter en tant que root car il lit les statistiques BPF du noyau et bascule bpf_stats_enabled.
L’affichage
| Colonne | Signification |
|---|
| ID | ID du programme BPF |
| Name | Nom du programme |
| Type | Type 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/sec | Taux d’invocation |
| Est. CPU % | Utilisation CPU estimée de ce programme |
Keys interactives
| Key | Action |
|---|
↑ / ↓ | Déplacer la sélection |
Enter | Ouvrir un graphique détaillé pour le programme sélectionné |
| Sort | Ordonner par runtime / événements / CPU (colonne) |
q | Quitter (restaure l’état bpf_stats_enabled avant) |
Ce qu’il faut chercher
| Observation | Interprétation |
|---|
| Est. CPU % élevé sur un programme | Un programme eBPF ajoutant du vrai surcoût |
| events/sec élevé | Un hook chaud s’activant très fréquemment |
| Runtime moyen croissant | Un programme devenant plus coûteux au fil du temps |
| Programmes inattendus | eBPF 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
| Aspect | bpftop | bpftool | btop / htop |
|---|
| Focus | Métriques en direct par programme eBPF | Inspecter/gérer les objets BPF | Processus du système entier |
| Coût en temps réel | Oui (runtime, événements, CPU) | Listing statique | Processus CPU/mem |
| Interface | TUI avec graphiques | CLI | TUI |
| Meilleur pour | Surveillance du surcoût eBPF | Gestion des programmes/cartes BPF | Surveillance générale |
Ressources