Skip to content

feat(ingestion): improve control plane UI for large deployments - #71033

Merged
jose-sequeira merged 2 commits into
masterfrom
jose-sequeira/control-plane-ui-pagination
Jul 15, 2026
Merged

feat(ingestion): improve control plane UI for large deployments#71033
jose-sequeira merged 2 commits into
masterfrom
jose-sequeira/control-plane-ui-pagination

Conversation

@jose-sequeira

Copy link
Copy Markdown
Contributor

Problem

The control plane UI doesn't scale to our larger deployments. Some topics have 1000 partitions, so the lagging partitions table becomes one giant unnavigable list, and the consumer groups table is heading the same way. The consumer debug pod list mixes pods from every ingestion lane into one flat table. And the per-pod debug view (batches, commits) is squeezed into a fixed-height iframe with nested scrollbars instead of the page expanding to fit the data.

Changes

  • Add a reusable client-side search + pagination widget (listView) to the lag section. The consumer groups table filters by group or topic (25 per page), the partitions table filters by partition number (100 per page). The search input survives refreshes, and lag heat bars stay scaled against the full result set so paging doesn't recalibrate the colors.
  • Group consumer debug pods by namespace, one section per ingestion lane, instead of a flat table with a namespace column.
  • Auto-size the pod debug iframe to its content via a ResizeObserver (same origin through the control plane's proxy), so the outer page scrolls naturally instead of nesting scrollbars.
  • In the embedded debug page, let the batches and commits views grow with their content instead of clamping to 100vh (which inside an iframe is the iframe's height, hence the squeeze). The live feed keeps a bounded 600px tail, decoupled from vh so it can't feed back into the iframe auto-sizing.

How did you test this code?

This is browser-only vanilla JS with no test harness, so I verified it by extracting the inline script and running node --check for syntax, plus a DOM-stub unit test exercising listView end to end (paging through 1000 partitions, substring search, empty states, page clamping when the row set shrinks, filter reset). I was not able to run the UI against a live control plane in this session.

Automatic notifications

  • Publish to changelog?
  • Alert Sales and Marketing teams?

Docs update

Internal debug tooling, no user-facing docs affected.

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Authored with Claude Code. José described the three pain points (huge partition lists, lanes mixed together, the batches view fitting its container instead of the container expanding) and I (Claude) implemented them. Notable decisions: heat bars scale against the full dataset rather than the visible page; the iframe auto-size measures body.scrollHeight rather than documentElement.scrollHeight because the latter is floored at the iframe's own height and would let the frame grow but never shrink; the live feed got a fixed pixel height instead of growing unbounded, since a vh-based clamp inside an auto-sizing iframe is a feedback loop.

Add search and pagination to the consumer groups and partitions tables
so topics with 1000 partitions stay navigable. Group consumer debug pods
by namespace, one section per ingestion lane. Auto-size the pod debug
iframe to its content so the page scrolls instead of nesting scrollbars.
@jose-sequeira jose-sequeira self-assigned this Jul 15, 2026
@jose-sequeira
jose-sequeira marked this pull request as ready for review July 15, 2026 11:26
@greptile-apps

greptile-apps Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Reviews (1): Last reviewed commit: "feat(ingestion): improve control plane U..." | Re-trigger Greptile

Comment thread rust/ingestion-control-plane/src/ui/index.html
@jose-sequeira
jose-sequeira enabled auto-merge (squash) July 15, 2026 11:38
@trunk-io

trunk-io Bot commented Jul 15, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@jose-sequeira
jose-sequeira merged commit cbff460 into master Jul 15, 2026
181 of 183 checks passed
@jose-sequeira
jose-sequeira deleted the jose-sequeira/control-plane-ui-pagination branch July 15, 2026 11:46
@deployment-status-posthog

deployment-status-posthog Bot commented Jul 15, 2026

Copy link
Copy Markdown

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-07-15 12:19 UTC Run
prod-us ✅ Deployed 2026-07-15 12:43 UTC Run
prod-eu ✅ Deployed 2026-07-15 12:45 UTC Run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants