Cet article présente un tutoriel sur l'utilisation d'eBPF avec Go pour obtenir une observabilité au niveau du noyau, répondant au manque de visibilité lors du débogage de problèmes de production dans les services générés par IA.

  • Les outils traditionnels de journalisation et de profilage échouent à détecter les problèmes se produisant au niveau du noyau, tels que des appels E/S de fichiers excessifs.
  • eBPF permet la traçabilité des appels système, des E/S de fichiers, des événements réseau, de l'utilisation du CPU/mémoire et des événements d'application personnalisés sans modifier le noyau ni redémarrer les services.
  • L'auteur démontre la traçabilité des syscalls en utilisant Go et la bibliothèque de Cilium, y compris le chargement des programmes eBPF et leur attachement aux kprobes.
  • Les étapes clés consistent à installer l'outil en ligne de commande Cilium eBPF, écrire des programmes eBPF en C compilés avec clang, et les charger depuis Go.

Cette approche permet aux développeurs d'identifier des comportements cachés au niveau du noyau, tels qu'une E/S excessive, qui ne sont pas visibles dans les journaux de l'application, permettant une optimisation efficace des services générés par IA.