codecentric / codecentric/spring-boot-admin
Bug / Feature: Improve status reporting
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 12.9k
- Forks
- 3.1k
- Avg merge
- 19h 1m
- Merged PRs (30d)
- 61
Description
See from this comment for further details https://github.com/codecentric/spring-boot-admin/issues/4389#issuecomment-3312922644.
/cc @SteKoe
Question
In case of not graceful shutdowns, SBA may report the previous status since it doesn't realize that a restart happened.
For example, an instance is reported up since X while it's actually up since Y with Y < X.
Enhancement
As part of the status info, keep track of the process uptime and use it between one refresh and the next one to detect if the current available information are stale.
Given that the process uptime increases monotonically, given 2 times T1 and T2, it will always be that T1 < T2 (with T2 = T1 + refresh interval).
The only case where this inequality is false is on restarts, since the process uptime resets and it can therefore be used exactly to detect these cases.
Changes in the PID may also be an option, but that's less stable (i.e.: the PID may be missing if info and env endpoints are disabled) and less precise (i.e.: there is no way to tell since when the app was then really up).
If the process uptime is not available (i.e.: the process info contributor is disabled), the old logic should apply.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked issue comment and the status refresh path. Check how process uptime is provided by the process info contributor and how refreshes handle stale status; done means restarts are detected through uptime when available, while the existing logic remains when it is not.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring-boot
- Domain
- backend, observability
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100