fix(bench): filter collector + load-generator noise from demo corpus (PR-N3.4) - #77
Conversation
…(PR-N3.4) The first healthy capture was ~53% non-application noise: otelcol-contrib self-telemetry (the debug exporter's Logs/Metrics/Traces lines, ~32%) and load-generator's locust operational logs (~22%). That dilutes the business-service signal and would skew A1 toward a handful of repetitive templates. Add a dedicated logs/corpus pipeline (sharing the base otlp receiver) with a filter processor dropping records whose service.name is otelcol-contrib or load-generator, feeding only file/corpus. The demo's own logs pipeline is left untouched. What remains is the business-service diversity (cart, checkout, currency, product-catalog, kafka, shipping, …) with real parameterized templates — the part that exercises the miner. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
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)
📝 WalkthroughWalkthroughThis PR modifies the OpenTelemetry Collector overlay configuration to add a dedicated ChangesLogs Corpus Capture Pipeline
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Pull request overview
This PR refines the OTel Demo corpus capture overlay so the benchmark corpus excludes collector/load-generator operational noise while leaving the demo’s normal logs pipeline untouched.
Changes:
- Adds a
filter/corpusprocessor to dropotelcol-contribandload-generatorlog records byservice.name. - Introduces a dedicated
logs/corpuspipeline that shares the OTLP receiver and writes only filtered records tofile/corpus. - Updates comments to document the capture architecture and filtering rationale.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
What
Drops the two non-application noise sources from the demo corpus via a dedicated, filtered capture pipeline. Branch-validated before this PR (see results below).
Why
The first healthy capture (post-Envoy-bypass) was ~53% non-application noise:
otelcol-contribself-telemetry (the collector'sdebug-exporter"Logs"/"Metrics"/"Traces"lines, ~32%) +load-generatorlocust operational logs (~22%). That dilutes the business-service signal and would skew A1 toward a handful of repetitive infra templates.How
A dedicated
logs/corpuspipeline in the collector overlay, sharing the baseotlpreceiver, with afilterprocessor that drops records whoseservice.nameisotelcol-contriborload-generator, feeding onlyfile/corpus. The demo's ownlogspipeline is untouched.Branch validation (run 26718134959, 900s window)
Filter confirmed working —
otelcol-contrib= 0,load-generator= 0:Now 100% application/service logs: product-reviews 1455, kafka 661, shipping 472, cart 371, ad 168, recommendation 150, currency 73, checkout 45. Top templates are genuine parameterized app logs —
GetCartAsync called with userId={userId},AddItemAsync called with userId={userId}, productId={productId}, quantity={quantity},Convert conversion successful, connection-retry backoff sequences, kafka segment management — exactly what the template miner is built to collapse.Notes
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Changes