Open-source project
codecentric/spring-boot-admin avatar
codecentric/spring-boot-admin

Spring Boot Admin: an operations dashboard for Spring Boot Actuator endpoints

Admin UI for administration of spring boot applications

12,855 stars3,149 forksJavaApache-2.0

At a glance

What is it?
Spring Boot Admin puts application health, metrics, logs, threads and configuration into one web UI, with a server and a client that register over Spring Cloud discovery. It is a good fit for teams already running Spring Boot, and the wrong tool for polyglot fleets.
Who is it for?
Adopt Spring Boot Admin if your fleet is Spring Boot and you want Actuator data in one UI without building your own dashboard. Do not adopt it if you run non-JVM services alongside Spring Boot, or if you need long-term metric retention and alerting, which belong to a metrics backend.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The gap Spring Boot Admin fills between Actuator and a full observability stack

Spring Boot Actuator already exposes health, metrics, loggers, thread dumps and environment properties. The README states the problem plainly: consuming that data through raw REST endpoints or JMX is cumbersome. Spring Boot Admin is the UI layer on top of it. It is aimed at three groups the README names: development teams diagnosing issues locally, operations teams watching production, and DevOps or SRE teams folding it into an existing observability stack.

The scope is deliberately narrow. It monitors applications that expose Actuator endpoints and that are Spring Boot applications. Nothing in the README suggests it ingests arbitrary JVM processes, Node services or database metrics. If your fleet is not Spring Boot, this project does not address your problem at all.

Server, client and the registration path between them

The repository splits into a server and a client, which is visible in the top-level entries: spring-boot-admin-server, spring-boot-admin-server-ui, spring-boot-admin-client, spring-boot-admin-starter-server, spring-boot-admin-starter-client, spring-boot-admin-server-cloud and spring-boot-admin-server-mcp.

The client runs inside the monitored application. It reads that application's Actuator endpoints and registers with the admin server. The server keeps the registry and serves the UI. The spring-boot-admin-server-cloud module is what lets the server discover clients through Spring Cloud instead of waiting for each client to register directly. The README lists what the UI then shows: health, metrics, logs, thread information, HTTP traces, JMX beans and environment properties.

One design decision is worth calling out. Version compatibility is decoupled. The README states you can monitor applications running on any Spring Boot version independently of the admin server version, and gives the example of monitoring a Spring Boot 2.7 application with the 2.7.y client against a 4.1.x admin server. That matters during a staged Spring Boot upgrade, when old and new services run side by side. The compatibility table still ties the server to a Spring Boot line: Spring Boot 3.Y.Z pairs with 3.X.c, 4.0.Y with 4.0.c, 4.1.Y with 4.1.c.

Adding the starter server and starter client to a project

The README does not print the dependency coordinates, so the entry points are the artifacts named in the repository: spring-boot-admin-starter-server for the admin application and spring-boot-admin-starter-client for each monitored application. The README does not give a dependency example, and nothing here should be treated as one until the reference guide confirms it.

What the README does give verbatim is the snapshot repository block, with snapshot downloads enabled and releases disabled. It is the one piece of configuration copied directly from the project's own README.

xml
<repository>
    <id>sba-snapshot</id>
    <name>Spring Boot Admin Snapshots</name>
    <url>https://maven.pkg.github.com/codecentric/spring-boot-admin</url>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
    <releases>
        <enabled>false</enabled>
    </releases>
</repository>

Beyond that block, the README does not document the annotation that enables the server, the client-side registration properties, or the dependency coordinates. Those live in the reference guide at docs.spring-boot-admin.com/current, which the README links under Getting Help. Treat that guide as the source of truth for the exact configuration keys before you write your application.yml.

What you should see after starting both applications is the monitored service appearing in the admin server's web UI with its health, metrics and log views populated. If it does not appear, the registration path between client and server is the first thing to check, not the UI.

Where Spring Boot Admin stops being the right tool

The sharpest limitation is the one the project states about itself: it monitors Spring Boot applications. A Kubernetes cluster running a Go service, a Python worker and a Postgres instance will not show up here. You would need a second dashboard for those, and then you have two places to look during an incident.

The second limitation is retention. Spring Boot Admin is a live view over Actuator data. The README describes real-time monitoring, log streaming and thread inspection, not a time-series store. Questions like what the p99 latency was three weeks ago, or alert me when error rate crosses a threshold, are not what this UI answers. Pairing it with a metrics backend is the normal arrangement, and the README itself frames the project as something DevOps and SRE teams fold into an observability stack rather than replace.

The third is access. Everything the UI shows comes from Actuator endpoints, which expose environment properties and configuration. That is why the README lists built-in authentication and authorization as a feature, and why the security configuration deserves attention before the server is reachable from anywhere but a developer machine. The README does not document the authentication settings themselves; the reference guide does.

Spring Boot Admin compared with Actuator, Prometheus and Grafana

Against raw Actuator, the difference is interface, not data. Actuator gives you endpoints; Spring Boot Admin gives you a UI over the same endpoints across many applications at once, with a log viewer, thread viewer, HTTP trace view and JMX browser. If you only run one service and you are comfortable with curl, Actuator alone is enough and the admin server is another process to operate.

Against Prometheus and Grafana, the difference is direction. Prometheus scrapes and stores time series so you can query history and alert on it. Grafana renders those queries. Spring Boot Admin holds no history and fires no alerts; it is a current-state console. Teams typically run both, and the README's own framing supports that: Spring Boot Admin is folded into an observability stack, not positioned as a replacement for one.

A related question people ask is how the admin server compares with Eureka. They solve different problems. Eureka is service discovery: it answers where a service instance is. The spring-boot-admin-server-cloud module consumes discovery information so the admin server can find clients, but the admin server's job is presenting Actuator data, not routing traffic.

Versions, release cadence and the cost of staying current

The compatibility table is the upgrade constraint. The server tracks Spring Boot's major and minor versions, so moving the admin server from the 3.X line to the 4.0 or 4.1 line is tied to the Spring Boot version in the admin application itself. The recent releases in the repository show 3.5.10 and 3.5.8 published on 2026-07-17 and 4.1.2 on 2026-07-12, so both lines are receiving builds. The last push to the repository was on 2026-09-21.

Clients are the cheaper side of the upgrade. Because a client can be any Spring Boot version, you can leave a 2.7 service on its 2.7.y client while the server moves ahead. That asymmetry is the main reason the upgrade path is manageable in a mixed fleet.

On licensing, the project is released under Apache-2.0, which permits commercial use and modification. The README also notes that Spring, Spring Boot and Spring Cloud are trademarks of VMware, Inc. That is a trademark statement, not a licence restriction, but it is worth knowing if you plan to redistribute a modified build under your own branding. This is not legal advice; read LICENSE.txt in the repository for the actual terms.

Editorial conclusion

Adopt Spring Boot Admin if your fleet is Spring Boot and you want Actuator data in one UI without building your own dashboard. Do not adopt it if you run non-JVM services alongside Spring Boot, or if you need long-term metric retention and alerting, which belong to a metrics backend. Before rolling it out, verify that your admin server version matches your Spring Boot line in the compatibility table, and read the reference guide for the security configuration you intend to use, because the README does not spell out authentication settings.

Frequently asked questions

How do I access the Spring Boot Admin dashboard?

The dashboard is served by the admin server application, which you build with the spring-boot-admin-starter-server dependency. Once it and at least one client are running, the monitored application appears in the web UI. The README points to the reference guide for the exact configuration.

What is Spring Boot Admin?

It is a web-based dashboard for monitoring and managing Spring Boot applications, showing health, metrics, logs, thread information and configuration. It reads that data from Spring Boot Actuator endpoints.

What is the Spring Boot Admin server?

The server is the component that keeps the registry of monitored applications and serves the UI. It is added through spring-boot-admin-starter-server, and clients register with it, optionally through Spring Cloud discovery via the spring-boot-admin-server-cloud module.

Spring Boot Admin vs Actuator: what is the difference?

Actuator exposes the runtime data as REST endpoints and JMX, which the README calls cumbersome to consume directly. Spring Boot Admin is the UI layer over those same endpoints, aggregating multiple applications into one dashboard with log, thread, HTTP trace and JMX views.

Spring Boot Admin vs Grafana and Prometheus: which should I use?

They are complementary rather than competing. Spring Boot Admin shows current state across Spring Boot applications and stores no history, while Prometheus scrapes and stores time series and Grafana queries them. The README describes Spring Boot Admin as something teams fold into an observability stack.

Official sources

  1. codecentric/spring-boot-admin on GitHub
  2. Issues
  3. License: Apache-2.0
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/codecentric-spring-boot-admin.svg)](https://hysenlabs.com/projects/codecentric-spring-boot-admin)