Skip to content

Revamp Observability section #640

Open
abhijaisrivastava15 wants to merge 18 commits into
devfrom
docs/observe-two-rewrite
Open

Revamp Observability section #640
abhijaisrivastava15 wants to merge 18 commits into
devfrom
docs/observe-two-rewrite

Conversation

@abhijaisrivastava15
Copy link
Copy Markdown

@abhijaisrivastava15 abhijaisrivastava15 commented May 7, 2026

Summary

Revamp the Observe / tracing docs to conform to the new Product Docs Playbook (future-agi/internal-docsproduct-docs-playbook/). Every in-scope page is rewritten to its playbook page-type skeleton with snake_case frontmatter, the sidebar is restructured under traceAI, Mermaid concept diagrams are added, and screenshots are reshot from the Error Feed Demo project as WebP.

What changed

Overview & quickstart

  • observe/index.mdx → product-overview shape
  • observe/features/quickstart.mdx → quickstart shape (expected output, "Confirm the trace", "Not seeing data?")

Feature deep-dives (observe/features/) — rewritten to the feature-deep-dive skeleton

  • Trace explorer (llm-tracing), Sessions (session), Users (users), Dashboards (dashboard), Alerts (alerts), Production eval overlays (evals), Voice (voice)

Concepts (tracing/concepts/) — rewritten to the concept skeleton + Mermaid diagrams

  • index, traces, spans, otel, traceai, and a new sessions-and-users page

Manual instrumentation how-tos (observe/features/manual-tracing/, 14 pages) — reshaped to how-to skeletons (Prerequisites / Steps / Verify), CodeGroup tabs, verified API surface.

New reference pages (observe/reference/)

  • trace-filter-syntax, dashboard-metric-definitions, export-formats

New troubleshooting pages (observe/troubleshooting/)

  • no-traces-appearing, missing-attributes, dashboard-numbers-look-wrong, alerts-did-not-fire

Components / infra

  • New Mermaid.astro (renders diagrams from CDN via is:inline), registered in vite-docs-transform.mjs
  • CodeGroup.astro — SSR-hide non-active panels to remove the tab flash (FOUC)
  • navigation.ts — sidebar group renamed Observability → traceAI; added the Concepts (Sessions and Users), Reference, and Troubleshooting groups
  • Screenshots reshot from the Error Feed Demo project and converted to WebP; non-hero images loading="lazy"

Accuracy pass

Every data claim was checked against the SDK source (future-agi/traceAI) and the live platform:

  • Users list corrected to its real 6 columns (cost / evals / guardrails moved to the detail view, where they actually are)
  • FiSpanKindValues lists all 14 SDK values
  • Eval config corrected to "Row limit" / matching rows (dropped the unverified spans_limit / "default 1000"); observation_type and the other filter fields confirmed against live eval tasks
  • Span-nesting diagram rebalanced to a realistic trace shape

Test plan

  • astro build clean (935 pages)
  • audit-links — 0 broken nav / content links
  • All 7 Mermaid diagrams render in the browser (no error diagrams)
  • CodeGroup tabs switch with no flash
  • No banned words / TODO / placeholder in scope

Pending (out of scope for this PR to resolve)

  • Nikhil's GO on the Observability → traceAI nav rename
  • Eng confirm on 4 backend facts not verifiable from code or UI: the eval Row-limit field name + default; user.id.type values (email/phone/uuid/custom); voice providers ("Vapi/Retell only") + voice columns; the full eval status enum

Pages rewritten with text matched to actual platform UI (Error Feed Demo
project, Past 30D filter):

- llm-tracing.mdx: 10 fresh screenshots; removed phantom Spans tab,
  fixed column list, restored Cost in span detail header.
- session.mdx: 6 screenshots; corrected sessions grid columns (was
  9 fictional, real is 6), fixed bulk-action list, rewrote replay
  flow to match the 3-step Create Scenarios dialog.
- users.mdx: 5 screenshots; reduced 14-column claim to real 6,
  removed phantom bulk actions, documented per-user detail page.
- evals.mdx: 2 screenshots; replaced multi-step wizard claim with
  the actual Create Task page (Spans/Traces/Sessions, Live Preview).
- charts.mdx: 2 screenshots; fixed chart count (4 system + per-eval),
  switched description from dropdown to inline-button date range.
- dashboard.mdx: 3 screenshots; documented dashboards list -> click
  to open -> +Add Widget flow.
- alerts.mdx: 2 screenshots; renamed 'Create Alert' to '+ New Alert',
  fixed list columns.

All screenshots are 3024x1614 retina captures via Puppeteer over CDP.
Text written for engineer / PM / non-tech reader.

Also adds the new 'Observability (Updated)' nav group in navigation.ts
pointing at observe-two routes.
Voice Observability page rewritten against the live platform using a
real voice project (Fast Food Order Agent_replay_agent_09_04_26 — Vapi
inbound calls).

5 fresh Puppeteer screenshots captured:

- voice-agent-definitions.png — Agent Definitions list with Voice Inbound
  / Voice Outbound / Chat agents and Vapi provider details.
- voice-create-form.png — Create flow first step (3-step wizard:
  Basic Info -> Configuration -> Behaviour).
- voice-projects-list.png — Tracing project list showing voice projects
  alongside text projects.
- voice-tracing-overview.png — Voice project's call log table with
  voice-specific columns: Call Details, Status, Duration, Avg Latency,
  Turn Count, Tokens.
- voice-call-detail.png — Call detail drawer with transcript, recording
  waveform, speaker filters, and the Call Analytics tab showing Talk
  Ratio, Latency Pipeline, and Cost Breakdown.

Text fixes vs prior version:

- Replaced single-form claim with the actual 3-step wizard.
- Documented the full call-detail drawer (header chips, 4 tabs,
  analytics breakdown) — previous text only mentioned "transcript
  and recording URLs".
- Updated provider list note (Vapi confirmed; Retell + others noted).
- Added voice-specific column descriptions for the Tracing table.
LiveKit sets trace attributes that show up in the Tracing view but are
not yet selectable as Filter or Breakdown options in Dashboard widgets.

Verified the platform fix (PR #124, branch
fix/th-4660-livekit-dashboard-attrs, 4 commits incl. af6b170 by Azain
on 2026-04-28) is not merged into main. Adding the limitation note
back to dashboard.mdx so users know to fall back to Tracing for
LiveKit-specific filtering until the fix lands.

Will be removed once PR #124 merges.
The new observe-two docs (rewrites + verified screenshots from earlier
commits on this branch) become the canonical /docs/observe/* docs.
The old hand-written /docs/observe/* pages are deleted.

Changes:

- Delete src/pages/docs/observe/ (the old pages and old manual-tracing).
- Rename src/pages/docs/observe-two/ -> src/pages/docs/observe/.
- Delete public/images/docs/observe/{1..5}.png, .webp (old assets).
- Rename public/images/docs/observe-two/ -> public/images/docs/observe/
  (preserves all 36 verified screenshots taken on this branch).
- Update every internal reference inside the moved pages from
  /docs/observe-two/ -> /docs/observe/ and /images/docs/observe-two/
  -> /images/docs/observe/ (151 occurrences).
- src/lib/navigation.ts: remove the old "Observability" group; rename
  the "Observability (Updated)" group to "Observability" and swap
  its hrefs from /docs/observe-two/ to /docs/observe/.

Also fixes 3 external broken links that were already pointing at
nonexistent /docs/observe/ routes:

- src/pages/index.astro: /docs/observe/quickstart ->
  /docs/observe/features/quickstart.
- src/pages/docs/simulation/features/voice-replay.mdx (x2):
  /docs/observe/voice/set-up -> /docs/observe/features/voice.
- src/pages/docs/sdk/annotation-queues.mdx:
  /docs/observe/features/annotation-queue-using-sdk ->
  /docs/annotations/sdk/annotation-queue-using-sdk (the actual
  location per navigation.ts).

Concept pages under /docs/tracing/concepts/ are referenced from the
new observe docs and are intentionally left untouched.

Verified: zero remaining "observe-two" references in src/ or public/.
…660)

Incorporates the platform fix for TH-4660 / PR #124 into the
docs. By the time these docs ship, the fix should be merged and live.

Removes the "Known limitation (LiveKit users)" note added in 852fa89
and replaces it with positive guidance:

- Filter section now explicitly says every span attribute visible in
  Tracing is filterable in Dashboard widgets, including LiveKit
  specific fields (room name, participant identity, custom).
- Breakdown section reads similarly — group by any span attribute.

Net effect: docs read as if LiveKit-set attributes Just Work as Filter
and Breakdown options in dashboards.
The Overview page (/docs/observe) was still pointing at the old
/images/observe_dashboard.png (a light-mode screenshot from the
previous docs era). Swapped to /images/docs/observe/llm-tracing-overview.png
— the dark-mode Tracing screenshot captured for the new Tracing page.
Matches the rest of the rewritten observe docs visually.
@JayaSurya-27 JayaSurya-27 added the documentation Improvements or additions to documentation label May 7, 2026
…lign headings

- Zoom-cropped 10 popup/dropdown screenshots so the modal is the subject
  rather than a tiny corner of a full dashboard view
  (date-range, filter, display, bulk-actions across llm-tracing/sessions/users)
- Renamed top-level headings on all 8 observe feature pages to match
  the rest of the docs: 'What is this page?' -> 'About', and
  'When would you use this?' -> 'When to use'

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Comment thread public/images/docs/observe/charts-overview.png Outdated
abhijaisrivastava15 and others added 2 commits May 11, 2026 15:47
- Deleted charts.mdx and its two screenshots
- Removed Charts entry from sidebar navigation
- Removed Charts cards from Observe Overview, Dashboards, Alerts, Evals
- Updated inline copy on evals.mdx and dashboard.mdx to point readers to
  Dashboards instead of Charts

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Resolves 8 conflicts caused by Shibu's SEO sweep on dev (commits 13087d7
and 83bf118) and 740341f link-path fixes. Took dev's versions for all
title/description frontmatter; SEO is a project-wide decision and our
prose content is unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@JayaSurya-27 JayaSurya-27 self-requested a review May 19, 2026 08:49
@abhijaisrivastava15 abhijaisrivastava15 requested a review from nik13 May 19, 2026 13:30
Copy link
Copy Markdown
Contributor

nik13 commented May 21, 2026

HI @abhijaisrivastava15 can you make sure it follows the playbook i shared on the slack group

Copy link
Copy Markdown
Author

Yes, working on this

abhijaisrivastava15 and others added 7 commits May 27, 2026 14:15
Align the Observe/traceAI section with the Product Docs Playbook:
- Rewrite in-scope pages to page-type skeletons + snake_case frontmatter; nav
  restructure (traceAI / Framework integrations / Reference / Troubleshooting).
- Add Mermaid component (is:inline CDN import) so concept diagrams render.
- Fix CodeGroup FOUC: SSR-hide non-active panels before JS initializes.
- Reshoot screenshots from the Error Feed Demo project (synthetic data) as WebP.

Accuracy pass against SDK source (future-agi/traceAI) + the live platform:
- users: Users list has 6 real columns (User ID, First/Last Active, No. of
  Traces, No. of Sessions, Actions); move cost/evals/guardrails to the detail view.
- semantic-conventions: FiSpanKindValues lists all 14 SDK values.
- evals: 'Row limit'/matching rows (drop unverified spans_limit/default-1000);
  observation_type + filter fields confirmed against live eval tasks.

Verified: astro build clean, 0 broken links, no banned words.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The mental-model diagram nested the retriever span under the tool span,
which is an unrealistic trace shape. Rebalance: the agent runs a chain and a
tool; the chain contains the retriever and LLM spans. Same teaching point
(a child span can have children), accurate structure, symmetric layout.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Mermaid outputs a fixed-width block <svg> that sat flush-left. Add
margin-inline:auto so diagrams center within their box site-wide.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add loading="lazy" to every <img> except the first (hero) on each page
  (alerts, users, evals, dashboard, voice, llm-tracing) — 13 images.
- Remove duplicated sentences in trace-filter-syntax and export-formats.
- Fix stale Users hero alt text to match the real column set.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The example trace nested a retriever span under a tool span (tool.check_order_status
-> retriever.order_db) — the same unrealistic shape removed from the Spans diagram,
and it misused the retriever span kind for a DB lookup. Route the retriever under a
generate_reply chain doing genuine knowledge-base retrieval; keeps the nesting the
prose describes, accurate span kinds, consistent with the Spans diagram.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…source

Verified against the platform backend (tracer/models), not just the SDK:
- evals: restore `spans_limit` (default 1000) — the field is real
  (EvalTask.spans_limit = IntegerField(default=1000)); the UI labels it
  'Row limit'. Reverts an over-correction that dropped the field name.
- voice: add Eleven Labs to the supported providers. ProviderChoices and a
  dedicated tracer/utils/eleven_labs.py handler confirm it alongside Vapi and
  Retell; 'only Vapi and Retell' was incomplete.

Also confirmed correct (no change): user.id.type = email/phone/uuid/custom
(UserIdType), eval statuses = pending/running/completed/paused/failed/deleted
(EvalTaskStatus).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Verified the voice/call columns against the frontend source
(agents/helper.jsx baseColumns): Call Details, Status, Duration, Avg Latency,
Turn Count, Tokens, Cost are the visible defaults (Talk Ratio is hidden). The
doc listed the first six correctly but omitted Cost; added it.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Comment thread src/pages/docs/observe/features/evals.mdx Outdated
Comment thread src/pages/docs/observe/index.mdx
Comment thread src/pages/docs/observe/index.mdx Outdated
Comment thread src/pages/docs/observe/index.mdx Outdated
Comment thread src/pages/docs/tracing/concepts/index.mdx Outdated
Comment thread src/pages/docs/tracing/concepts/traces.mdx Outdated
Comment thread src/pages/docs/tracing/concepts/traces.mdx Outdated
Comment thread src/pages/docs/tracing/concepts/spans.mdx
Comment thread src/pages/docs/tracing/concepts/traces.mdx Outdated
Comment thread src/pages/docs/observe/features/quickstart.mdx Outdated
- Overview (index): lead with what Observe does / how it helps; drop the
  'monitoring surface' jargon and the 'groups them' wording.
- Concepts intro: the traceAI SDK is built on OpenTelemetry (not an either/or);
  spans form a trace via a shared trace ID (FutureAGI does not 'group' them);
  remove the 'nothing to observe' filler line.
- Traces: drop 'in FutureAGI' (traces/OpenTelemetry are not ours); frame the
  support-agent example with 'for example'; clarify the tree, that the trace is
  the whole request and the root span is what started it; name 'eval scores' + link.
- Spans: clarify spans are not optional or an alternative to traces.
- Quickstart: rename 'Not seeing data?' to Troubleshooting.
- Evals: retitle to 'Running Evals' (generic).

Still open: trace/session-level eval content (needs @atharva-bhange).
Add a 'What you can evaluate' section to Running Evals covering the three eval
levels — span, trace (with spans.0.* attribute referencing), and session — plus
the context feature for handing an evaluator extra trace/span data. Content
reviewed and approved by Atharva. Closes the last open review comment.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants