Arbiter has no health endpoint and no metrics. There is no spring-boot-starter-actuator dependency in any of its three modules (arbiter-domain, arbiter-platform, arbiter-webapp), so nothing outside the application can distinguish "serving its login page" from "healthy".
This surfaced while building the Philterd Appliance console, which shows a status tile per product. Arbiter's tile reports "running" purely because its root path answers, even when its MongoDB or OpenSearch connection is broken.
Philter 4.0 already made this change and is a direct reference: management.endpoints.web.exposure.include=health,prometheus in application.properties, plus /actuator/** in the permitAll() matcher list in SecurityConfig.
Health and metrics endpoints are needed by anyone running Arbiter in production, not only by the appliance.
Acceptance Criteria
Arbiter has no health endpoint and no metrics. There is no
spring-boot-starter-actuatordependency in any of its three modules (arbiter-domain,arbiter-platform,arbiter-webapp), so nothing outside the application can distinguish "serving its login page" from "healthy".This surfaced while building the Philterd Appliance console, which shows a status tile per product. Arbiter's tile reports "running" purely because its root path answers, even when its MongoDB or OpenSearch connection is broken.
Philter 4.0 already made this change and is a direct reference:
management.endpoints.web.exposure.include=health,prometheusinapplication.properties, plus/actuator/**in thepermitAll()matcher list inSecurityConfig.Health and metrics endpoints are needed by anyone running Arbiter in production, not only by the appliance.
Acceptance Criteria
spring-boot-starter-actuatoris a dependency ofarbiter-webapp/actuator/healthreturns 200 with{"status":"UP"}when the application is serving/actuator/healthreportsDOWNwhen MongoDB is unreachable/actuator/healthreportsDOWNwhen OpenSearch is unreachable/actuator/prometheusreturns metrics in Prometheus text formathealthandprometheusare exposed; no other actuator endpoint is reachable