bpftrace
ebpf_exporter

bpftrace | ebpf_exporter | |
---|---|---|
24 | 6 | |
7,647 | 2,246 | |
- | 0.8% | |
0.0 | 9.0 | |
about 1 year ago | 19 days ago | |
C++ | Go | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bpftrace
- Why would you still want to use strace in 2023? [video]
- Ask HN: How to measure the latency numbers every programmer should know?
-
Securing PyTorch Models with eBPF
In this blog, I will present secimport — a toolkit for creating and running sandboxed applications in Python that utilizes eBPF (bpftrace) to secure Python runtimes.
-
Tag Systems
I haven't come across of any project like that, but in case anyone wants to implement this and doesn't know where to start, here's a way to do it on a freedesktop-compatible linux:
Make a userspace daemon process that adds eBPF tracepoints[0] to open{,_at} etc syscalls which match files of your user directories with specific extensions (e.g. .docx).
Associate PIDs that open those files with their .desktop entries[1]
Store results in some database like sqlite3.[2]
Search this database with your favorite interface, like a CLI script or a GNOME shell search provider[3].
I have seen this Rust project on HN which does something similar but with file attribute syscalls, you can use it as reference: https://github.com/javierhonduco/sweeper
[0]: https://github.com/iovisor/bpftrace
- eBGP tracing for newbie
-
[beetrace]Trace your python process line by line with low overhead!
I develop a python tool that allows you to trace a Python process line by line or the functions' entries and returns. It uses USDT(User Statically-Defined Tracing) probes with bpftrace.
-
How to check is a linux server is compromised or rooted?
bpftrace and/or bpfcc-tools can also be useful (dpkg -L bpftrace to see available tools). You can monitor files being opened/written at kernel level (opensnoop*, filelife*, filetop*), connections being established (tcp*bpfcc), etc.
- Beginner questions
-
Getting notified when a process runs
Similar to this method is bpftrace: https://github.com/iovisor/bpftrace/blob/master/tools/execsnoop.bt
-
Regarding bpftrace vfs_unlink, why can't I monitor the uid, and the obtained value is 0
uname -a Linux ying 5.18.5-200.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jun 16 14:51:11 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
ebpf_exporter
- Is it possible and good to send data to other host with ebpf?
-
Strange IO issue Linux Ubuntu 18.04
There's also the ebpf_exporter which has modules to let you get per-device IO latency data.
-
Any recommendations structuring jobs and alerts?
For example, we alert when the database starts to get slow, because there's real user impact to slow database queries. We track disk IO latency, but it's for debugging after we get alerted by database alerts. Because database problems could be so many different things. Query plans changing, CPU saturation, etc. Slow reads/writes is just one cause of database problems.
-
Any good tools for doing high resolution latency/jitter/loss tests (e.g. link quality monitoring for video conferencing/streaming services)
There also a prometheus exporter for the data if you have prom set up. https://github.com/cloudflare/ebpf_exporter
-
vm servers are so slow.
If you have Linux, there is the ebpf_exporter. We use it to monitor real-time disk IO latency, with basically no overhead to the system.
-
Good resources on storage and file systems?
My current go-to to start with storage monitoring is the ebpf_exporter. It allows you to wrap the underlying kernel functions with timing wrappers, which allows you to gather detailed data on every IO that happens. Gather that up into a histogram, and ship it to a monitoring system for visualization.
What are some alternatives?
bcc - BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more
kepler - Kepler (Kubernetes-based Efficient Power Level Exporter) uses eBPF to probe performance counters and other system stats, use ML models to estimate workload energy consumption based on these stats, and exports them as Prometheus metrics
gyeeta - Gyeeta - An Open Source eBPF based Observability Product for your Infrastructure, Services and Processes. This repository is for the Agent and Server C++ code.
OpenCSD - OpenCSD: eBPF Computational Storage Device (CSD) for Zoned Namespace (ZNS) SSDs in QEMU
el7-bpf-specs - RPM specs for building bpf related tools on CentOS 7
kubectl-trace - Schedule bpftrace programs on your kubernetes cluster using the kubectl
nhi - :tv: Automatically capture all potentially useful information about each executed command (as well as its output) and get powerful querying mechanism
awesome-ebpf - A curated list of awesome projects related to eBPF.
mongodb_exporter - A Prometheus exporter for MongoDB including sharding, replication and storage engines
tcpdog - eBPF based TCP observability.
