We've been eagerly awaiting some customers to adopt newer kernels so we can start leveraging eBPF because of the performance gains in these type of scenarios.
Getting down the the kernel often can help find problems with disk access or network issues.
One of our staff engineers is exploring it now for NFS stats: https://gitlab.com/wchandler/tracing-tools/-/blob/master/nfs...
In Support Engineering we often straddle the line of 'SRE style stare at graphs and configuration as code' and 'log on to the box and look at syscalls'. We are very very excited about eBPF.
Deploys eBPF kprobes (based on bpftrace) and uprobe (based a custom front-end language) and instantly get rich data (arts, return value, latency), query data in a Pandas-like scripting language and visual dashboard.
* Non intrusive: meaning one can snoop info of application without changing application code.
* Deep visibility: function level and syscall/kernel functions reveal more context and are more accurate in a lot of cases.
* Low overhead: everything runs inside kernel space, no context switching compared to other kernel based/aided tracing.
* Expressiveness: eBPF is fairly expressive, can do many things that usually are exclusive to high level programming languages.
https://developer.apple.com/library/archive/documentation/An...
But I was explaining the most common and obvious (for a user) use of eBPF.
They should just look at the io visor project to see some of the stuff that can be done with it (disclaimer, I work with one of the io visor maintainers)