mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-04 16:09:05 +00:00
Yesterday's real-bug proof-of-concept showed the pipeline plumbing works, but every real bug came back INCONCLUSIVE because the Tester (via Playwright MCP) opened pages on an **empty OpenObserve instance**. There was nothing to observe — no streams, no alerts, no pipelines, no traces. This PR adds a common data seed the engine runs before every dispatch. **Pairs with [o2-enterprise#XXXX](https://github.com/openobserve/o2-enterprise/pull/XXXX) — both must merge together.** ## Files added | File | Contents | |------|----------| | `seed/seed-common.sh` | Main orchestrator. POSTs everything via HTTP Basic auth (matches OSS Playwright's `data-ingestion.js` — header-based, no creds on CLI args). | | `seed/traces_seed.json` | 5-span OTLP payload (synthetic — OSS doesn't ship a static traces JSON; `trace-ingestion.js` generates programmatically) | | `seed/metrics_seed.json` | 3-metric OTLP payload (HTTP counter + latency gauge + memory gauge; synthetic for the same reason) | | `seed/alerts_seed.json` | 3 alerts (one scheduled, one real-time, one disabled) | | `seed/pipeline_seed.json` | 1 pipeline (default → ci_pipeline_out) | ## What runs (in order) 1. **Fixture logs** → `ci_seed_stream` (kept for fixture #90001 backward compat via existing `logs_seed.json`) 2. **Bulk logs** (~3.8k entries from existing `tests/test-data/logs_data.json`) → 4 streams: `default`, `e2e_automate`, `web_logs`, `k8s_logs`. **Same file** OSS Playwright's `globalSetup` uses. 3. **OTLP traces** → `default` trace stream 4. **OTLP metrics** → `default` metrics stream 5. **3 alert definitions** (POST /api/{org}/{stream}/alerts) 6. **1 pipeline** (POST /api/{org}/pipelines) Idempotent — all ingestion is best-effort; single-endpoint failures log the HTTP status code but don't abort the seed. Unpopulated areas still yield INCONCLUSIVE downstream (better than the whole engine failing at seed). ## Coverage for the 10 Needs-Testing bugs we're firing next | Bug | Data type needed | Seed step | |-----|------------------|-----------| | #12452 SQL editor overflow | logs | 2 | | #11700 Streams spacing | streams (auto-created via ingest) | 2 | | #5042 Include search cmd+enter | logs | 2 | | #12603 Traces page issues | traces | 3 | | #12820 Alerts UX | alerts | 5 | | #6750 Multi-window custom time | alerts | 5 | | #10530 Pipeline cron alignment | pipeline | 6 | | #12647 Pipelines popup overflow | pipeline | 6 | | #9252 Pipeline destination verbiage | pipeline | 6 | | #12803 Language translation | any page (no seed needed) | — | ## Validated end-to-end Fixture #90002 dispatched on the paired branches ([run 28657529004](https://github.com/openobserve/o2-enterprise/actions/runs/28657529004)) — all 26 pipeline steps completed successfully, including the new Seed step showing 6 sub-seeds with their HTTP status codes. ## What's NOT in this PR - The old `seed/seed.sh` stays for one merge cycle (deprecated in the README) — will delete once two clean real-bug batches confirm seed-common works - No `Test-Assist-CI-Verified` label changes - No qa-reports table updates ## Test plan - [x] Fixture #90002 with `source_ref=feat/test-assist-common-seed` — all 26 steps green - [ ] After merge (this + ENT PR): dispatch on any real bug — expect seed step to run before Scout, and Tester to find non-empty pages 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>