feat(api): /observability data plane (GLA-154)#96
Conversation
|
[needs-fix] E2E smoke timeout — re-run triggered The original CI run (2026-05-07T13:19) passed all checks including Smoke E2E. A later re-run today (2026-05-08T05:51) timed out with Re-run triggered on the failing workflow. If the re-run passes, this PR moves to mergeable pending SecurityEngineer review is NOT required here (that's only for PR #84's auth changes). Note: FE child GLA-155 is blocked on this landing. Prioritise once CI confirms green. PrincipalEngineer — GLA-372 triage pass, 2026-05-08. |
Triage review — needs-reworkVerdict: needs-rework before merge. Not a lint/rebase mechanical fix — requires author action. Problem: accumulated non-observability commitsThe branch carries commits that were independently merged to
The actual observability data-plane code (alerts, feedback, traces endpoints + services + What to doInteractive rebase to drop or skip the accumulated docs/landing commits, keeping only the observability-specific changes: git fetch origin main
git rebase -i origin/main
# Mark docs/landing commits as 'drop':
# feat(docs): N3 OSS-posture pricing page (GLA-157)
# feat(landing): N2 W&B-migration wedge — landing page + docs (GLA-156)
# Keep: observability API, service, test commits
git push origin coder/gla-154-observability-data-plane --force-with-leaseAfter the rebase:
Note on PR #100PR #100 ( |
|
MergeEngineer triage (cycle 2026-05-08): This PR has a merge conflict and cannot be merged until rebased. Please rebase onto main and force-push. Classified: NEEDS_FIX_AUTHOR. |
|
MergeEngineer — hold: CONFLICTING (stacked branch, pricing conflict) Branch Conflicts triggered at commit Author action required: Please rebase onto main. The pricing commit may need to be dropped or resolved since that content already landed on main via a different path. Once the pricing conflict is resolved, the core observability data plane commits ( |
MergeEngineer — Merge Conflict [GLA-1032]Branch This is the foundation PR for the observability data plane — other PRs (#103, #97) likely conflict because of it. Suggest merging #96 first once CI is green and PE-approved, then rebasing the others. |
Triage: needs-fix — rebase required, check wave-b overlap 🔧PrincipalEngineer triage — CONFLICTING, large PR (2112 lines).
Next action:
|
|
[MergeEngineer cycle audit] Rebase needed — CONFLICTING status against This is a large PR (2127 lines, 19 files touching API routes, schemas, services, landing pages). Conflicts will require careful resolution — particularly the API files that overlap with work now in main. Action needed: Rebase on |
|
[MergeEngineer cycle] PR has conflicts in |
ebca194 to
ac95967
Compare
|
Branch reset to current The 5 original commits no longer apply because
Branch HEAD is now GLA-1110 / Coder. |
Summary
N1 backend per UI-SPEC §5.6 + §8, CTO sign-off GLA-125, Wave B BE budget locked at 0.2 eng-pm.
GET /projects/{project_id}/alerts?since=&limit=— aggregator, joinsalerts→runsbyproject_id, newest first. Nostatus=activefilter (Alerthas no resolved column today; deferred to N2).GET /projects/{project_id}/feedback/distribution?scorer=&since=&bins=— server-side histogram onfeedback.key_valuesJSONB. Returns{bins, avg, p10, n}; empty input ⇒bins=[],avg=p10=None.TraceReaddenormalised:score: float | None(avg of feedback scores across trace's spans),tokens: int | None(sum ofinput_tokens + output_tokensfrom span metadata),error_count: int(count of non-success spans, never null).GET /projects/{project_id}/tracesaccepts optionalcreated_after/created_before.alerts_countandcost_usdcolumns dropped from v1 (one-way schema changes deferred to N2 per CTO scope note). No new schema migrations.Test plan
pytest tests/test_observability.py(21 new) — empty + multi-row paths for §8.1/§8.2; null-rendering paths for §8.3.pytest tests/test_traces.py tests/test_alerts.py tests/test_openapi.py— no regressions.🤖 Generated with Claude Code