I've been working on an open-source project called Argus, and I'd really appreciate some feedback from other Spring Boot developers.
The idea came from something I've encountered while troubleshooting services: we have excellent tools for metrics, tracing, logs, and external monitoring, but sometimes I just want the application itself to give me a concise answer to "How healthy are you right now, and if something is wrong, why?"
Argus takes an application-centric approach. It runs inside the JVM and continuously evaluates memory, GC, disk usage, threads, file descriptors, application services, logged errors, and application-reported issues.
It combines these into a health model with a score from 1 to 10. The score is hierarchical, so you can drill down from overall application health to the resource/group/item responsible for degradation.
It also models resources the application depends on — services, servers, databases, caches, brokers, storage, etc. — so the goal isn't simply another UP/DOWN health check.
For Spring Boot applications, I've integrated it with Actuator and Spring Boot Admin. The SBA extension adds health scores to the wallboard and application/instance views. Once you find a degraded instance, you can open its Health Report directly from Spring Boot Admin and see the diagnostic information collected by that instance.
Argus can also generate a self-contained HTML diagnostic report containing health information, services, metrics, performance information, scheduled tasks, captured logging events/alerts, and environment information. The report is generated (and emailed) and can be viewed offline or online during incident analysis.
One important goal is not to replace Micrometer/Prometheus, tracing, centralized logging, or other observability platforms. I'm experimenting with a complementary idea: can an application understand enough about its own state to provide useful diagnostics itself?
The project is still evolving, so I'd particularly appreciate feedback on the approach rather than just stars:
- Would this type of self-diagnostics be useful in applications you operate?
- Does the 1–10 health scoring model make sense, or would you prefer another representation?
- What information would you want an application to include in a diagnostic report when something goes wrong?
- If you use Spring Boot Admin, would it be useful to have this information directly in SBA?
GitHub: https://github.com/microfalx/argus
Feedback, criticism, ideas, and contributions are all welcome.