eschutho opened a new pull request, #42816:
URL: https://github.com/apache/superset/pull/42816

   ### SUMMARY
   
   Follow-up to #42624, logging-only. Enriches the report readiness/capture log 
lines with a structured per-state chart-holder breakdown, proven out in 
production while diagnosing blank-report incidents (the same investigations 
that produced #42624).
   
   What's added:
   
   - **`ChartHolderDiagnostics`** (`report_execution.py`): structured counts 
separating *capture readiness* from *semantic success* — 
`rendered/empty/error/virtualized/unready` per capture, with 
`TERMINAL_CHART_HOLDER_STATES` and an explicit `CHART_HOLDER_SEMANTIC_POLICY = 
deliver_terminal_errors_with_warning`.
   - **Enriched `report_readiness_poll` / `_ready` / `_terminal`** lines on 
both the Playwright and Selenium paths: the existing mounted/ready counts gain 
the full per-state breakdown and `semantic_success`.
   - **`report_readiness_tile`**: per-tile readiness diagnostics during tiled 
capture. Each holder's strongest observed terminal state is aggregated across 
tiles, so the final ready line reports true whole-dashboard counts even though 
virtualization means any single viewport only sees a fraction of the charts.
   - **`report_semantic_status`**: a WARNING emitted whenever capture readiness 
is satisfied but the artifact contains terminal chart *errors* — delivery is 
not semantic completeness, and this makes that distinction operator-visible and 
alertable, per tile and per capture.
   - Restores the explicit zero-holder diagnostic on the no-context (thumbnail) 
path.
   
   Example of what the tile lines look like in production (52-chart dashboard, 
6 tiles — note `virtualized_holders` showing why per-viewport counts can't be 
summed naively):
   
   ```
   report_readiness_tile ... expected_holders=52 mounted_holders=52 
ready_holders=52 rendered_holders=10 empty_holders=0 error_holders=0 
virtualized_holders=42 unready_holders=0 semantic_success=True tile=1/6 ...
   report_readiness_ready ... expected_holders=52 mounted_holders=52 
ready_holders=52 rendered_holders=52 ... semantic_success=True
   ```
   
   **No behavior changes**: readiness predicates, budgets, and delivery are 
untouched; this only changes what gets logged. Log call style stays lazy 
`%`-formatting throughout.
   
   ### TESTING INSTRUCTIONS
   
   - Unit tests pin the `ChartHolderDiagnostics` counts (terminal-error 
separation, unready counting, zero-holder non-success) and the enriched line 
formats on the poll/ready/terminal/tile paths.
   - Full `tests/unit_tests/utils/ + commands/report/ + tasks/` scope: 1345 
passing; ruff and mypy clean.
   
   ### ADDITIONAL INFORMATION
   
   - [x] Has associated issue: follow-up to #42624
   - [ ] Required feature flags:
   - [ ] Changes UI
   - [ ] Includes DB Migration
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to