The actuator endpoints and their extensions can be exposed / enabled in the appropriate discoverers. This currently is not logged anywhere. To see if an endpoint is exposed as an MVC endpoint one can look into the Info Logging of WebMvcEndpointHandlerMapping. However, this does not display the not exposed and the reason for the not exposed actuators.
It might be interesting to create a report when the application is in debug mode (same way as the CONDITIONS EVALUATION REPORT is done)
Comment From: superxp1412
I'd like to work on this issue. Could you please give me more reference about how "CONDITIONS EVALUATION REPORT" is done? @filiphr Thank you.
Comment From: snicoll
@superxp1412 thanks!
The starting point is ConditionEvaluationReport where we store condition evaluations as they are processed (see SpringBootCondition). I haven't given much thoughts to it but what would be ideal IMO is a separate section that would list all the available endpoints on the classpath (endpoint id as the key) and specify their respective status. For clarity, we may break down "enabled" ("exposed"?) endpoints and disabled endpoints or we may list them with additional attributes.
If we want to pursue that route, a new record method on ConditionEvaluationReport might be in order. We did this in the part to record auto-configuration classes that have been excluded, see this commit for more details.
Once the report has the data, you'd need to update the endpoint to display that in /actuator/conditions and ConditionEvaluationReportLoggingListener.
If you want to chat about other implementation details, please join un on Gitter and we can assist.
Comment From: superxp1412
Hi @snicoll ,
After the code investigation, I've already located the place to do the implementation.
But I encountered a challenge to get the status of Actuator Endpoints. I found WebEndpointDiscoverer in actuator module can get the endpoints information. But actuator module depends on autoconfigure module which encompasses ConditionEvaluationReportMessage. (We cannot import it properly)
I wonder if there's any proper way to get the status of Actuator Endpoints.
Or maybe status of Actuator Endpoints should not be implemented together with ConditionEvaluationReport.
Looking forward to your suggestions.
Comment From: snicoll
@superxp1412 I really don't know and I'd have to spent a good chunk of time to figure it out. We've removed the ideal for contribution in the meantime as we think it requires a deep knowledge of the internals (and therefore isn't really ideal for external contribution).
If you can share what you have so far in a branch on your fork, we'll have a look for sure and report here. Thanks a lot for your efforts so far!
Comment From: superxp1412
Suggestion: Implement another independent report in spring-boot-actuator module other than realize it inside the ConditionEvaluationReport.
Because the spring-boot-actuator is an optional module which depends on spring-boot-autoconfigure. And the endpoint status report can be designed functional independent from ConditionEvaluationReport.
I'd like to follow it up when the internal discussion & decision of the design have been made.
Comment From: philwebb
We're cleaning out the issue tracker and closing issues that we've not seen much demand to fix. Feel free to comment with additional justifications if you feel that this one should not have been closed.