IBM Application Metrics for Java 1.2.1

This extension pack contains a data collector, which can be deployed for monitoring your Java applications running on Liberty in IBM Cloud private. This is an extension of Application Metrics for Java data collector that helps monitor your application using a standalone dashboard. Users can later integrate with IBM Cloud App Management (ICAM) by changing the configuration. IBM Cloud App Management helps monitor polyglot applications deployed both in cloud and on-premise.


Prerequisites

  • The monitor-1.0 feature is required by the data collector. If your Liberty system has access to the Liberty feature repository, the extension pack can automatically download and install this feature.

  • Monitoring by default is available via standalone dashboard. Optionally, you can integrate with IBM Cloud App Management. To integrate with IBM Cloud App Management, you must have an IBM Cloud App Management server deployed to IBM Cloud private so that the data collector can connect to this server and send performance data.

  • If you have created your application using IBM Microclimate, then you don't need to deploy this extension as your application is already configured with this extension by default.

Installation and Configuration

  1. Update the docker file of your liberty application. Add the following lines below to install the data collector feature and configure it.

RUN /opt/ibm/wlp/bin/installUtility install ibmAppMetricsForJava-1.2.1 --acceptLicense

RUN /opt/ibm/wlp/usr/extension/liberty_dc/bin/config_unified_dc.sh -silent -javametrics

Note: config_unified_dc.sh is the configuration script that is used to configure the data collector

  1. Build and tag the new Docker image of the application and push this new image to the docker image registry. For example, in the directory where the Dockerfile is located, run the following command:

    docker build -t application_image_name:image_tag .

  2. Once you built the image and run the container, the monitoring dashboard for your application is available at http://localhost:nodeport/javametrics-dash/ ; You can adjust the url & port according to your deployment. This does not require any monitoring server to be installed.

  1. If you want to upgrade to IBM Cloud App Management (ICAM), log on the ICAM UI, go to the Administration page, click the Integration icon to link to the Integrations page, then click the Configure an integration button, then click the Configure button on the Data Collectors icon. Click the Download file button to download the data collector config pack.

  2. Decompress the config pack file ibm-cloud-apm-dc-configpack.tar on the master node of your ICP environment, go to the decompressed directory and run the following command to create a configmap:

kubectl create -f cam-server-configmap.yaml

Note: cam-server-configmap.yaml is the ConfigMap yaml file from the config pack. It will create the ConfigMap named apm-server-config. The ConfigMap apm-server-config will be created in the namespace default, to change to another namespace, edit the yaml file and update namespace value in the metadata part.

  1. Update the yaml file of your application deployment file and mount the ConfigMap containing ICAM server information by adding the following to your application YAML file

volumeMounts:

- name: global-environment

  mountPath: /opt/ibm/apm/serverconfig


......

volumes:

- name: global-environment

  configMap:

    name: apm-server-config

    optional: true

Note: the monuntPath /opt/ibm/apm/serverconfig is the fixed value to store the files in the docker container.


Additional information

For information about how to download the Liberty features with installUtility, see Downloading assets using the installUtility command in the WebSphere Application Server Network Deployment Knowledge Center.