overengineeringstudio / overengineeringstudio/effect-utils

Epic: otel-scrape exact process-tree observation + trace-quality residuals

Open
#883 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:tooling origin:agent system:otel-contract type:epic
Dominant language
TypeScript
Stars
82
Forks
2
Avg merge
1d 8h
Merged PRs (30d)
121

Description

Context

Split off from #866, which shipped the honest degraded-merged + trust-gated + semconv-aligned otel-scrape substrate. A SOTA OTel-best-practices re-critique deemed exact process-tree observation valuable but deferrable — trace quality was gated by cheap semantic-convention gaps (now resolved), not by process-tree exactness. This epic captures the deferred work so #866 can close on M25.3 (deploy).

Exact process trees (was #866 M23 / M24)

  • Linux cgroup-scoped run-boundary helper (exact-by-default needs cgroup-scoped evidence, not PID ancestry).
  • macOS signed/entitled Endpoint Security helper — the unprivileged path is rejected by ES_NEW_CLIENT_RESULT_ERR_NOT_PRIVILEGED, so this needs its own install / approval / lifecycle work.
  • Helper-stream health / loss / downgrade signalling.
  • Cross-platform contract-test reuse across both helpers.
  • Richer process-span model (per-process cpu / mem, cwd) — exact mode only pays off once spans carry this.

Exact-path polish (only relevant once exact ships)

  • FU1 — root-span dedup: the exact ptrace path re-emits the direct-child root as a redundant span sharing the command span's argv_hash.
  • ptrace-backend span timing is still ms-quantized (the command path is ns).

Minor trace-quality residuals

  • Full Rust displayVersion renderer for --version (relative-time formatting).
  • vitest adapter OTLP metric events (currently summary-only).
  • Disconnected genie-internal trace: genie's own deep spans don't inherit the task traceparent — a genie instrumentation quirk, not otel-scrape.

References

  • Split from #866.
  • VRS: context/otel-scrape/.
Posted on behalf of @schickling
field value
agent_name 🔥 cl1-flint
agent_session_id c7469e76-e532-457f-a0ab-891cf18049f1
agent_tool Claude Code
agent_tool_version 2.1.183
agent_runtime Claude Code 2.1.183
agent_model claude-opus-4-8
runtime_profile /nix/store/1fbncx3wwgsrjnlb4nq2i60bhj6jcj2f-coding-agent-runtime-profile/share/coding-agents/profile.json
skills_manifest /nix/store/yzjic15ij9icn4rc9ihl46jhsri45988-agent-skills-corpus/share/agent-skills/manifest.json
worktree effect-utils/schickling/2026-06-29-otel-scraper
machine dev3
tooling_profile dotfiles@5e83233

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the VRS material in context/otel-scrape/ and the work split from issue #866. The checklist spans Linux and macOS helpers, cross-platform tests, span modeling, ptrace behavior, Rust version rendering, vitest metrics, and trace propagation; completion requires resolving the selected residuals and exact-path items rather than one isolated edit.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, typescript
Domain
observability
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.