There are a number of reasons why Apps Manager may not be able to determine if your application has the Spring Boot Actuator enabled. Please try the following steps to help Apps Manager to be able to detect your app's actuator endpoints.
1. Your browser is blocking the request because it does not trust the TLS certificate being used by your app. Apps Manager will send a probe request to your app to determine if it's using Spring Boot Actuator. This probe happens in your browser, so your browser can block the request. Please try navigating to your application in the browser, you can click the "View App" link in Apps Manager. If you are presented with a warning about the TLS certificate or your browser not trusting the site, please click the button that your browser presents to permanently trust the site. After doing this, go back to Apps Manager and refresh the page.
2. The user should have a developer role, on an admin role the statistics won't be displayed.
3. Double check that your application actually has Spring Boot Actuators enabled. You can do this by reviewing your 'pom.xml
' or build.gradle
file. Please also try doing a clean build and redeploying your application.
4. Double check that your application meets the prerequisites listed in the documentation.
5. If your platform uses self-signed certificates, you may need to set the following property in your application properties file so that Spring Boot Actuators can communicate with UAA: 'management.cloudfoundry.skip-ssl-validation=true
'
6. Make sure that your application does not put any additional authentication or authorization requirements on the /cloudfoundryapplication
endpoint. This can cause Apps Manager's probe request to fail with a HTTP 401 or 403 error. A couple examples where this might happen: if you're adding Spring Security configuration to your app or if you're adding CORS filters.
7. If your application only has an internal route mapped, the browser will be unable to communicate with the Spring Boot Actuator endpoints. In this case, consider mapping an external route and changing the application's request processing code to only accept requests that have the internal route in the HOST header or have a path that starts with `/cloudfoundryapplication
`
8. If global ObjectMapper
serialization properties under `spring.jackson
` are changed from their defaults in the application, this can change the format of responses from the Spring Boot Actuator endpoint such that Apps Manager will not be able to parse them. See this issue for more information: https://github.com/spring-projects/spring-boot/issues/12951
9. If a custom servlet context path has been configured, the Spring Boot Actuator endpoints will no longer be at the `/cloudfoundryapplication
` path. A workaround for this issue is documented here: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#custom-context-path
10. For PAS versions less than 2.4.13, 2.5.9, or 2.6.4 in the same minor series, or PAS 2.3 or earlier, Apps Manager only checks the application mappings context for Spring Boot Actuator endpoints. If the endpoints are under another mappings context (such as application-1
), Apps Manager will not show Spring Boot Actuator information. To resolve this issue, upgrade to at least one of the PAS patch versions listed above.
11. If a route service is bound to the routes that are bound to the app, Apps Manager will not be able to reach the app's actuator endpoints unless the route service can be configured to forward all requests with paths starting with /cloudfoundryapplication to the app.
12. In PAS versions less than 2.6.15, 2.7.9, or 2.8.3 in the same minor series, and PAS 2.5 or earlier, Apps Manager supports only Spring Boot 2.1.x and earlier. Apps built with Spring Boot 2.2.0 or later provide actuator info in a non-backward-compatible format, and this can cause certain elements such as mappings not to appear in Apps Manager. To resolve this issue, upgrade to at least one of the PAS patch versions listed above.
13. For actuator endpoints to provide data in the documented format, it is necessary for the application to use the Jackson JSON library. If the application is using a different JSON library, Apps Manager will not be able to parse some of the actuator endpoint responses. The Spring Boot team is considering supporting the GSON JSON library as well; see this discussion for more information: https://github.com/spring-projects/spring-boot/issues/13766
If you have checked the items above and are still seeing errors. Please open the Developer Tools panel in your browser. Navigate to the "Network" tab of the Developer Tools panel and refresh your browser.
The output will show you all the requests being sent by your browser. When you navigate to your application in Apps Manager, you should see a request sent to /cloudfoundryapplication
. Look to see the status of that application. If it shows up in RED, that indicates the request failed. You can examine the HTTP Status & Response for more details.
In addition to checking the Network tab, please also check the Javascript Console in your browser. This will show any potential application errors. Again, these will show up in RED in the Javascript Console.
When you are unable to resolve the issue and need further assistance please open a ticket with Pivotal Support and include screenshots of the Network and Javascript Console tabs as directed in the previous two paragraphs.