Skip to content

Armeria and OpenApi when using armeria-spring-boot3-webflux-starter #6249

@trustin

Description

@trustin

Unlike Spring Boot’s standard configuration (WebFluxEndpointManagementContextConfiguration), which uses both WebEndpointsSupplier and ControllerEndpointsSupplier to discover endpoints, Armeria (ArmeriaSpringActuatorAutoConfiguration.configureExposableWebEndpoint) only uses WebEndpointsSupplier. As a result, @ControllerEndpoints — 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, @ControllerEndpoints — 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?

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions