Skip to content

docs: development plan — eBPF node profiling - #26

Merged
kfeofantov merged 1 commit into
mainfrom
docs/dev-plan-ebpf-profiling
Aug 11, 2026
Merged

kfeofantov merged 1 commit into
mainfrom
docs/dev-plan-ebpf-profiling

Conversation

@kfeofantov

Copy link
Copy Markdown
Contributor

The living, slice-by-slice development plan realizing ADR 0011 — shared source of truth so implementation across slices doesn't diverge. Docs only.

What it pins

  • 7 invariants every slice holds (one-way to backend, node zero-API, no symbol leaves the node incl. logs, config-bounded targeting, no-privileged, sink/golden, counts-only).
  • Cross-cutting constraints with the owning slice: (a) no-symbol-egress → slices 3/4; (b) kernel version is a proxy, distinguish kernel_too_old vs btf_absent → slices 2/3; (c) two-mode e2e (gate-refusal everywhere + capture on Linux+BTF) → slice 7; forward: -enable-ebpf master switch, config additive in slice 6.
  • Per-slice specs: goal / in / out / files / types & signatures / config-flags / manifest / tests / acceptance / what the PR must state / deps.

Landmines it heads off

  • Slice 6: don't race the single-owner Accumulator — the poller publishes a top-N snapshot into an atomic; the handler reads only that.
  • Slice 5: key profiles by capture interval start–end, not a wall-clock bucket — otherwise rotation silently supersedes earlier captures.
  • Slice 3: create a GPL-2.0 dir only if we vendor GPL source; NOTICE unconditional. An empty dir+LICENSE would mislead auditors.

This is a plan (mutable), not an ADR — updated as slices land.

🤖 Generated with Claude Code

Living, slice-by-slice development plan realizing ADR 0011, as the shared
source of truth so parallel work does not diverge. Records the 7 invariants
every slice holds, the cross-cutting constraints and which slice owns each
(no-symbol-egress-incl-logs, kernel-version-is-a-proxy, two-mode e2e,
flag→config forward), and per-slice specs (goal/scope/files/signatures/
config/manifest/tests/acceptance/PR-must-state/deps). Notes the known
landmines: slice 6 must publish a top-N snapshot rather than race the
single-owner Accumulator; slice 5 keys profiles by capture interval (not a
wall-clock bucket) so rotation never silently supersedes; slice 3 creates a
GPL dir only if it vendors GPL source, NOTICE unconditionally.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kfeofantov
kfeofantov merged commit 0bb5ec7 into main Aug 11, 2026
3 checks passed
@kfeofantov
kfeofantov deleted the docs/dev-plan-ebpf-profiling branch August 11, 2026 18:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant