JVM application

Turbonomic supports connecting to individual JVM Applications as targets. Turbonomic connects to the JVM process as a remote client via remote JMX access. Target configuration includes the port used by the JMX/RMI registry.

Prerequisites

  • JVM 6.0+

  • A valid JMX user account for the JVM application

    If JMX security is enabled this must be a JMX user with a readonly role

  • The application should run on JVM version 6.0 or higher

  • For VMware environments, VMware Tools must be installed on the VM that hosts the application

    This ensures that the VM hosting the application can get the application’s IP address

  • Remote JMX access is enabled through a port that is opened to the firewall

  • Discovered infrastructure

    Turbonomic discovers JVM applications that are running on VMs or containers. The hosting VM or container must already be in your Turbonomic inventory.

    To set the target for a server running on a VM, you must have first discovered the hosting VM through a hypervisor target. To set the target for a server running in a container, you must have configured container discovery for JVM applications.

Adding JVM application targets

Note:

This topic describes features that are available in the new design of the user interface. This new design is enabled by default. If you switched to the legacy design, click New Feature Toggle button in the navigation bar of the user interface and then turn on the toggle to re-enable the new design. For more information, see New Design for the User Interface.

When you configure JVM targets, you declare a given scope and add all matching applications within that given scope. To do this, specify:

  1. Click Settings > Target Configuration.

  2. On the Target configuration page, click Add Target.

  3. On the Select target page, click JVM Application.

  4. In the side panel, review the connection requirements and then click Connect Target.

  5. Configure the following settings:

    • Display name

      Specify a name that uniquely identifies this connection.

    • Username

      Specify the username of an account with the Admin role.

      Credentials must match the credentials that you specify for the JMX login configuration when you start up the application. If you disable authentication on the application, you must still provide arbitrary values for Username and Password.

    • Password

      Specify the password of an account with the Admin role.

      Credentials must match the credentials that you specify for the JMX login configuration when you start up the application. If you disable authentication on the application, you must still provide arbitrary values for Username and Password.

    • Scope

      Specify the scope Turbonomic uses for application discovery.

      The scope is a group of applications that are stitched to the underlying VMs when the VMs are discovered as part of a separate Turbonomic target.

      If you set a scope, Turbonomic searches for virtual machines in the selected group.

      Turbonomic can monitor up to 500 virtual machines in a group. If you have more than 500 virtual machines in your environment, split them across smaller groups and then add those groups as individual targets.

    • JMX remote port

      Specify the JMX remote port number.

      To disable JMX authentication, use the following flags in the command line as you start the application:

      -Dcom.sun.management.jmxremote.authenticate=false 
      -Dcom.sun.management.jmxremote.ssl=false
    • Authenticate all database servers

      If you select this option, Turbonomic attempts to authenticate all database servers in the selected scope. If Turbonomic is unable to authenticate a database server, the target is not added and no data is collected.

Configuring JMX remote access

Turbonomic monitors and controls JVM applications via JMX Remote access. You must configure a JMX Remote port.

Note that to work with a firewall you should also set the RMI Server port — If you don’t set an RMI port, then JMX sets an arbitrary ephemeral port, and you can’t guarantee that the port will be open to your firewall.

To set the JMX Remote port, pass in the port at the command line when you start your application. For example, to set the port to 8090, start your application with the following options:

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8090

Multiple JVM targets on single VM

Note that you can specify targets with different ports, but that run on the same VM (use the same IP address). You can also specify targets via the same scope, but with different ports — This is another way to assign applications running on the same VM to different ports. To do this:

To do this, add the targets in two separate steps. For example, assume you want to add two JVM application targets, and they both run on the VM at 10.10.123.45. One application is on port 123, and the other application is on port 456. To specify these two targets:

  • Specify the first target with the following parameters:

    • Scope: VMs_myCluster.mycorp.com

    • Port number: 123

    • Username: AppUser

    • Password: **********

    Click ADD.

  • Specify the second target with the following parameters:

    • Scope: VMs_myCluster.mycorp.com

    • Port number: 456

    • Username: OtherAppUser

    • Password: **********

    Click ADD.

Monitored resources

Turbonomic monitors the following resources:

  • Application Component (JVM Application)

    • Heap

      Heap is the portion of a VM or container’s memory allocated to individual applications.

    • Remaining GC capacity

      Remaining GC capacity is the measurement of Application Component uptime that is not spent on garbage collection (GC).

      Data is collected if JVM profiler is enabled.

  • Virtual Machine

    • Virtual memory (vMem)

      Virtual memory (vMem) is the measurement of memory that is in use.

    • Virtual CPU (vCPU)

      Virtual CPU is the measurement of CPU that is in use.

Actions

Turbonomic supports the following actions:

  • Application Component (JVM Application)

    • Resize Heap

      This action can only be executed outside Turbonomic.

    • Resize Thread Pool

      This action can only be executed outside Turbonomic.

    • Resize Connection Capacity

      This action can only be executed outside Turbonomic.

    • Suspend VM

      This action can only be executed by Turbonomic if a VM is hosted in a vCenter environment. Actions for applications running on other hypervisors can only be executed outside Turbonomic.

    • Provision VM

      This action can only be executed outside Turbonomic.

  • Virtual Machine

    • Provision additional resources (VMem, VCPU)

    • Move Virtual Machine

    • Move Virtual Machine Storage

    • Reconfigure Storage

    • Reconfigure Virtual Machine

    • Suspend VM

    • Provision VM