How do I monitor Cloud Foundry?

Cloud Foundry is a platform as a service (PaaS) that consists of a set of open source tools that help you run applications at scale. Once the platform is set up and running, your developers can push applications to it. Health management, fail-over, and load-balancing of application instances are provided out of the box.

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.

Before you begin

What you’ll need:

Installation

These guidelines apply to integration with

Please note that these buildpacks are maintained by the Cloud Foundry Foundation on GitHub. If you experience issues with the integration of Dynatrace into these buildpacks or the NPM module, please get in touch with Dynatrace Support. The Cloud Foundry integrations are currently in a beta release phase.

Generate PaaS token

The first step is to get your environment ID and generate a PaaS token for your Dynatrace environment.

  1. Login with your Dynatrace account.

  2. Select Deploy Dynatrace from the navigation menu.

  3. Click the Set up PaaS integration button.

  4. Your environment ID appears in the Environment ID text box. You’ll need this ID to link your Dynatrace account with your PaaS environment. Click Copy to copy the ID to the clipboard. You can do this at any time by revisiting this page.

  5. To generate a PaaS token, click the Generate new token button. The PaaS token is essentially an API token that’s used in combination with your environment ID to download Dynatrace OneAgent.

  6. Type in a meaningful name for your PaaS token. A meaningful token name might be a combination of your PaaS platform and the name of the application you want to monitor (for example, cloud-foundry_spring-music). To view and manage your existing PaaS tokens, go to Settings -> Integration -> Platform as a Service.

  7. Click Generate to create the PaaS token. The newly created PaaS token will appear in the list below. Click Copy to copy the generated token to the clipboard. You can do this at any time by revisiting this page and clicking Show token next to the relevant PaaS token.

Get the Cloud Foundry CLI

The code examples below use the cf CLI for interfacing with Cloud Foundry clusters. You can find the appropriate CLI for your operating system on GitHub.

Create a Dynatrace service in your Cloud Foundry environment

Cloud Foundry allows you to connect applications with 3rd party tools and other external resources (for example, databases) by means of services. On Cloud Foundry, service instances hold the credentials that are required to connect to such resources. You’ll use this same approach to connect your apps with OneAgent.

This is why you need to define a service instance by either creating a so-called “user-provided service” or by using a service broker application.

Please select one of the following:

Option 1: Create a user-provided service

Create a single service instance for Dynatrace with the name dynatrace as a substring. For example:

cf cups dynatrace‐service ‐p "environmentid, apitoken"

You will then be prompted for your environment ID and API token. The API token corresponds to the token mentioned above.

If you’re using Dynatrace Managed, you need to add an extra field to the payload that specifies the API endpoint of your Managed Server: apiurl

For example:

cf cups dynatrace‐service ‐p "environmentid, apitoken, apiurl"

This needs to be set to https://<YourManagedServerURL>/e/<environmentID>/api.

Option 2: Create a service instance via service broker

If you want to maintain Dynatrace credentials in a central location, use a service broker. For complete details, visit GitHub. You must configure and run the broker as an application, add the service broker to Cloud Foundry, enable service access to users, and finally, create the service instance.

Option 3: Create a service instance via the service broker on the Pivotal Network

If you run a Pivotal Cloud Foundry environment, you can make use of the Dynatrace Service Broker tile on the Pivotal Network.

Bind Dynatrace service to your application

You can either bind the created Dynatrace service to your application in your manifest.yml file prior to starting your app or you can bind the service to your app and restage the app afterwards.

If you’re pushing a Java application, this could look like the following example:

‐‐‐
applications:
‐ name: spring‐music
  memory: 768M
  instances: 1
  host: spring‐music‐${random‐word}
  path: spring‐music.war
  buildpack: https://github.com/cloudfoundry/java‐buildpack.git
services:
 dynatrace‐service

If you’re pushing a Node.js app to Cloud Foundry you need to first install the NPM module and load the module in your application.

Note: For Node.js applications, it’s considered best practice to exclude the node_modules directory from the upload to Cloud Foundry to save time and bandwidth. For this reason add node_modules/ to a text file named .cfignore.

Run npm install in your project directory.

  $ npm install ‐‐save @dynatrace/oneagent

As the first statement of your application, add:

try {
    require('@dynatrace/oneagent')();
} catch(err) {
    console.log(err.toString());
}

Update OneAgent for Cloud Foundry

When a new version of Dynatrace OneAgent becomes available, you need to restart your Cloud Foundry application using cf restage <app_name>. The Cloud Foundry buildpack will automatically fetch the latest version of Dynatrace OneAgent. Following restart, your Cloud Foundry apps will be monitored with the latest version of OneAgent.