fix: emit the service status metric immediately on Start - #152
Merged
Conversation
Previously Start() was a no-op, so the first metric only appeared after the first CallInterval tick of Status(). Have Start() reuse the same status check as Status() so the metric is available right away. Update runServiceCheck to stop asserting Start() always succeeds: a deviating state present from the beginning now fails at RunAction() itself instead of only showing up once Status() starts polling.
|
Claude finished @joshiste's task in 5m 15s —— View job Review: fix: emit the service status metric immediately on Start
No bugs, security, or concurrency issues found. I verified the change against the actual
No concerns to flag on code quality, performance, or typos either — the change is small, correctly scoped, and well covered by the updated e2e test. |
joshiste
enabled auto-merge (squash)
August 4, 2026 13:37
|
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.



Summary
Start()was a no-op, so the firststackstate_service_statusmetric only appeared after the firstStatus()poll (oneCallInterval, i.e. 1s, after the check started).Start()now reuses the same status-check logic asStatus(), so the first metric is emitted immediately when the check starts.runServiceCheckhelper: it previously assertedRunAction()always succeeds and only expected failures fromWait(). A deviating state present from the very beginning now fails atRunAction()itself, sinceStart()runs the check immediately.Test plan
go build ./...go test ./extservice/...go test -run TestWithMinikube ./e2e/...(all 7 cases pass, including fail-early-disabled and at-least-once)