Learn about the Wavefront Oracle WebLogic Server Integration.

Oracle WebLogic Server

The Oracle WebLogic Server enables building and deploying Java Platform Enterprise Edition (Java EE) applications. The WebLogic Server infrastructure supports the deployment of many types of distributed applications.

In addition to setting up the metrics flow, this integration also sets up a dashboard. images/weblogic-metrics.png

To see a list of the metrics for this integration, select the integration from https://github.com/influxdata/telegraf/tree/master/plugins/inputs.

WebLogic Server Setup

Note: If you use vRealize Operations, the application proxy agent sets up the integration for you. See the setup instructions. Otherwise, follow the setup steps on this page.

Step 1. Install the Telegraf Agent

If you don’t have the Telegraf agent installed, follow the steps below. Otherwise, continue to step 2

Log in to your Wavefront instance and follow the instructions in the Setup tab to install Telegraf and a Wavefront proxy in your environment. If a proxy is already running in your environment, you can select that proxy and the Telegraf install command connects with that proxy. Sign up for a free trial to check it out!

Step 2. Install the Jolokia Agent on Your WebLogic Server

  1. Download the latest version of the Jolikia WAR-Agent from: https://jolokia.org/download.html.
  2. Rename the jolokia-war-X.X.X.war file to jolokia.war.
  3. Deploy the jolokia.war file into the WebLogic Server.
  4. Verify the Jolokia agent installation by accessing this URL: http://<address>:<port>/jolokia/version.

Note: Jolokia 1.6 or later uses authentication. Create a user and group, and apply that to the Jolokia web app.

The result looks similar to this:

{"request":{"type":"version"},"value":{"agent":"1.3.7","protocol":"7.2","config":{"maxCollectionSize":"0","agentId":"10.152.24.99-29844-172f5788-servlet","debug":"false","agentType":"servlet","serializeException":"false","detectorOptions":"{}","dispatcherClasses":"org.jolokia.jsr160.Jsr160RequestDispatcher","maxDepth":"15","discoveryEnabled":"false","canonicalNaming":"true","historyMaxEntries":"10","includeStackTrace":"true","maxObjects":"0","debugMaxEntries":"100"},"info":{"product":"tomcat","vendor":"Apache","version":"8.5.23"}},"timestamp":1509955465,"status":200}

Step 3. Configure the Telegraf Jolokia Input Plugin

First create a file called weblogic.conf in /etc/telegraf/telegraf.d and enter the following snippet:

[[inputs.jolokia2_agent]]
urls = ["http://SERVER_URL:PORT/jolokia"]
name_prefix = "weblogic."

#username and password are mandatory for Jolokia 1.6 or later
#username = <jolokia web app username>
#password = <jolokia web app password>

### JVM Generic

[[inputs.jolokia2_agent.metric]]
name  = "OperatingSystem"
mbean = "java.lang:type=OperatingSystem"
paths = ["ProcessCpuLoad","SystemLoadAverage","SystemCpuLoad"]

[[inputs.jolokia2_agent.metric]]
name  = "jvm_runtime"
mbean = "java.lang:type=Runtime"
paths = ["Uptime"]

[[inputs.jolokia2_agent.metric]]
name  = "jvm_memory"
mbean = "java.lang:type=Memory"
paths = ["HeapMemoryUsage", "NonHeapMemoryUsage", "ObjectPendingFinalizationCount"]

[[inputs.jolokia2_agent.metric]]
name     = "jvm_garbage_collector"
mbean    = "java.lang:name=*,type=GarbageCollector"
paths    = ["CollectionTime", "CollectionCount"]
tag_keys = ["name"]

[[inputs.jolokia2_agent.metric]]
name       = "jvm_memory_pool"
mbean      = "java.lang:name=*,type=MemoryPool"
paths      = ["Usage", "PeakUsage", "CollectionUsage"]
tag_keys   = ["name"]
tag_prefix = "pool_"

### WLS

[[inputs.jolokia2_agent.metric]]
name       = "JTARuntime"
mbean      = "com.bea:Name=JTARuntime,ServerRuntime=*,Type=JTARuntime"
paths      = ["SecondsActiveTotalCount","TransactionRolledBackTotalCount","TransactionRolledBackSystemTotalCount","TransactionRolledBackAppTotalCount","TransactionRolledBackResourceTotalCount","TransactionHeuristicsTotalCount","TransactionAbandonedTotalCount","TransactionTotalCount","TransactionRolledBackTimeoutTotalCount","ActiveTransactionsTotalCount","TransactionCommittedTotalCount"]
tag_keys   = ["ServerRuntime"]
tag_prefix = "wls_"

[[inputs.jolokia2_agent.metric]]
name       = "ThreadPoolRuntime"
mbean      = "com.bea:Name=ThreadPoolRuntime,ServerRuntime=*,Type=ThreadPoolRuntime"
paths      = ["StuckThreadCount","CompletedRequestCount","ExecuteThreadTotalCount","ExecuteThreadIdleCount","StandbyThreadCount","Throughput","HoggingThreadCount","PendingUserRequestCount"]
tag_keys   = ["ServerRuntime"]
tag_prefix = "wls_"

[[inputs.jolokia2_agent.metric]]
name       = "JMSRuntime"
mbean      = "com.bea:Name=*.jms,ServerRuntime=*,Type=JMSRuntime"
paths      = ["ConnectionsCurrentCount","ConnectionsHighCount","ConnectionsTotalCount","JMSServersCurrentCount","JMSServersHighCount","JMSServersTotalCount"]
tag_keys   = ["name","ServerRuntime"]
tag_prefix = "wls_"

Then replace the urls value with your WebLogic Server URL. Specify your servers with URL matching.

Format:

urls = ["http://<address>:<port>/<jolokia context>"]

Example:

urls = ["http://wls.foo.com:8080/jolokia"]

To monitor multiple WebLogic Servers, add additional urls entries:

urls = ["http://wls.foo.com:8080/jolokia","http://webapp1.foo.com:8080/jolokia","http://wbapp2.foo.com:8080/jolokia"]

Step 4. Restart Telegraf

Run sudo service telegraf restart to restart your Telegraf agent.