-
Notifications
You must be signed in to change notification settings - Fork 956
Description
Unlike Spring Boot’s standard configuration (
WebFluxEndpointManagementContextConfiguration
), which uses bothWebEndpointsSupplier
andControllerEndpointsSupplier
to discover endpoints, Armeria (ArmeriaSpringActuatorAutoConfiguration.configureExposableWebEndpoint
) only usesWebEndpointsSupplier
. As a result,@ControllerEndpoint
s — such as Swagger and OpenAPI — are not included and do not appear in/actuator
.
Discussed in #6246
Originally posted by Vadoniy May 20, 2025
When using the com.linecorp.armeria:armeria-spring-boot3-webflux-starter the Swagger and OpenAPI specs stop appearing in our company's services list. This is because the GET /actuator
response no longer includes the corresponding endpoints.
After investigating the cause, it turned out that the issue is related to Thrift integration through Armeria. The logs show that the HTTP server is started by Armeria, not Spring Boot:
[oss-http-*:8080] com.linecorp.armeria.server.Server : Serving HTTP at /[0:0:0:0:0:0:0:0%0]:8080 - http://127.0.0.1:8080/
In practice, this means that GET /actuator
is handled at runtime by ArmeriaSpringActuatorAutoConfiguration.configureExposableWebEndpoint
. Unlike Spring Boot’s standard configuration (WebFluxEndpointManagementContextConfiguration
), which uses both WebEndpointsSupplier
and ControllerEndpointsSupplier
to discover endpoints, Armeria only uses WebEndpointsSupplier
. As a result, @ControllerEndpoint
s — such as Swagger and OpenAPI — are not included and do not appear in /actuator
.
It seems that alfa-armeria-thrift-starter
hooks deeply into the networking layer via Netty, bypassing Spring Boot Actuator’s standard behavior.
Is there any known or recommended solution for this issue?