Skip to content

Releases: tanelpoder/0xtools

xcapture v3 and xtop first release

23 Oct 17:50

Choose a tag to compare

What's Changed

The first proper release of xcapture eBPF thread level activity tracker + sampler and a reference implementation xtop tool, showing how to use this data for dimensional performance analysis.

The xcapture binary uses modern eBPF, therefore it can be compiled once, into a single executable binary and copied to any other server with a sufficiently high GLIBC and kernel version (5.11+). Both x86_64 and aarch64 should work.

If you love downloading and running binaries from random GitHub accounts, you can download the xcapture (or xcapture-oldkernel) binary directly from this release:

wget https://github.com/tanelpoder/0xtools/releases/download/v3.0.3/xcapture
chmod u+x ./xcapture
sudo ./xcapture

Since this is a first and major release, lots of things have changed, I will cover the functionality and details in future blog posts.

New Contributors

Full Changelog: v2.0.3...v3.0.3

0xtools v3.0.0-beta1

10 Sep 00:34

Choose a tag to compare

New functionality

  • xcapture now reads some data from userspace memory, can can sample userspace stack traces
  • xtop text UI latency histograms, heatmaps, stack trace reporting, libaio/io_uring SQ/CQ size etc
  • new tool: xstack for passive sampling of user/kernel stacks without injecting tracpoints or probes
  • the beta version requires RHEL 5.14+ kernel or otherwise 5.18+ kernel (will backport some functionality)

What's Changed

  • Fix sqlexecmany function by @rebhi in #47
  • Fix uninitialized vars and sys call crash by @grcevski in #54
  • Fix: task_struct backwards-compatibility with kernel versions < 5.14 by @Christoph-Lutz in #53
  • Fix: task_struct backwards-compatibility with kernel versions < 5.14 (2) by @Christoph-Lutz in #55
  • Use a /tmp file instead of RAM if duration exceeds 60 seconds by @rebhi in #49
  • Fix signed div/mod compile error. by @sjuxax in #57

New Contributors

Full Changelog: v2.0.3...v3.0.0-beta1

v2.0.3-beta

12 Jul 21:43

Choose a tag to compare

This is still a beta / tech-nerd preview release. Please don't run it in busy production environments yet.

The main noteworthy change is that now there's a -o option to switch xcapture-bpf to always-on CSV output mode.

./xcapture-bpf -o /some/dirname

This will make xcapture log the 1HZ samples into hourly threads_* files in the output directory and if the stack capture is enabled (its enabled by default in -o mode), it will write any newly seen stack traces into a stacks_* file.

Unlike the hourly files with 1HZ thread sample history, a single stack file is created at xcapture startup (with a startup timestamp in it) and it appends newly seen, not yet written stacks into the end of the single file.

This is likely the final release of the BCC-based beta / developer preview. I've hit too many limitations sooner than I had thought and will now focus on writing a proper final version of this tool (that I can be proud of!) using libbpf and a better frontend. Use the current v2 release for testing and exploring what's possible!

Full Changelog: v2.0.2...v2.0.3

v2.0.2-beta

04 Jul 02:31
1964b5a

Choose a tag to compare

First major release of the next xcapture-bpf beta tool.
Updates and fixes for the classic 0x.tools, psn, xcapture (/proc).

What's Changed

Lots!

New Contributors

Full Changelog: v1.2.4...v2.0.2

v1.2.4 bugfixes

25 May 19:53

Choose a tag to compare

Fixed a bug where wrong system call names were shown on some versions/platforms (due to looking up wrong unistd.h file)

Full Changelog: v1.2.3...v1.2.4

v.1.2.3

20 May 06:02

Choose a tag to compare

  • Supports arm64 and ppc64le platforms (unistd.h lookup for syscall names)

  • Added more "single file descriptor" system calls to psn (for reporting the accessed file name)

  • xcapture supports basic container namespace reporting (use -c nspid or -o output_dir as CSV output reports NSPID by default)

  • psn with python3 now prints extra newlines in output as intended

  • added a rudimentary tool vmtop for showing snapshots of /proc/vmstat activity

  • also added rpmbuild files, but it's not working well yet, as rpmbuild seems to want to use a hard-coded python binary name instead of /usr/bin/env python (will look into this before next release)

What's Changed

New Contributors

Full Changelog: v1.1.3...v1.2.3

v1.1.3

15 Mar 23:25

Choose a tag to compare

Changed make uninstall to use rm rf for removing a python lib dir

v1.1.2

15 Mar 23:22

Choose a tag to compare

Fixed a make install issue caused by another fix in v1.1.1 (need automated test flow!)

v1.1.1

15 Mar 23:17

Choose a tag to compare

Fixed a python path issue so that pSnapper works both from an installed location (/usr/bin) or from within the source tarball directory.

v1.1.0

15 Mar 22:50

Choose a tag to compare

  • Python3 support for psn
  • Changed license from GPL 3.0 to GPL 2.0 or higher
  • xcapture can do more frequent sampling now (sleep <1s)
  • Using semantic versioning now
  • Accepted first PR from other people (thanks @lefred , @tcdale @ckujau)