Replies: 4 comments 14 replies
-
Beta Was this translation helpful? Give feedback.
-
|
@PG1204 Is it possible to add an architecture diagram to illustrate the main design? |
Beta Was this translation helpful? Give feedback.
-
|
Thanks. @kunwp1 Can you chime in to provide input? |
Beta Was this translation helpful? Give feedback.
-
|
I really like the heatmap idea and also +1 to @Yicong-Huang's idea to make it toggleable. Worth landing the UI first on the codebase. My concern is the rule-based hints. Can you be more specific on how the six rules were chosen or which one wins when several rules fire on the same op? My suggestion would be to land the heatmap first and handle the hints as a separate issue, where we can reason why each rule exists, where its thresholds come from, and which hint to show when several fire at once. |
Beta Was this translation helpful? Give feedback.


Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Following up on @Yicong-Huang's suggestion on PR #5098. This post documents the entire profiler implementation from the hackathon submission, at the level of detail needed to decide what to land and in what order.
What it does
A feedback layer over Texera's existing per-operator runtime stats. While a workflow runs:
Design principle: read-only consumer of data we already produce. No new event types, no engine changes, no new HTTP endpoints in the critical path. Removing the profiler touches zero backend code paths.
Architecture
OperatorStatisticsUpdateEvent (existing)
│
▼
WorkflowStatusService (existing)
│
▼
ProfilerService ── reactive state (enabled, view, threshold, scores, baseline)
│
├── profiler-config (round-trip via WorkflowContent.profilerConfig)
├── profiler-hints (pure 6-rule engine)
├── profiler-delta (baseline diffing)
├── profiler-history (server-fetched past runs → BaselineReport)
├── profiler-report (MD + JSON export)
└── profiler-suggestions (optional ghost overlays)
│
▼
joint-ui (canvas color) · menu (controls) · property-panel (metrics + hints)
Components
Test totals on the branch: ~250 Vitest specs (all green), tsc --noEmit clean, ScalaTest covers the scoring helper.
Things I'd like input on
Proposed merge order
7 independent PRs, each useful on its own:
Heatmap foundation: ProfilerService + config + canvas coloring + Execution-Settings controls + legend. (~1.2k LOC w/ tests)
Hints + property-panel metrics + threshold slider.
UX polish: displayName threading, hover tooltip, MD/JSON report download.
Per-workflow config round-trip.
Compare-across-runs + delta heatmap.
(optional) Ghost suggestions.
(optional, backend) ProfilerScoring.scala.
Agent integration -> separate RFC once 1–5 are in.
Happy to open PR 1 once there's directional agreement here. Specific yes/no on "Things I'd like input on" would unblock the most.
Beta Was this translation helpful? Give feedback.
All reactions