Deploy OneAgent on IBM Cloud Foundry for application-only monitoring

Applications deployed on Cloud Foundry are usually run through technology-specific buildpacks that provide framework and runtime support for applications running on the Cloud Foundry platform. For complete details, see how buildpacks work.

Note: When deployed in application-only mode, OneAgent monitors the memory, disk, CPU, and networking of processes within the container only. Host metrics aren't monitored.

Prerequisites

  • Review the supported applications and versions.

Deploy OneAgent

Create a Dynatrace service in your IBM Cloud Foundry environment.
There are two ways of defining a service instance, choose one:

Bind Dynatrace service to your application.

You can bind the created Dynatrace service to your application in your manifest.yml file. If your application is already started, you need to restage it.

In case of a Java application, if you're deploying to IBM Cloud Foundry, be sure to accept IBM licenses by setting the proper environment variables. For details, see the buildpack readme.

---
applications:
- name: demo-helloworld
  path: target/JavaHelloWorldApp.war
  buildpack: https://github.com/cloudfoundry/ibm-websphere-liberty-buildpack.git
  memory: 512M
  instances: 1
  host: hello-world-${random-word}
  disk_quota: 1024M
services:
  - dynatrace-service
env:
  IBM_LIBERTY_LICENSE: <liberty-license-key>
  IBM_JVM_LICENSE: <jvm-license-key>

Optional  Configure the default OneAgent log stream for Cloud Foundry.

By default, OneAgent logs are written to the Cloud Foundry standard error stream. All you have to do is set the environment variable DT_LOGSTREAM to either stdout or stderr.

For example:

cf set-env APP_NAME DT_LOGSTREAM stdout

Optional  Configure a proxy address.

If your environment uses a proxy, you need to set the DT_PROXY environment variable to pass the proxy credentials to OneAgent as shown below.

cf set-env <application> DT_PROXY <proxy address>

Optional  Configure network zones.

You can configure network zones in two ways.

  • Via UserProvidedService:
cf cups dynatrace-service -p "environmentid, apitoken, networkzone"
  • As an environment variable per application:
cf set-env <application> DT_NETWORK_ZONE <your_network_zone>

See network zones for more information.