Skip to content

Surface incomplete scatter-gather results and server query timeouts - #3107

Open
ramonsmits wants to merge 3 commits into
ramon/audit-new-row-animationfrom
ramon/audit-incomplete-results
Open

Surface incomplete scatter-gather results and server query timeouts#3107
ramonsmits wants to merge 3 commits into
ramon/audit-new-row-animationfrom
ramon/audit-incomplete-results

Conversation

@ramonsmits

@ramonsmits ramonsmits commented Sep 4, 2026

Copy link
Copy Markdown
Member

Top of the audit query series, stacked on:

ServiceControl (Particular/ServiceControl#5848) now tells clients when a composite result is incomplete: a partial answer stays HTTP 200 with the data that did arrive plus a X-Particular-Incomplete-Results header naming every instance that contributed nothing (instanceId:timeout|unavailable|error), and a query nobody answered becomes a 504. This PR makes All Messages read both:

  • A partial page keeps its data and shows a warning naming each missing instance and why: Partial results. No data from audit-2.internal:44444 (timed out), audit-3.internal:44444 (unreachable). The header carries ServiceControl's instance id, which is the base64-encoded API URL; the warning decodes it to host and port and keeps the full URL as a tooltip
  • The results line presents the total as a floor while results are partial: Showing 3 of at least 87,421,337 result(s)
  • A 504 gets a precise "exceeded the ServiceControl query time limit" message (with the existing one-click narrower-range escape hatches) instead of the generic failure text
Partial results warning in All Messages

The header parser is shared (incompleteResults.ts) so the conversation and saga views can adopt it next.

@ramonsmits ramonsmits added this to the 2.11.0 milestone Sep 4, 2026
@jpalac jpalac modified the milestones: 2.11.0, 2.12.0 Sep 6, 2026
@ramonsmits
ramonsmits force-pushed the ramon/audit-incomplete-results branch from a256771 to 2e8998c Compare September 7, 2026 10:13
@ramonsmits
ramonsmits force-pushed the ramon/audit-incomplete-results branch from 2e8998c to 5f9b0df Compare September 7, 2026 10:31
@ramonsmits
ramonsmits changed the base branch from ramon/audit-super-date-picker to ramon/audit-timestamps September 7, 2026 10:32
@ramonsmits ramonsmits added the Improvement Improvement label Sep 7, 2026
@ramonsmits
ramonsmits force-pushed the ramon/audit-incomplete-results branch from 5f9b0df to e3e7821 Compare September 7, 2026 12:06
@ramonsmits
ramonsmits changed the base branch from ramon/audit-timestamps to ramon/audit-new-row-animation September 7, 2026 12:08
@ramonsmits
ramonsmits force-pushed the ramon/audit-incomplete-results branch from e3e7821 to 9b96ec7 Compare September 7, 2026 12:40
ServiceControl (Particular/ServiceControl#5848) now answers a partial
composite with the X-Particular-Incomplete-Results header naming every
instance whose data is missing (instanceId:timeout|unavailable|error),
and a fully timed-out query with a 504. All Messages now reads both: a
partial page keeps its data but shows a 'Partial results' warning naming
each missing instance and its reason, and a 504 gets a precise 'exceeded
the ServiceControl query time limit' message instead of the generic
failure text. The header parser is shared so the conversation and saga
views can adopt it next.
ServiceControl identifies an audit instance by its API URL, lower-cased
and base64 encoded with the URL-safe alphabet ('-', '_' and '.' for
'+', '/' and '='), and that is what the X-Particular-Incomplete-Results
header carries. The partial-results warning printed the id as-is, so a
reader saw "No data from aHR0cDovL2xvY2FsaG9zdDo0NDQ0NC9hcGkv (timed out)".

The id is now decoded and shown as host and port (default port
omitted), with the full API URL as tooltip: "No data from
localhost:44444 (timed out)". An id that is not a base64 http(s) URL is
shown unchanged, so nothing depends on the encoding staying that way.
Leaving the view clears the rows; the partial-results warning and the
time-limit flag described those rows.
@ramonsmits
ramonsmits force-pushed the ramon/audit-incomplete-results branch from 14dce2d to 4cce93d Compare September 7, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Improvement Improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants