ateapi: pair ate.workerpool.namespace with ate.workerpool.name - #953
Open
Jeff Luo (JeffLuoo) wants to merge 2 commits into
Open
ateapi: pair ate.workerpool.namespace with ate.workerpool.name#953Jeff Luo (JeffLuoo) wants to merge 2 commits into
Jeff Luo (JeffLuoo) wants to merge 2 commits into
Conversation
Fixes agent-substrate#951. ate.actor.crashes, ate.actor.lifecycle.operation.duration and ate.scheduler.assignment.duration named a WorkerPool by name alone. A WorkerPool is namespaced, so same-named pools in different namespaces merged into one series, and the three could not join the instruments that already carry both keys. ateattr.WorkerPoolAttributes now builds the pair, and omits both keys when no pool is assigned, so a crash before the actor reached a worker no longer reports an empty-string pool. This changes the series identity of the three instruments.
Jeff Luo (JeffLuoo)
force-pushed
the
fix/workerpool-namespace-label
branch
from
August 14, 2026 14:45
44a2259 to
e3c36b6
Compare
Collaborator
Author
Krisztian F (krisztianfekete)
left a comment
Collaborator
There was a problem hiding this comment.
Added some minor comments, otherwise LGTM!
Comment on lines
+189
to
+190
| ass := actor.GetWorkerAssignment() | ||
| attrs = append(attrs, ateattr.WorkerPoolAttributes(ass.GetWorkerNamespace(), ass.GetWorkerPool())...) |
Collaborator
There was a problem hiding this comment.
Doesn't have to be in this PR, can be a follow-up, but suspend and pause reassign actor to the finalized record whose WorkerAssignment was just nil'd, so the pool pair lands only on failed suspends, leaving resume the only one of five operations where it's reliable.
Should be fixable like this:
substrate/cmd/ateapi/internal/controlapi/crash.go
Lines 74 to 76 in 2b3a471
Collaborator
Author
There was a problem hiding this comment.
I can create a new issue to track it later.
WorkerPoolAttributes guarded only the empty name, so a name without a namespace still emitted the pair with an empty namespace -- the same merged series the pair exists to prevent, and one that joins to nothing. Both keys are now set together or not at all. Also separate the two states the docs ran together: an absent pair means the operation has no pool, while the empty-valued pair on ate.scheduler.eligible_workers means no pool matched the constraints.
Jeff Luo (JeffLuoo)
force-pushed
the
fix/workerpool-namespace-label
branch
from
August 14, 2026 18:09
3583fb2 to
1fab0aa
Compare
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.
ate.actor.crashes, ate.actor.lifecycle.operation.duration and ate.scheduler.assignment.duration named a WorkerPool by name alone. A WorkerPool is namespaced, so same-named pools in different namespaces merged into one series, and the three could not join the instruments that already carry both keys.
ateattr.WorkerPoolAttributes now builds the pair, and omits both keys when no pool is assigned, so a crash before the actor reached a worker no longer reports an empty-string pool. This changes the series identity of the three instruments.
Fixes #951