AppDynamics VMware Tanzu Tile FAQs

General FAQs

How do I configure SSL (On-Prem Controller deployment)?

Make sure you have included the entire certificate chain in the security config of the BOSH Director tile. This ensures that all BOSH deployments and Diego cells can access those certificates automatically while doing SSL validation. AppDynamics deployments automatically reads the certificates and imports them into correct keystores. No additional steps are needed. Follow the exact format with no comments, as specified in the Pivotal Opsi Manager documentation. Enable all SSL checkboxes in Tile Configuration Forms.

How do I configure SSL (SaaS deployment)?

AppDynamics SaaS Controllers are signed with standard DigiCerts CA. They are already included in the BOSH deployments and application containers.

Enable all SSL checkboxes in Tile Configuration Forms.

My installation failed. What should I send to AppDynamics Support?

Collect the error logs from the Ops Manager installation page and provide the entire deployment log.

I am using the v1.x tile and planning to upgrade to v4.4.x. Should I uninstall v1.x before installing v4.4.x?

Yes, since the platform metrics framework has been rewritten to use the new Firehose nozzle instead of JMX Bridge.

Will my apps that are bound to older AppDynamics Service Broker instances lose instrumentation while I uninstall v1.x and install v4.4.x?

No. The apps are oblivious to tile installs and uninstalls. After the apps are bound, the AppDynamics configuration are present until the apps are restaged.

How do I upgrade from v1.x to v4.4.x?

  1. Record the names of your AppDynamics service instances and their corresponding plans before uninstalling your v1.x tile installation.

  2. Uninstall your v1.x tile installation.

  3. Install the v4.4.x tile with the plans you recorded.

  4. Create service instances for the plans you recorded.

I have carried out the procedure above. How do I restage my apps?

No additional steps are required to restage apps.

AppDynamics Service Broker and Buildpacks - APM FAQs

What is an AppDynamics Service Broker?

An AppDynamics Service Broker implements Service Broker API and provides a credential service for apps to bind. When bound, the necessary AppDynamics configuration is automatically imported into the app environment for buildpacks to read and configure AppDynamics agents.

Can I bind apps to AppDynamics without the Service Broker and still instrument apps?

Yes. You can bind a user provided service by creating a user provided service. Do the following:

  1. Run cf cups SERVICE-NAME -p '{"account-access-key":"ACCESS-KEY", "account-name":"ACCOUNT", "application-name":"APP", "host-name":"HOST", "plan-description":"PLAN", "plan-name":"NAME", "port":"PORT", "ssl-enabled":TRUE|FALSE'

  2. Bind the app to the user-provided service and restage.

Which language VMware Tanzu applications have AppDynamics support?

Refer to AppDynamics Workflow documentation

I have a deployment with no internet access. How do I push the apps?

You can use the Java buildpack shipped with CF environments directly. The AppDynamics support has been merged. Any Java buildpack version released after Nov 2017 should work.

In addition, you must place the AppDynamics agent downloaded from packages.appdynamics.com/java/index.yml. See the Offline Package section of the Cloud Foundry Java Buildpack documentation.

How do I customize AppName and TierName?

AppDynamics Buildpacks auto-generate app and tier (and Node) names by looking into the deployed environment. You can customize this auto-generation by setting the configuration environment variables.

To override the app or tier names, run cf set-env APP ENV-NAME ENV-VALUE. Generally it doesn’t make sense to override the node name using this approach, as it will assign the same node name for multiple application instances, resulting in a loss of visibility.

AGENT APPLICATION ENV VARIABLE TIER ENV VARIABLE
Python APPD_APP_NAME APPD_TIER_NAME
Java APPDYNAMICS_AGENT_APPLICATION_NAME APPDYNAMICS_AGENT_TIER_NAME
NodeJS APPDYNAMICS_AGENT_APPLICATION_NAME APPDYNAMICS_AGENT_TIER_NAME
Golang APPD_APP_NAME APPD_TIER_NAME

How do I configure the Java buildpack to fetch a particular agent version?

By default, Buildpack fetches the latest available agent entry in packages.appdynamics.com/java/index.yml. You can override the default behavior by setting these variables specified under Configuration in the AppDynamics Agent Framework README.

  • To use a specific version, set the env JBP_CONFIG_APP_DYNAMICS_AGENT:

    cf set-env YOUR-APP-NAME JBP_CONFIG_APP_DYNAMICS_AGENT '{version: 4.4.111}'

  • To use another package index, set the env JBP_CONFIG_APP_DYNAMICS_AGENT:

    cf set-env YOUR-APP-NAME JBP_CONFIG_APP_DYNAMICS_AGENT '{repository_root: "https://exmple.duckdns.org"}'

The Java buildpack does not fetch a particular agent version. What should I do?

If you are using the default package index, verify that the version in question is present by running curl -sSL https://packages.appdynamics.com/java/index.yml -H "user-agent: Ruby" -H "accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3" -H "accept: */*".

If it does not show up in the output, reach out to AppDynamics Support or the #java-buildpack channel of the Cloud Foundry Slack.

My app push fails. What should I send to AppDynamics Support?

  • cf push logs
  • App manifest, if present

My app is running, but I do not see any metrics in Controller. How do I troubleshoot?

Run cf env application and see if the VCAP_SERVICES environment variable has AppDynamics information. * If no, bind the app to AppDynamics service and restage. * If yes, ensure all credentials (Controller info, key, SSL) are correctly set. If you are using SSL, ensure it is enabled (“ssl: true”) in VCAP_SERVICES.

What should I send to AppDynamics Support?

  • cf logs {appname}
  • cf env {appname}
  • cf ssh {appname}
    • Find the process ID of the running app by running ps aux.
    • cat /proc/{pid}/environ
    • Agent logs
AGENT LOGS
NODE.JS /tmp/appd/{hash}
JAVA /app/.java-buildpack/app_dynamics_agent/ver/logs