Skip to content

Releases: trentas/ptop

ptop 1.9.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 17:36
44acd7e

ptop 1.9.0

Linux binaries (amd64 / arm64) with eBPF collectors embedded.
Requires kernel 5.8+ with BTF, and either root or five capabilities:

sudo setcap cap_bpf,cap_perfmon,cap_sys_admin,cap_dac_read_search,cap_sys_ptrace+ep ptop

cap_bpf,cap_perfmon alone — what these notes said until 1.6.0 — loads the
eBPF lane and then silently runs about three quarters of the probe set. The
remainder does not announce itself: the capture is well-formed and the
dropped axes publish zeros, and zero is a measurement (#117). Run
ptop --caps to see which collectors your privileges actually run.

Integrity verification

sha256sum -c SHA256SUMS

Installation

curl -L https://github.com/trentas/ptop/releases/download/v1.9.0/ptop-1.9.0-linux-amd64.tar.gz | tar xz
sudo install ptop /usr/local/bin/
sudo ptop --pid <PID>

What changed — read before comparing captures across this release

The network axis now decides which sockets belong to the target by evidence, never by whichever task a softirq happened to interrupt (#135, #142). Measured against 1.8.1:

  • a process owning no socket was credited with other processes' connections (192 in 15s on bare metal);
  • a server's connections were never pruned;
  • every client connection to one peer collapsed into one row, because SYN_SENT carries source port 0;
  • the handshake RTT was never computed;
  • connections opened before the capture never got bytes;
  • on some kernel builds, rx read 0 for every connection.

Verified on the published arm64 binary against real targets (kernel 7.2 and 7.0 bare metal with an internet peer): bytes at 100.0% of ground truth, RTT within 0.06 ms of the application's own connect() time, and 0 connections credited to a socketless process. ebpf-selftest now checks all of it against a peer process.

On the wire:

  • NetConn.latency_ms is optional. Absent means not measured (an accepted or pre-existing connection), never 0ms. Every latency_ms published by 1.8.1 and earlier was 0 and was not a measurement.
  • NetConn.preexisting (new): the connection was open before the capture. Its bytes are measured, from the attach; a zero there is an idle connection.
  • SyscallStat.latency_ns is exported: wall time summed over count, so latency_ns / count is the mean. It is optional. Syscall names now come from the kernel's own tables (#139).
  • TargetInfo.ptop names the ptop that produced a stream: {version, commit, build_date} (#145). A capture from either side of these changes can now be told apart.

The network probe now reads socket addresses through the kernel's BTF, already a stated requirement. In Go, pkg/collector publishes []SyscallEvent instead of map[string]uint64.

Changelog

Other

ptop 1.8.1

Choose a tag to compare

@github-actions github-actions released this 15 Oct 02:59
f8d8ad3

ptop 1.8.1

Linux binaries (amd64 / arm64) with eBPF collectors embedded.
Requires kernel 5.8+ with BTF, and either root or five capabilities:

sudo setcap cap_bpf,cap_perfmon,cap_sys_admin,cap_dac_read_search,cap_sys_ptrace+ep ptop

cap_bpf,cap_perfmon alone — what these notes said until 1.6.0 — loads the
eBPF lane and then silently runs about three quarters of the probe set. The
remainder does not announce itself: the capture is well-formed and the
dropped axes publish zeros, and zero is a measurement (#117). Run
ptop --caps to see which collectors your privileges actually run.

Integrity verification

sha256sum -c SHA256SUMS

Installation

curl -L https://github.com/trentas/ptop/releases/download/v1.8.1/ptop-1.8.1-linux-amd64.tar.gz | tar xz
sudo install ptop /usr/local/bin/
sudo ptop --pid <PID>

Changelog

Other

  • f8d8ad3: Merge pull request #141 from trentas/fix/140-seed-reads-target-netns (@trentas)
  • d2f5060: Seed pre-existing connections from the target's socket tables, and say when it cannot (#140) (@trentas)

ptop 1.8.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 14:55
7446417

ptop 1.8.0

Linux binaries (amd64 / arm64) with eBPF collectors embedded.
Requires kernel 5.8+ with BTF, and either root or five capabilities:

sudo setcap cap_bpf,cap_perfmon,cap_sys_admin,cap_dac_read_search,cap_sys_ptrace+ep ptop

cap_bpf,cap_perfmon alone — what these notes said until 1.6.0 — loads the
eBPF lane and then silently runs about three quarters of the probe set. The
remainder does not announce itself: the capture is well-formed and the
dropped axes publish zeros, and zero is a measurement (#117). Run
ptop --caps to see which collectors your privileges actually run.

Integrity verification

sha256sum -c SHA256SUMS

Installation

curl -L https://github.com/trentas/ptop/releases/download/v1.8.0/ptop-1.8.0-linux-amd64.tar.gz | tar xz
sudo install ptop /usr/local/bin/
sudo ptop --pid <PID>

Changelog

Other

ptop 1.7.3

Choose a tag to compare

@github-actions github-actions released this 14 Sep 20:26
1aac398

ptop 1.7.3

Linux binaries (amd64 / arm64) with eBPF collectors embedded.
Requires kernel 5.8+ with BTF, and either root or five capabilities:

sudo setcap cap_bpf,cap_perfmon,cap_sys_admin,cap_dac_read_search,cap_sys_ptrace+ep ptop

cap_bpf,cap_perfmon alone — what these notes said until 1.6.0 — loads the
eBPF lane and then silently runs about three quarters of the probe set. The
remainder does not announce itself: the capture is well-formed and the
dropped axes publish zeros, and zero is a measurement (#117). Run
ptop --caps to see which collectors your privileges actually run.

Integrity verification

sha256sum -c SHA256SUMS

Installation

curl -L https://github.com/trentas/ptop/releases/download/v1.7.3/ptop-1.7.3-linux-amd64.tar.gz | tar xz
sudo install ptop /usr/local/bin/
sudo ptop --pid <PID>

Changelog

Other

ptop 1.7.2

Choose a tag to compare

@github-actions github-actions released this 14 Sep 19:58

⚠️ The linux/arm64 binary in this release carries x86-built eBPF programs,
as does every release before it (#123). On arm64 that makes every uprobe
argument and return value garbage, silently — the probes still report
active. The amd64 binary is unaffected. Fixed in v1.7.3, the first
release whose arm64 binary carries arm64 objects.

ptop 1.7.2

Linux binaries (amd64 / arm64) with eBPF collectors embedded.
Requires kernel 5.8+ with BTF, and either root or five capabilities:

sudo setcap cap_bpf,cap_perfmon,cap_sys_admin,cap_dac_read_search,cap_sys_ptrace+ep ptop

cap_bpf,cap_perfmon alone — what these notes said until 1.6.0 — loads the
eBPF lane and then silently runs about three quarters of the probe set. The
remainder does not announce itself: the capture is well-formed and the
dropped axes publish zeros, and zero is a measurement (#117). Run
ptop --caps to see which collectors your privileges actually run.

Integrity verification

sha256sum -c SHA256SUMS

Installation

curl -L https://github.com/trentas/ptop/releases/download/v1.7.2/ptop-1.7.2-linux-amd64.tar.gz | tar xz
sudo install ptop /usr/local/bin/
sudo ptop --pid <PID>

Changelog

Other

  • 484818c: Build release artifacts without a restored Go build cache (@trentas)

ptop 1.7.1

ptop 1.7.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Sep 19:08
9d118e9

⚠️ The linux/arm64 binary in this release is broken — as it is in every
previous release. The eBPF objects are compiled once, on the x86_64 release
runner, and embedded into both the amd64 and the arm64 binary; on arm64 they
read struct pt_regs at x86 offsets, so every uprobe argument and return
value is garbage. The amd64 binary is unaffected. This is NOT specific to
v1.7.1, and the #121 fix this tag carries IS present in it.

(An earlier note here said the artifact lacked the fix. That was wrong — the
fix is in it; the arm64 eBPF objects are what is broken.)

Linux binaries (amd64 / arm64) with eBPF collectors embedded.
Requires kernel 5.8+ with BTF, and either root or five capabilities:

sudo setcap cap_bpf,cap_perfmon,cap_sys_admin,cap_dac_read_search,cap_sys_ptrace+ep ptop

cap_bpf,cap_perfmon alone — what these notes said until 1.6.0 — loads the
eBPF lane and then silently runs about three quarters of the probe set. The
remainder does not announce itself: the capture is well-formed and the
dropped axes publish zeros, and zero is a measurement (#117). Run
ptop --caps to see which collectors your privileges actually run.

Integrity verification

sha256sum -c SHA256SUMS

Installation

curl -L https://github.com/trentas/ptop/releases/download/v1.7.1/ptop-1.7.1-linux-amd64.tar.gz | tar xz
sudo install ptop /usr/local/bin/
sudo ptop --pid <PID>

Changelog

Other

  • 9d118e9: Merge pull request #122 from trentas/fix/121-reserve-snapshot-room-in-collector-channels (@trentas)
  • f8bcd99: Reserve room for the snapshot in a collector's own channel, not just upstream (#121) (@trentas)

ptop 1.7.0

Choose a tag to compare

@github-actions github-actions released this 14 Sep 15:30

ptop 1.7.0

Linux binaries (amd64 / arm64) with eBPF collectors embedded.
Requires kernel 5.8+ with BTF, and either root or five capabilities:

sudo setcap cap_bpf,cap_perfmon,cap_sys_admin,cap_dac_read_search,cap_sys_ptrace+ep ptop

cap_bpf,cap_perfmon alone — what these notes said until 1.6.0 — loads the
eBPF lane and then silently runs about three quarters of the probe set. The
remainder does not announce itself: the capture is well-formed and the
dropped axes publish zeros, and zero is a measurement (#117). Run
ptop --caps to see which collectors your privileges actually run.

Integrity verification

sha256sum -c SHA256SUMS

Installation

curl -L https://github.com/trentas/ptop/releases/download/v1.7.0/ptop-1.7.0-linux-amd64.tar.gz | tar xz
sudo install ptop /usr/local/bin/
sudo ptop --pid <PID>

Changelog

Other

  • 200bd00: Merge pull request #118 from trentas/fix/117-capability-set-and-startup-probe-plan (@trentas)
  • 27719e0: Merge pull request #120 from trentas/feat/119-symbols-for-stripped-binaries (@trentas)
  • a648abc: Name a stripped third-party binary, by the build-id that already travels (#119) (@trentas)
  • 0bf48c0: Say which collectors the capabilities actually run, and grant all five (#117) (@trentas)
  • 03c61cb: The release notes stop teaching the setcap that drops three collectors (@trentas)

ptop 1.6.0

Choose a tag to compare

@github-actions github-actions released this 26 Aug 22:11
88ee3d7

ptop 1.6.0

Linux binaries (amd64 / arm64) with eBPF collectors embedded.
Requires kernel 5.8+ with BTF, and either root or CAP_BPF + CAP_PERFMON.

Integrity verification

sha256sum -c SHA256SUMS

Installation

curl -L https://github.com/trentas/ptop/releases/download/v1.6.0/ptop-1.6.0-linux-amd64.tar.gz | tar xz
sudo install ptop /usr/local/bin/
sudo ptop --pid <PID>

Changelog

Other

  • c1eebcc: Count the call-site cap in call sites, and say what the cut left out (#109) (@trentas)
  • 88ee3d7: Merge pull request #116 from trentas/fix/109-fold-call-sites-and-report-completeness (@trentas)

ptop 1.5.0

Choose a tag to compare

@github-actions github-actions released this 26 Aug 18:43
61e292e

ptop 1.5.0

Linux binaries (amd64 / arm64) with eBPF collectors embedded.
Requires kernel 5.8+ with BTF, and either root or CAP_BPF + CAP_PERFMON.

Integrity verification

sha256sum -c SHA256SUMS

Installation

curl -L https://github.com/trentas/ptop/releases/download/v1.5.0/ptop-1.5.0-linux-amd64.tar.gz | tar xz
sudo install ptop /usr/local/bin/
sudo ptop --pid <PID>

Changelog

Other

  • c3b4c9a: Honour --disable on every lane a subsystem has, not just its eBPF one (@trentas)
  • b2552a1: Merge pull request #114 from trentas/feat/probe-set-handshake (@trentas)
  • 61e292e: Merge pull request #115 from trentas/fix/113-honour-disable-on-every-lane (@trentas)
  • dd90a50: Say which collectors are running, so silence stops meaning "idle" (@trentas)
  • 0e2bedb: Stop reporting io disabled when its /proc lane is running (@trentas)
  • 3f98001: Stop the collector Sets the probe tests start (@trentas)

ptop 1.4.1

Choose a tag to compare

@github-actions github-actions released this 24 Aug 21:43
82302d3

ptop 1.4.1

Linux binaries (amd64 / arm64) with eBPF collectors embedded.
Requires kernel 5.8+ with BTF, and either root or CAP_BPF + CAP_PERFMON.

Integrity verification

sha256sum -c SHA256SUMS

Installation

curl -L https://github.com/trentas/ptop/releases/download/v1.4.1/ptop-1.4.1-linux-amd64.tar.gz | tar xz
sudo install ptop /usr/local/bin/
sudo ptop --pid <PID>

Changelog

Other