Spring Boot Actuator tabs not showing in Apps Manager
search cancel

Spring Boot Actuator tabs not showing in Apps Manager

book

Article ID: 297855

calendar_today

Updated On:

Products

VMware Tanzu Application Service for VMs

Issue/Introduction

Symptoms:
When you are in Apps Manager and viewing a Spring Boot application with Actuator enabled, you should see various additional information about the app, including:
  • Two extra tabs: Trace and Thread,
  • Buildpack and commit information in the page header,
  • Instance health indicators in the Overview tab
  • A "Configure Logging Levels" button on the Logs tab,
  • And a commit and mappings information in the Settings tab.
However, some or all of these features do not appear.

Environment


Cause

When you do not see these features, it is because Apps Manager is unable to detect that your application has the Spring Boot Actuator enabled or cannot interpret information provided by the Actuator endpoints.

Resolution

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.132.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.