Repository navigation
feat(dashboard): serve run inventory from Redis at /api/v1/inspect/inventory - #388
Merged
Merged
Conversation
droot
reviewed
Oct 29, 2026
| router = APIRouter(tags=["inspection"]) | ||
|
|
||
|
|
||
| @router.get("/api/v1/inspect/inventory") |
Collaborator
There was a problem hiding this comment.
I am curious why doesn't this API maps to the shapes we know:
/api/v1/sessions ?
/api/v1/runs ?
/api/v1/jobs ?
/api/v1/models ?
Collaborator
Author
There was a problem hiding this comment.
I have later PR's that will add the routes like this from the big dashboard PR's here is the list:
- GET /api/v1/inspect/inventory
- GET /api/v1/inspect/runs
- GET /api/v1/inspect/runs/{run_id}/summary
- GET /api/v1/inspect/runs/{run_id}/steps
- GET /api/v1/inspect/runs/{run_id}/commands
- GET /api/v1/inspect/sessions/{session_id}/summary
- GET /api/v1/inspect/activity
- GET /api/v1/inspect/query
- GET /api/v1/inspect/accelerators
- GET /api/v1/inspect/logs
Collaborator
Author
There was a problem hiding this comment.
I'm not particularly strong on any of the names so we can change them
Collaborator
There was a problem hiding this comment.
Lets go with this. since they are all routed to "/api/v1/inspect" so independent from the post training api, probably fine to keep it in api-server for simplicity of deployment.
…ventory The API server serves a read-only list of runs at /api/v1/inspect/inventory, built from the model and session records in Redis. A run is active while the client has a live session and ended otherwise. A Redis failure or an unreadable record becomes an entry in errors. Kubernetes data comes in a separate change.
ShubyM
force-pushed
the
inspect/1-inventory
branch
from
October 29, 2026 18:02
2566800 to
bb05e64
Compare
droot
approved these changes
Oct 29, 2026
2 of 9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
There is no single place to see which runs exist and whether they are still going. This PR adds a read-only endpoint for that on the API server. It is one of two independent PRs split from #383. The other one is #389.
What changed
GET /api/v1/inspect/inventory. It lists each run with its model, recipe, and lifecycle. A run isactivewhile a session is live andendedotherwise.StateStore.scan_values.Data sources
runs[]: model, recipe, settings,client_status, created and completed times,session_idsopen_rl:model_meta:<run>, written by the API serverStateStore.scan_valuesruns[].lifecycleopen_rl:session:<id>, present while a session heartbeatsStateStore.scan_valueserrorsLater PRs add one source each: Kubernetes pods, nodes, Workloads and ResourceSlices (#389), Prometheus for GPU and vLLM metrics, Cloud Logging for logs, and the shared volume for client metrics.
Scope
The inspect routes live in
server/dashboardand share the API server's process, Redis, and service account. Every API server exposes them. A small follow-up wires in #389.Verification
make testandmake lintpass.