Repository navigation
geneva: add server-side packet-manipulation telemetry keys - #23
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change adds Geneva metric-name constants and typed attribute keys to ChangesGeneva telemetry conventions
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to This PR adds localized Geneva telemetry names and attributes without any identified merge-blocking risk; it is merge-ready after normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1 files. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Pull request overview
Adds new Lantern-specific semantic convention constants for the geneva-server NFQUEUE sidecar so it can export its packet-manipulation metrics via OTLP with stable metric names and attribute keys (without introducing high-cardinality or identity-leaking labels).
Changes:
- Added a new Geneva metric-name constant group (engine counters, outcomes/verdicts, overhead ratios, reinjections, swaps, uptime, and
geneva.censor.inbound_tcp). - Added a new Geneva attribute-key constant group (
geneva.mode,geneva.outcome,geneva.verdict,geneva.reinjection,geneva.tcp_event) with value semantics documented inline.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Adds a
Genevagroup tocustom.gofor thegeneva-serverNFQUEUE sidecar (getlantern/geneva-server#1, getlantern/engineering#3859).The sidecar previously exposed its counters only through a pull-only
GET /metricscontrol endpoint. It now exports them as OTLP metrics to the box's local collector, so lantern-cloud reads them from SigNoz instead of SSH-ing to the box. These are the keys for that export.Metric names — engine packet/byte counters, outcome and verdict breakdowns, reinjection results, overhead ratios, strategy-swap count, uptime, and
geneva.censor.inbound_tcp.geneva.censor.inbound_tcpis the load-bearing one: clients behind a censor cannot report a connection that never completed, so the inbound syn-versus-data ratio per market is the only available evidence that a test box's IP has been burned — which is the binding cost of GA exploration (getlantern/engineering#3869).Attribute keys —
geneva.mode,geneva.outcome,geneva.verdict,geneva.reinjection,geneva.tcp_event. Market is labelled with the existing standardgeo.country.iso_coderather than a new key, so it correlates with client geo.No key carries a strategy DNA or candidate identifier: candidate identity is attributed through server-issued opaque tokens in the brain's own tables, and a per-candidate label would both leak it into SigNoz and make cardinality unbounded in the GA's population size. Noted in a comment on the group.
Summary by CodeRabbit