summaryrefslogtreecommitdiff
path: root/Magefile.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-08 19:43:33 +0300
committerPaul Buetow <paul@buetow.org>2026-05-08 19:43:33 +0300
commitf86699a94bdde7d973ba5d6fa3e7ca4ab2f234fb (patch)
treec2e11bfa4fdac965623a8058716c514fce507eba /Magefile.go
parentc41a38ef55bb80681a6cc0b2161f8e84bfabcf17 (diff)
add duration metric, tolerate missing tracepoints, ship el8 build
- Bubbles, treemap, icicle, and the live flamegraph 'b' cycle now include syscall duration (sum) as a third metric alongside events and bytes. Statsengine snapshots expose TotalLatencyNs to support this. - AttachAll takes an optional warn callback. Production passes one so older kernels that lack newer tracepoints log a warning and keep going instead of aborting startup. - Dockerfile.el8 + scripts/build-with-docker-el8.sh + mage buildDockerEl8 produce ior.el8, a static binary built against Rocky Linux 8 glibc for RHEL/Rocky/Alma 8 hosts. - README.md documents installing mage and the new el8 target.
Diffstat (limited to 'Magefile.go')
-rw-r--r--Magefile.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/Magefile.go b/Magefile.go
index dcde50e..540515c 100644
--- a/Magefile.go
+++ b/Magefile.go
@@ -41,6 +41,7 @@ const (
tracepointsGoPath = "internal/tracepoints/generated_tracepoints.go"
typesGoPath = "internal/types/generated_types.go"
dockerBuildScript = "scripts/build-with-docker.sh"
+ dockerBuildScriptEl8 = "scripts/build-with-docker-el8.sh"
typesHeaderPath = "internal/c/types.h"
VMLINUXPath = "internal/c/vmlinux.h"
benchProfilesDir = "bench-profiles"
@@ -82,6 +83,15 @@ func BuildDocker() error {
return sh.RunV("bash", dockerBuildScript)
}
+// BuildDockerEl8 builds the ior binary inside a Rocky Linux 8 Docker container
+// and writes it as ior.el8 in the repo root, alongside the el9 ior binary
+// produced by BuildDocker. Use this when targeting hosts with the older glibc
+// shipped on RHEL/Rocky/Alma 8. The container image is built on the first
+// run (~15-20 min) and reused thereafter.
+func BuildDockerEl8() error {
+ return sh.RunV("bash", dockerBuildScriptEl8)
+}
+
// BpfBuild builds the embedded BPF object used by the Go binary.
func BpfBuild() error {
if err := ensureVMLINUX(); err != nil {