Skip to content

Hard to see what WaitFor is really waiting on #5557

@afscrome

Description

@afscrome

Is there an existing issue for this?

  • I have searched the existing issues

Is your feature request related to a problem? Please describe the problem.

With the WaitFor implementation in main, it's hard to see what a resource is actually waiting on. Logs are logged when a resource starts waiting on a resource, but nothing gets logged once that wait is complete.

In the following example, it looks like we're waiting for both sql and migrator, however we're actually only waiting on migrator as sql has started up.
image

Similarly with a longer chain of dependencies, You may see that you're waiting on B, but B is in turn waitign on C (which could in turn be waiting on D).

Describe the solution you'd like

A quick solution is to include a log entry when a wait is complete

2024-09-05T19:16:18 Waiting for resource 'sql' to enter the 'Running' state.
2024-09-05T19:16:19 Waiting for resource 'migrator' to complete.
2024-09-05T19:16:20 Finished waiting for resource 'sql' to enter the 'Running' state.

That would at least allow you to work out what is outstanding.

A slightly better solution would be if there was an easy way to see what was outstanding from a single place, without having to calculate across multiple log entries. Without adding additional UI, there's limited options with the append only logs - you could add a log along the lines of Waiting on 2/3 dependencies - 'migrator' and 'foo' remain log each time a dependency is removed. Even better is if this could include transitive dependencies, but that likely gets messy quickly.

The ideal would be some kind of UI on the resource that could present the dependencies as some kind of tree which you could follow to see how far the dependencies have gotten.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-app-modelIssues pertaining to the APIs in Aspire.Hosting, e.g. DistributedApplication

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions