summaryrefslogtreecommitdiff
path: root/internal/statsengine/snapshot.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 /internal/statsengine/snapshot.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 'internal/statsengine/snapshot.go')
-rw-r--r--internal/statsengine/snapshot.go21
1 files changed, 12 insertions, 9 deletions
diff --git a/internal/statsengine/snapshot.go b/internal/statsengine/snapshot.go
index f2b617b..7a95ab8 100644
--- a/internal/statsengine/snapshot.go
+++ b/internal/statsengine/snapshot.go
@@ -68,12 +68,13 @@ type SyscallSnapshot struct {
Errors uint64
Bytes uint64
- LatencyMinNs uint64
- LatencyMaxNs uint64
- LatencyMeanNs float64
- LatencyP50Ns uint64
- LatencyP95Ns uint64
- LatencyP99Ns uint64
+ LatencyMinNs uint64
+ LatencyMaxNs uint64
+ LatencyMeanNs float64
+ TotalLatencyNs uint64
+ LatencyP50Ns uint64
+ LatencyP95Ns uint64
+ LatencyP99Ns uint64
}
// FileSnapshot is an aggregated per-file ranking entry.
@@ -84,8 +85,9 @@ type FileSnapshot struct {
BytesRead uint64
BytesWritten uint64
- AvgLatencyNs float64
- MaxLatencyNs uint64
+ AvgLatencyNs float64
+ MaxLatencyNs uint64
+ TotalLatencyNs uint64
}
// ProcessSnapshot is an aggregated per-process entry.
@@ -97,7 +99,8 @@ type ProcessSnapshot struct {
RatePerSec float64
Bytes uint64
- AvgLatencyNs float64
+ AvgLatencyNs float64
+ TotalLatencyNs uint64
}
// HistogramBucketSnapshot is one bucket of a histogram snapshot.