Skip to content

[uss_qualifier/reports] Add timing report#1336

Merged
BenjaminPelletier merged 5 commits intointeruss:mainfrom
BenjaminPelletier:timing-report
Feb 13, 2026
Merged

[uss_qualifier/reports] Add timing report#1336
BenjaminPelletier merged 5 commits intointeruss:mainfrom
BenjaminPelletier:timing-report

Conversation

@BenjaminPelletier
Copy link
Copy Markdown
Member

This PR adds a new timing report artifact to uss_qualifier which reports where and how time is spent during the test.

It also cleans up how end_time is populated in scenario reports as previously it was often being accidentally omitted. Now, all different places it was populated have been replaced by population when the report is retrieved. This changes the timestamp from what it would have been by tiny fractions of a second, but I believe that is worthwhile for the reduced complexity and increased likelihood of consistency.

<td>{{ format_time(row.total_time) }}</td>
<td>{{ format_time(row.average_time) }}</td>
<td>{{ round(row.query_fraction * 100, 1) }}%</td>
<td>{{ round(row.delay_fraction * 100, 1) }}%</td>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since populating delay is a TODO, I would suggest to not display this value in the report.

scenario=scenario_type,
total_time=summary.total_time,
average_time=summary.total_time / summary.instances,
query_fraction=summary.query_time.total_seconds()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the u-space report, HeavyConcurrentTraffic represents 178% of queries. See below.
If my understanding is correct, I would expect the sum of all fractions to be 100%.

Image

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, yes, the queries in that case constitute 175.8% of the time the scenario takes because there are multiple queries happening at once (interestingly, I would have expected an average concurrency of more than 1.758). The current algorithm naively just adds up the time each query takes and divides that by total scenario time which is how this number gets bigger than 1. I've added some additional context information that should hopefully help a reader understand this interpretation.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good! Thank you

Comment thread monitoring/uss_qualifier/reports/templates/timing/report.html Outdated
@BenjaminPelletier BenjaminPelletier merged commit 65e179b into interuss:main Feb 13, 2026
38 of 39 checks passed
@BenjaminPelletier BenjaminPelletier deleted the timing-report branch February 13, 2026 20:49
github-actions Bot added a commit that referenced this pull request Feb 13, 2026
Co-authored-by: Michael Barroco <michael@orbitalize.com> 65e179b

class _GenerationError(RuntimeError):
def __init__(self, msg: str):
super().__init__(msg)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why having the __init__ constructor ? It doesn't seems to add anything

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.

3 participants