Write the dashboard walkthrough doc — screenshots (you) + code-paired narrative (me)
Splits the work needed to ship website/docs/using/dashboard-walkthrough/index.md: you generate fresh data and capture 9 screenshots, I pair each with its exact producing code and write the page.
IMPLEMENTATION RULES: Before implementing this plan, read and follow:
- WORKFLOW.md - The implementation process
- PLANS.md - Plan structure and best practices
Status: Completed
Investigation: INVESTIGATE-dashboard-documentation.md — panel↔code mapping, screenshot workflow, and page structure decisions.
Goal: Ship a walkthrough page pairing every dashboard panel with the exact sovdev_log*() call that produces it, a real screenshot, and explanatory prose — a reader gets the full story from this one page.
Last Updated: 2026-07-10
Problem Summary
The dashboard exists (sovdev-logger-full, built in PLAN-grafana-dashboard-definitions.md) but nothing explains it to a reader yet. I can't open a browser or take screenshots from this environment, so this plan is inherently split: you produce the visual evidence, I produce the narrative that explains it. Doing this in one clean pass (fresh data → screenshots → doc) avoids screenshots that don't match what the paired code snippet describes.
Phase 1: Generate fresh data and capture screenshots — YOUR STEPS
Tasks
-
1.1 Run the TypeScript E2E test to generate fresh, current data:
dct-exec bash -c "cd /workspace/typescript/test/e2e/company-lookup && bash run-test.sh --skip-validation" -
1.2 Wait ~30-40 seconds (Tempo trace indexing lag — confirmed empirically during Phase 2 of the dashboard build; traces don't appear immediately)
-
1.3 Open
http://grafana.localhost/d/sovdev-logger-full/sovdev-logger-full-overview(admin/SecretPassword1) -
1.4 Revised twice: a single browser screenshot doesn't capture the full dashboard (only what's visible above the fold). Also, along the way, found and fixed two real bugs in the "by Peer Service" panels themselves (see
PLAN-grafana-dashboard-definitions.md's "Post-completion fix" sections —instant: truequeries returned empty, then a duplicate-rows issue), which needed several rounds of fresh screenshots to confirm. Settled on 4 section-grouped screenshots (matching how they were naturally captured) rather than forcing exactly 2 composites:Filename Panels it covers dashboard-metrics.pngActive Integrations, Total Operations, Error Rate, Average Operation Duration dashboard-peer-service.pngOperations/Errors/Error Rate/Avg Duration by Peer Service dashboard-job-traces.pngJob Lifecycle, Recent Traces dashboard-errors-transactions.pngRecent Errors, Transaction Logs I copied the final files into place myself (
cpfrom the maintainer's Desktop screenshots) once confirmed correct, rather than the maintainer moving them by hand. -
1.5 Confirmed all 4 files exist in
website/docs/using/dashboard-walkthrough/
Validation
- I confirmed all 4 files exist at the expected path before starting Phase 2
Phase 2: Write the walkthrough page — MY STEPS — DONE
Tasks
- 2.1 Re-read
company-lookup.tsfresh — confirmed line numbers (202/222/258/273/303/318/371/412/440/481/614/666) against the current file, not assumed from the earlier investigation - 2.2 Wrote
website/docs/using/dashboard-walkthrough/index.md— scenario intro, then one section per panel group in dashboard-scroll order, each with its screenshot and real code snippet (kept inline, not stripped of the file's own comments) - 2.3 Metrics panels got one shared "automatic" section, no invented snippet
- 2.4 Cross-linked
tools/dashboards/README.md,observability-architecture.md, andlogging-data.md - 2.5 Added to
website/docs/using/index.md's page list
Validation
-
npm run build— clean, and confirmed all 4 images actually made it intobuild/assets/images/with content hashes (not just that the build didn't error) - Page reviewed against the actual screenshots and source code (maintainer delegated this step rather than reviewing it themselves) — see "Post-completion fixes" below
Post-completion fixes (found during the maintainer-delegated review)
Reviewing the rendered page meant actually looking at each screenshot pixel-by-pixel against its claimed content, and checking every factual claim against typescript/src/logger.ts and the dashboard JSON rather than trusting the prose written in Phase 2. Found and fixed five real inaccuracies:
- "60-line test program" — the file is 718 lines. Removed the wrong number.
PEER_SERVICES.INTERNALclaimed to equal'internal'— false.logger.ts:1318showsINTERNAL: service_name— it resolves to the calling service's own name, confirmed visible in the Job Lifecycle screenshot'speer_service=sovdev-test-company-lookup-typescripton the "Job Completed" row. The wrong claim had been copied from a stale comment incompany-lookup.tsitself (fixed separately, see below) without checking it against the real implementation.- Recent Errors section was incomplete — the screenshot shows two error rows (
batchLookupandlookupCompany), but the doc only explained one. Added the missingbatchLookupcode snippet (the batch loop's own error log, which records which item number failed without stopping the batch) and explanation. - "marked as an error span" claimed for the Recent Traces table — unverifiable and likely wrong; that panel's config has no status/error column. Reworded to point to the trace waterfall view instead, where error-marking is a real, confirmed Grafana/Tempo behavior.
exception_typeclaimed to always be"Error"— false for TypeScript.logger.ts:479showsconstructor?.name || name || 'Error'—"Error"is only the fallback, not a hardcoded value. (This matches a discrepancy already noted independently inPLAN-003-spec-scaffolding-cleanup.md.) Fixed to describe the actual fallback behavior.
Also fixed the root cause of finding #2: typescript/test/e2e/company-lookup/company-lookup.ts:104's comment (// INTERNAL is auto-generated with value 'internal') was itself wrong — corrected to // INTERNAL is auto-generated, set to this service's own service_name. Checked Python's equivalent test file and both READMEs for the same claim — none of them repeated it, so this was isolated to the one TypeScript comment.
npm run build re-confirmed clean after every fix.
Acceptance Criteria
- All 9 panels documented, each with its real screenshot (4 section-grouped images, each referenced once per panel section it covers) and the exact producing code
- Reader can understand the whole dashboard from this one page, without needing to open
company-lookup.tsseparately - Docusaurus build clean, images render
- Page linked from
using/index.md
Files to Modify
website/docs/using/dashboard-walkthrough/index.md(new)website/docs/using/dashboard-walkthrough/dashboard-metrics.png,dashboard-peer-service.png,dashboard-job-traces.png,dashboard-errors-transactions.png(new — maintainer captured, I copied into place)website/docs/using/index.md(add page link)