6 Install and Configure APM Java Agent on Jetty

Here are the requirements and instructions to install APM Java Agent on Jetty.

Jetty: Requirements and Installation Instructions

Prerequisites for Deploying APM Java Agent on a Jetty Server

  • Supported versions:

    • Jetty Server 7, 8, and 9

  • JDK version 1.7 or above. If you are using JDK 1.6, either use a JDK 1.6 that supports TLS 1.2 security protocol, or connect to OMC through a Gateway.

  • If the JDK version you are running doesn't support TLS 1.2 security protocol, refer to My Oracle Support Doc ID 2703411.1 before proceeding with the APM agent installation.

  • You can install one APM Agent in one instance of Jetty.

  • Other considerations:
    • The machine hosting the Jetty Server should be able to establish an HTTPS connection either directly or indirectly (using a proxy server or an Oracle Management Cloud gateway) to Oracle Management Cloud. For more information about Oracle Management Cloud gateway, see Install a Gateway.

    • The HTTPS connection must use TLS 1.2 security protocol.

    • The install user of APM Java Agent should be the same as the Jetty Server user.

    • The Jetty Server user should have read and write permissions to the directories that host the APM Java Agent, as well as the Jetty Server Home.

Set the JETTY_HOME Variable

Set the JETTY_HOME variable to point to the Jetty destination directory.

  • If you're using a Bash shell:

    export JETTY_HOME=<Jetty destination directory>

  • If you're using a C shell:

    setenv JETTY_HOME"<Jetty destination directory>"

Deploy a Gateway (Optional)

Gateway is not a mandatory component while deploying Oracle Application Performance Monitoring; you can use a gateway in the following scenarios:
  • If you have an application server that does not support Transport Layer Security (TLS) protocol 1.2

  • If you have older versions of Java Application Servers with JDK less than 1.7 (for example, Oracle WebLogic 10.3.6)

For instructions on how to deploy a gateway, see Install a Gateway.

Set the Gateway Variables (Optional)

Set the values for Gateway host and port.

  • If you're using a Bash shell:

    export GW_HOST=<Gateway Host Name>
    export GW_PORT=<Gateway Port>
  • If you're using a C shell:

    setenv GW_HOST "<Gateway Host Name>"
    setenv GW_PORT "<Gateway Port>"

If you are using more than one gateway, use the -additional-gateways option with the provisioning script.

Download the APM Java Agent Software for Jetty

  1. From the main Oracle Management Cloud menu, navigate to Administration and Agents.

  2. On the Oracle Management Cloud Agents page, click the Action Menu on the top right corner of the page and select Download Agents.

    The Agent Software Download page is displayed.

  3. From the Agent Type dropdown list, select APM Agent.

  4. Click APM Java Agent.

  5. Extract the contents of the installer ZIP file.

Install and Provision APM Java Agent on Jetty

  • Before you install the APM Java Agent, log in to the machine running the application server as a user who installed the application server.

  • The application server user should have Read-Write access to the APM Java Agent directories.

To install and provision the APM Java Agent:

  1. Navigate to the directory where you downloaded the APM Java Agent software.
  2. Run the provisioning script as per your installation preference:
    Installation Preference Provisioning Script
    Basic Installation
    chmod +x ProvisionApmJavaAsAgent.sh
    ./ProvisionApmJavaAsAgent.sh -d ${JETTY_HOME} -no-wallet
    Silent Installation
    chmod +x ProvisionApmJavaAsAgent.sh
    ./ProvisionApmJavaAsAgent.sh -d ${JETTY_HOME}-no-prompt

    With Gateway

    If you are using more than one gateway, use the -additional-gateways option.

    chmod +x ProvisionApmJavaAsAgent.sh
    ./ProvisionApmJavaAsAgent.sh -d ${JETTY_HOME} -no-wallet gateway-host {gw_host_value}, -gateway-port {gw_port_value}, 
    -additional-gateways https://<gw_host_1>:<gw_port_1>,https://<gw_host_2>:<gw_port_2>
    In a Proxy Environment
    chmod +x ProvisionApmJavaAsAgent.sh
    ./ProvisionApmJavaAsAgent.sh -d ${JETTY_HOME} -no-wallet -ph {http_proxy_host} -pp {http_proxy_port} -pt {http_proxy_auth_token}																		                             
    • -d is the absolute path of the home directory of your Jetty installation. The APM Java Agent will be installed under this directory.

    • -ph {http_proxy_host} (Optional) — the proxy server’s host name.

    • -pp {http_proxy_port} (Optional) — the proxy server’s port.

    • -pt {http_proxy_auth_token}(Optional) — the authorization token that the agent will use if the proxy server requires authentication. This parameter will be passed literally as the proxy authorization header to the proxy server.

      If you are using HTTP Basic authentication, it is recommended that you omit this parameter. For details on HTTP Basic authentication, see Generating Proxy Token. You can also specify the proxy wallet entry or NTLM credentials token in the following format: domain/username:password. For example: exampledomain/sampleuser:welcome

    The command line displays your tenant name and the value you specified.
  3. When prompted, provide the value of the registration key that you've created or downloaded earlier.
    If you are running the provisioning script with the -no-prompt option, create a text file containing the value of registration key, and provide the path to the file.

    Example: ./ProvisionApmJavaAsAgent.sh -d mydir -no-prompt < regkey.txt where regkey.txt contains a single line with the registration key.

  4. Review the values and confirm. To change the values, enter n and run the script again with new values. 
  5. To proceed with the installation, enter y.
    The APM Java Agent is installed.
Install APM Java Agent on a Microservice
When running the APM Java Agent provisioning script on an application or microservice using Dropwizard or similar embedded Jetty framework, the installation is very similar to standalone Jetty. First, if your microservice does not have a standard server home (DOMAIN_HOME, CATALINA_HOME, etc.), you can simply choose an empty directory for it. Once it's provisioned, add:
-javaagent:<path-to-agent>/apmagent/lib/system/ApmAgentInstrumentation.jar
to the startup command line or script for your application or microservice.
Example:
java -javaagent:/u01/apmagent/lib/system/ApmAgentInstrumentation.jar -jar my-microservice-1.0.jar server config.yml
Provision APM Java Agent with Offline Installer

You can install and provision the APM Java Agent from an offline installer that you have received over email.

To install from the emailed ZIP, the provisioning script needs to download the configuration file from Oracle Management Cloud. Specify these additional options while running the provisioning script:

Option Description
-tenant-id The Oracle Management Cloud tenant name.
-omc-server-url The URL of the Oracle Management Cloud server. Example: https://omchost:port

Modify the Startup Script of Your Jetty Server

Modify the startup script of your application server to invoke the Oracle Application Performance Monitoring Cloud Service configuration settings, when you start your application server.

To modify the java -jar start.jar script of your Jetty server home:
  1. Make a copy of your java -jar start.jar file:
    % cd $JETTY_HOME/bin
    % cp java -jar start.jar java -jar start.jar.orig
  2. Using a text editor, edit the original script to add the -javaagent option. To send the Jetty server data to APM Agent, append the following class path, along with ApmAgentInstrumentation.jar
    java -javaagent:/u01/apmagent/lib/system/ApmAgentInstrumentation.jar -jar start.jar
  3. Restart the Jetty server.

Verify APM Java Agent Installation