This chapter describes the monitoring capabilities of Oracle Traffic Director. It contains the following sections:
Table 12-1 summarizes the methods that you can use to view statistical data about an instance of a configuration and about individual virtual servers within an instance.
Table 12-1 Methods for Monitoring Oracle Traffic Director Instances
Monitoring Method | Requirements | Advantages |
---|---|---|
WLST
See Viewing Statistics using WLST, and Monitoring Using DMS. |
Administration server must be running. |
Enabled by default. Accessible even when request-processing threads are hanging. |
Browser
See Viewing stats-xml and perfdump Reports Through a Browser. |
Must be enabled and configured explicitly. |
The administration server need not be running. It is sufficient if the instance is running. |
SNMP |
Must be configured explicitly. |
Statistics available through network management systems. |
When you create an Oracle Traffic Director configuration, statistics collection is enabled by default, with five seconds as the update interval. You can disable, enable, and configure statistics collection by using either Fusion Middleware Control or the WLST.
Note:
For information about invoking WLST, see Accessing WebLogic Scripting Tool.
Configuring Statistics-Collection Settings Using Fusion Middleware Control
To configure statistics-collection settings by using the Fusion Middleware Control, do the following:
Configuring Statistics-Collection Settings Using WLST
To view the current statistics-collection properties, run the otd_getStatsProperties
command, as shown in the following example:
props = {} props['configuration'] = 'foo' otd_getStatsProperties(props)
To configure statistics-collection properties, run the otd_setStatsProperties
command.
For example, the following command changes the interval at which statistics are updated for the configuration to 10 seconds.
props = {} props['configuration'] = 'foo' props['interval'] = '10' otd_setStatsProperties(props)
For more information, see otd_getStatsProperties
and otd_setStatsProperties
commands in the WebLogic Scripting Tool Command Reference for Oracle Traffic Director.
As described in Methods for Monitoring Oracle Traffic Director Instances, in addition to viewing activity statistics by using WLST, you can view the following reports through a URI.
stats-xml
: Detailed statistics in XML format. For a sample, see Sample XML (stats-xml) Report.
perfdump
: A summary report in plain-text format containing a subset of the data in the stats-xml
report. For a sample, see Sample Plain-Text (perfdump) Report. Note that though you enable the perf-dump
report at the virtual-server level, the data in the report is aggregated at the instance level.
Relative Advantages of URI-Based and WLST Access to Statistics Reports
The administration server need not be running for users to access the stats-xml
and perfdump
reports through URIs. When compared with accessing statistics by using WLST, accessing URI-based reports involves lower processing overhead.
Access to statistics by using WLST is enabled by default, but to view statistics through the browser, you should explicitly enable URI-based reporting and specify the URIs at which users can access the reports.
You can configure URI-based reporting of statistics by using either Fusion Middleware Control or the WLST.
Configuring URI Access to Statistics Using Fusion Middleware Control
To configure URI-based reporting by using the Fusion Middleware Control, do the following:
Configuring URI Access to Statistics in XML Format Using WLST
To view the current XML reporting settings, run the otd_getStatsXmlProperties
command, as shown in the following example:
props = {} props['configuration'] = 'foo' props['virtual-server'] = 'bar' otd_getStatsXmlProperties(props) enabled=false uri=/stats-xml
To enable and configure URI-based XML reporting, run the otd_enableStatsXml
command.
For example, the following command enables URI-based statistics reporting in XML format for the virtual server bar
in the configuration foo
and specifies that the report should be available at the URI /stats
.
props = {} props['configuration'] = 'foo' props['virtual-server'] = 'bar' props['uri'] = '/stats' otd_enableStatsXml(props)
To disable URI-based XML reporting, run the otd_disableStatsXml
command, as shown in the following example:
props = {} props['configuration'] = 'foo' props['virtual-server'] = 'bar' otd_disableStatsXml(props)
Configuring URI Access to Statistics in Plain-Text Format Using WLST
To view the plain-text reporting settings, run the otd_getPerfDumpProperties
command, as shown in the following example:
props = {} props['configuration'] = 'foo' props['virtual-server'] = 'bar' otd_getPerfDumpProperties(props)
To enable and configure the plain-text reporting, run the otd_enablePerfDump
command.
For example, the following command enables URI-based statistics reporting in plain-text format for the virtual server bar
in the configuration foo
and specifies that the report should be available at the URI /perf
.
props = {} props['configuration'] = 'foo' props['virtual-server'] = 'bar' props['uri'] = '/perf' otd_enablePerfDump(props)
To disable URI-based plain-text reporting, run the otd_disablePerfDump
command, as shown in the following example:
props = {} props['configuration'] = 'foo' props['virtual-server'] = 'bar' otd_disablePerfDump(props)
For more information about the WLST commands mentioned in this section, see WebLogic Scripting Tool Command Reference for Oracle Traffic Director.
By using WLST, you can view statistics for one or all instances of a configuration.
To view detailed statistics for an instance in XML format, run the otd_getStatsXml
command, as shown in the following example:
props = {} props['instance'] = 'otd_foo_machine1' otd_getStatsXml(props)
For a sample of the report, see Sample XML (stats-xml) Report.
To view a summary of the statistics for an instance in plain-text format, run the otd_getPerfDump
command, as shown in the following example:
props = {} props['instance'] = 'otd_foo_machine1' otd_getPerfDump(props)
For a sample of the report, see Sample Plain-Text (perfdump) Report.
To view statistics for one or all instances of a configuration using metric tables collected from Oracle Dynamic Monitoring Service (DMS) for Oracle Traffic Director, run the displayMetricTables
command, as shown in the following examples. For more details about Oracle Dynamic Monitoring Service (DMS), see Monitoring Using DMS
To view metrics for all Oracle Traffic Director instances:
displayMetricTables('OTD_*')
To view origin server metrics for all instances:
displayMetricTables('OTD_OriginServer')
To get a list of metric tables for a specific instance:
displayMetricTableNames(servers='/OTD/otd_test_myserver.example.com')
To view all metrics for a specific instance:
displayMetricTables(servers='/OTD/otd_test_myserver.example.com')
To view instance metrics for a specific instance:
displayMetricTables('OTD_Instance', servers='/OTD/otd_test_myserver.example.com')
For more information about the WLST commands mentioned in this section, see the WebLogic Scripting Tool Command Reference for Oracle Traffic Director.
If you enable URI access to statistics as described in Configuring URI Access to Statistics Reports, you can access the stats-xml
and perfdump
reports through a browser by using the following URL:
http://host:port/uri
host
and port
are the IP address (or host name) and port number of the virtual server for which you enabled URI access to statistics. uri
is the location that you specified while enabling URI access. Note that if a virtual server is associated with multiple listeners, you can use the address host:port
of any of the listeners to access the URI-based reports.
For example, if /perfdump
is the configured URI for the plain-text report for the virtual server soa.example.com:1904
, the URL that you should use to access the report would be the following:
http://soa.example.com:1904/perfdump
In the URL, you can also specify the interval, in seconds, after which the browser should refresh the perfdump
report automatically, as shown in the following example:
http://soa.example.com:1904/perfdump?refresh=5
Similarly, if /stats-xml
is the configured URI for the XML report for the virtual server soa.example.com:1904
, the URL that you should use to access the XML report would be the following:
http://soa.example.com:1904/stats-xml
You can limit the data that the XML report provides by specifying a URL query string indicating the elements that should not be displayed. If you do not include a query string, all the elements in the XML report are displayed.
For example, the query string specified in the following URL suppresses display of the virtual-server
and server-pool
elements in the XML report.
http://soa.example.com:1904/stats-xml?virtual-server=0&server-pool=0
The following list shows the hierarchy of elements in the statistics XML report. Note that when you opt to suppress an element in the report, the child elements of that element are also suppressed.
stats server process connection-queue thread-pool dns keepalive thread request-bucket profile-bucket compression decompression origin-server-pool origin-server websocket service-queue virtual-server request-bucket websocket webapp-firewall profile-bucket route request-bucket cpu-info tcp-proxy cache failover partition request-bucket ssl-session-cache
Simple Network Management Protocol (SNMP) is a standard that enables management of devices in a network from a network management application running on a remote system. The network management application might, for example, show which servers in the network are running or stopped at any point in time, and the number and type of error messages received.
Oracle Traffic Director instances are monitored using SNMP, by default. To be able to do this, you should do the following:
Configure the instances to support monitoring through SNMP.
Configure the SNMP subagent on the nodes.
Start the SNMP subagent on the nodes.
This section contains the following topics:
When you create a configuration, support for monitoring the instances through SNMP is enabled by default. You can disable, enable, and configure support for SNMP monitoring by using either Fusion Middleware Control or the WLST.
Configuring SNMP Support Using Fusion Middleware Control
To enable SNMP support for a configuration by using the Fusion Middleware Control, do the following:
Configuring SNMP Support Using WLST
To view the current SNMP settings for a configuration, run the otd_getSnmpProperties
command, as shown in the following example:
props = {} props['configuration'] = 'foo' otd_getSnmpProperties(props)
SNMP is enabled by default. To enable or disable SNMP support, run the otd_setSnmpProperties
command, as shown in the following example:
props = {} props['enabled'] = 'true' props['organization'] = 'bar' otd_setSnmpProperties(props)
For more information, see otd_getSnmpProperties and otd_setSnmpProperties commands, see the WebLogic Scripting Tool Command Reference for Oracle Traffic Director.
When you create an Oracle Traffic Director node, an SNMP subagent is created automatically. The SNMP subagent collects information about the instances running on the node.
The SNMP subagent's configuration settings, including the frequency at which the subagent updates statistics, the duration after which cached statistics are timed out, and the port through which the subagent process communicates, are stored in the following file:
SNMP configuration file can be found at: <domain-home>/config/fmwconfig/components/OTD/snmp/config/snmpagt.conf
SNMP persistent file can be found at: <domain-home>/config/fmwconfig/components/OTD/snmp/store/snmpagt.conf
You can configure the SNMP subagent's settings by editing the snmpagt.conf
file. SNMP Subagent Configuration Parameters lists the key SNMP subagent parameters.
Table 12-2 SNMP Subagent Configuration Parameters
Parameter in smnpagt.conf | Description | Default Value |
---|---|---|
|
Ports at which the SNMP subagent receives requests |
11161 |
|
Statistics update frequency (seconds) |
5 |
|
Cache timeout period (seconds) |
5 |
The syntax for entries in snmpagt.conf
should be as described in the documentation for snmpd.conf
at: http://www.net-snmp.org/docs/man/snmpd.conf.html
.
After configuring the SNMP subagent on a node, you should start it. The subagent then begins collecting statistics about the Oracle Traffic Director instances on the node.
On a system with fresh Oracle Traffic Director installation, SNMP v3 users and access control are not configured by default. A user must be added and access control configured before the server status can be queried via SNMP.
Adding an SNMP v3 user
Stop the SNMP agent and add an SNMP v3 user by modifying the SNMP configuration files manually. Optionally enable encryption of all requests and responses.
Persistent file: <domain-home>/config/fmwconfig/components/OTD/snmp/store/ snmpagt.conf |
---|
A user can be added by adding an entry in the following format:
|
SHA is the encryption for authentication password
DES and AES are the encryption protocols
privpassphrase is the password to encrypt the snmp request and response
Examples
Create user 'user1' and specify password used for authentication
createUser user1 SHA user1pwd
Create user 'user2' and encrypt all requests and responses.
createUser user2 SHA user2pwd AES
Create user 'user3' and encrypt all requests and responses with separate crypt password
createUser user3 SHA user3pwd AES cryptpwd
Configuration file: <domain-home>/config/fmwconfig/components/OTD/snmp/config /snmpagt.conf |
---|
Access permissions for a SNMP user can be specified by adding an entry in the following format:
|
rouser is for read-only access. Authentication and encryption can be specified as:
noauth: To allow unauthenticated requests
auth: To enforce authentication of username with authpassphrase
priv: To enforce use of encryption
After adding the SNMP v3 user, the SNMP agent should be started and stopped once. When the SNMP agent is stopped, user authentication parameters provided in "createUser" line is encrypted and stored in the persistent file.
Ensure that the SNMP agent and one or more OTD instances are running. The SNMP agent can now be queried over SNMP v3 using <user-name> and <auth-password>.
Run the snmpwalk command. User can run the snmpcmd from remote host.
snmpcmd(snmpwalk/snmpget) |
---|
snmpwalk example
|
Deleting an SNMP v3 user
The user can be deleted by removing the relevant user entries from both the configuration file and persistent file and restarting the SNMP agent.
Integrating SNMP with Master Agent
Oracle Traffic Director SNMP can be integrated with the SNMP master agent running on the system on Linux and Solaris using theagentx
protocol. This requires the SNMP agent to be started in agentx
mode. When running in this mode, the Oracle Traffic Director SNMP agent cannot communicate via the SNMP protocol. All requests should be made to the SNMP master agent, which in-turn retrieves the requested information from the SNMP agent via the agentx
protocol.
The default agentx
transport specifier for Oracle Traffic Director SNMP is specified as below. The transport specifier can be changed as mentioned in the man page of snmpd.conf.
agentx transport specifier |
---|
|
Configure operating system master agent to communicate to sub-agents via agentx
protocol. This requires the following changes to the master agent configuration (/etc/snmp/snmpd.conf on Linux and /etc/net-snmp/snmp/snmpd.conf on Solaris). The master agent needs to be restarted after making this change.
Directives that need to be added to the master agent configuration (snmpd.conf) |
---|
|
Changes to the master agent configuration requires super-user privileges.
The agentxsocket directive should be the same on both the OTD SNMP agent and the OS master agent.
Start the SNMP agent in agentx mode.
WLST command to start OTD SNMP agent |
---|
Online
Offline
|
Send an SNMP request directly to the operating system master agent.
Configuring TRAP Notifications
The Oracle Traffic Director SNMP agent can also generate an SNMP trap notification whenever an instance is started or stopped. This notification can be sent to one or more destinations that are specified in the configuration file at<domain-home>/config/fmwconfig/components/OTD/snmp/config/snmpagt.conf
.
Examples for specifying trap destinations in snmpagt.conf |
---|
Send an SNMPv1 trap
|
Send an SNMPv2 trap
|
Send an SNMPv2 inform which the remote side should confirm
|
Send an SNMPv3 trap without any auth
|
Send a SNMPv3 inform with full SNMPv3 security
|
For more information on these directives see the man page.
You can start and stop the SNMP subagent on a node by using WLST commands.
Starting and Stopping the SNMP Subagent Using WLST
To start the SNMP subagent on one or more nodes, run the otd_startSnmpSubAgent
command, as shown in the following example:
# Online props = {} props['machine-name'] = 'abc123.example.com' otd_startSnmpSubAgent(props) # Offline props = {} props['domain-home'] = '/export/domains/otd_domain' otd_startSnmpSubAgent(props)
To stop the SNMP subagent on one or more nodes, run the sotd_stopSnmpSubAgent
command, as shown in the following example:
# Online props = {} props['machine-name'] = 'host.example.com' otd_stopSnmpSubAgent(props) # Offline props = {} props['domain-home'] = '/export/domains/otd_domain' otd_stopSnmpSubAgent(props)
For more information about the custom WLST commands mentioned in this section, see WebLogic Scripting Tool Command Reference for Oracle Traffic Director.
You can view statistics collected by the SNMP subagent, by using the snmpwalk
command-line utility that is available in the Net-SNMP suite of applications (http://www.net-snmp.org
).
Note:
The prerequisites for using snmpwalk
are as follows:
For Linux: Make sure the contents snmpwalk package net-snmp-utils-5.3.2.2-9.0.1.el5_5.1
RPM or higher and standard MIBS package net-snmp-5.3.2.2-9.0.1.el5_5.1
RPM or higher are installed.
For Solaris: Make sure the package located at system/management/snmp/net-snmp
is installed. This package contains contents snmpwalk and standards MIBS.
Simplifying Commands by Setting Defaults
Before using snmpwalk
, if required, you can set most of the snmpwalk
options in the snmp.conf
file, located at ~/.snmp/snmp.conf
.
The advantage of setting various options in snmp.conf
is that after setting the options, you can run the snmpwalk
command without specifying the options that are already set in snmp.conf
. The snmp.conf
enables you to set the following options:
default options | |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
snmpwalk with defaults |
---|
|
snmpwalk output
When you run the snmpwalk
command, the output would be as follows:
ORACLE-TRAFFICDIRECTOR-MIB::originServerName.1.1.0 = STRING:
http://example.us.oracle.com:4000
ORACLE-TRAFFICDIRECTOR-MIB::originServerType.1.1.0 = STRING: generic
(Oracle-iPlanet-Web-Server/7.0)
ORACLE-TRAFFICDIRECTOR-MIB::originServerStatus.1.1.0 = INTEGER: online(1)
ORACLE-TRAFFICDIRECTOR-MIB::originServerDiscoveredStatus.1.1.0 =
INTEGER: false(2)
ORACLE-TRAFFICDIRECTOR-MIB::originServerRampedupStatus.1.1.0 = INTEGER:
true(1)
ORACLE-TRAFFICDIRECTOR-MIB::originServerBackupStatus.1.1.0 = INTEGER:
active(1)
ORACLE-TRAFFICDIRECTOR-MIB::originServerTimeOnline.1.1.0 = Counter64:
1566 seconds
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountDetectedOffline.1.1.0 =
Counter32: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountBytesTransmitted.1.1.0 =
Counter64: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountBytesReceived.1.1.0 =
Counter64: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountActiveConnections.1.1.0 =
Gauge32: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountIdleConnections.1.1.0 =
Gauge32: 2
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountActiveStickyConnections.1.1.0
= Gauge32: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountClosedConnections.1.1.0 =
Counter64: 100
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountClosedConnectionsByOriginServer.1.1.0
= Counter64: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountConnectAttempts.1.1.0 =
Counter64: 102
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountConnectFailures.1.1.0 =
Counter64: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountRequestsAborted.1.1.0 =
Counter64: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountRequestsTimedout.1.1.0 =
Counter64: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountRequests.1.1.0 = Counter64: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountHealthCheckRequests.1.1.0 =
Counter64: 102
ORACLE-TRAFFICDIRECTOR-MIB::originServerCountStickyRequests.1.1.0 =
Counter64: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerDynamicWeight.1.1.0 = STRING: 1.00
ORACLE-TRAFFICDIRECTOR-MIB::originServerSecondsKeepAliveTimeout.1.1.0 =
Counter64: 0 seconds
ORACLE-TRAFFICDIRECTOR-MIB::originServerMillisecondsConnectionActiveAverage.1.1.0
= STRING: milliseconds
ORACLE-TRAFFICDIRECTOR-MIB::originServerServerPoolName.1.1.0 = STRING:
origin-server-pool-1
ORACLE-TRAFFICDIRECTOR-MIB::originServerInstanceName.1.1.0 = STRING:
otd_test_partha-Latitude-E7440
ORACLE-TRAFFICDIRECTOR-MIB::originServerRequests1MinuteAverage.1.1.0 =
STRING: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerRequests5MinuteAverage.1.1.0 =
STRING: 0
ORACLE-TRAFFICDIRECTOR-MIB::originServerRequests15MinuteAverage.1.1.0 =
STRING: 0
Each line in the output shows the value of a metric, but because the OID is shown in numeric format, it is difficult to identify the name of the specific metric. The snmpwalk
utility can resolve numeric OIDs to textual names by using the management information base (MIB) definitions. For Oracle Traffic Director, the MIB definitions file is available in the following directory:
ORACLE_HOME/lib/snmp/ORACLE-TRAFFICDIRECTOR-MIB.txt
For a list of the SNMP MIB object names that you can use to query for specific statistics, see Metrics Tracked by Oracle Traffic Director.
For more information about snmpwalk
, see the documentation at: http://www.net-snmp.org/docs/man/snmpwalk.html
.
The Oracle Dynamic Monitoring Service (DMS) provides a set of Java and C APIs that measure and report performance metrics, trace performance and provide a context correlation service for Fusion Middleware and other Oracle products. Apart from the APIs, DMS provides interfaces to enable application developers, support analysts, system administrators and others to measure application-specific performance information.
The DMS metrics for OTD are available as a set of metric tables (see DMS Metrics Tables). The monitoring data is exposed to DMS via a single Component Metric MBean. When DMS requests for monitoring data for an OTD instance, a plugin (MetricsPlugin
) is invoked on the corresponding node manager to retrieve the statistics from the specified OTD instance. The plugin communicates with the OTD instance via native OTD interfaces to retrieve the monitoring data. The monitoring data returned from the node manager is cached on the administration server for a period of 5 seconds, during which time any request from DMS for monitoring data is satisfied from the cache.
You can view the DMS Metrics using a variety of interfaces including the DMS Spy Servlet and Oracle Fusion Middleware Control. You can also view metrics using the DMS custom WLST commands. See DMS Custom WLST Commands in WLST Command Reference for Infrastructure Components.
Example 12-1 Viewing DMS Metrics Using Custom DMS WLST Commands
# View metrics for all OTD instances displayMetricTables('OTD_*') # View origin server metrics for all instances displayMetricTables('OTD_OriginServer') # Get list of metric tables for a specific instance displayMetricTableNames(servers='/OTD/otd_test_myserver.example.com') # View all metrics for a specific instance displayMetricTables(servers='/OTD/otd_test_myserver.example.com') # View instance metrics for a specific instance displayMetricTables('OTD_Instance', servers='/OTD/otd_test_myserver.example.com') # Dump all metrics for a specific instance dumpMetrics(servers='/OTD/otd_test_myserver.example.com')
This section contains a sample statistics report in XML format, which you can view by using the otd_getStatsXml
command or through a URI. For more information, see Viewing Statistics Using WLSTand Viewing stats-xml and perfdump Reports Through a Browser.
Note that the values shown in this sample report might not be meaningful. The sample report is provided here merely to indicate the metrics that the report includes and to give you a general idea about the format and structure of the report.
<?xml version="1.0" encoding="utf-8"?> <stats versionMajor="1" versionMinor="3" flagEnabled="1"> <server id="otd_test_otd_Machine_1" versionServer="Oracle Traffic Director 12.2.1.2.0 B160911.182037 (Linux)" timeStarted="1475563593" secondsRunning="8209" ticksPerSecond="1000" maxProcs="1" maxThreads="256" flagProfilingEnabled="1" load1MinuteAverage="0.030000" load5MinuteAverage="0.020000" load15MinuteAverage="0.050000" rateBytesTransmitted="7225" rateBytesReceived="1596" requests1MinuteAverage="0.016667" requests5MinuteAverage="0.003333" requests15MinuteAverage="0.000000" errors1MinuteAverage="0.000000" errors5MinuteAverage="0.000000" errors15MinuteAverage="0.000000" responseTime1MinuteAverage="1.000000" responseTime5MinuteAverage="1.000000" responseTime15MinuteAverage="0.000000"> <connection-queue id="cq1"/> <thread-pool id="thread-pool-0" name="NativePool"/> <profile id="profile-0" name="all-requests" description="All requests"/> <profile id="profile-1" name="default-bucket" description="Default bucket"/> <profile id="profile-2" name="cache-bucket" description="Cached responses"/> <process pid="19949" mode="active" timeStarted="1475563593" countConfigurations="3" sizeVirtual="1191404" sizeResident="15788" fractionSystemMemoryUsage="0.0022"> <connection-queue connectionQueueId="cq1" countTotalConnections="9" countQueued="0" peakQueued="1" maxQueued="1536" countOverflows="0" countTotalQueued="9" ticksTotalQueued="1" count Queued1MinuteAverage="0.000000" co untQueued5MinuteAverage="0.000000" countQueued15MinuteAverage="0.000000"/> <thread-pool threadPoolId="thread-pool-0" countIdleThreads="1" countThreads="1" maxThreads="128" countQueued="0" peakQueued="0" maxQueued="0"/> <dns flagCacheEnabled="1" countCacheEntries="0" maxCacheEntries="1024" countCacheHits="0" countCacheMisses="0" flagAsyncEnabled="0" countAsyncNameLookups="0" countAsyncAddrLookups="0" countAsyncLookupsInProgress="0"/> <keepalive countConnections="1" maxConnections="3072" countHits="0" countFlushes="0" countRefusals="0" countTimeouts="0" secondsTimeout="30"/> <compression countRequests="0" bytesInput="0" bytesOutput="0" compressionRatio="0.000000" pageCompressionAverage="0.000000"/> <decompression countRequests="0" bytesInput="0" bytesOutput="0"/> <thread mode="idle" type="sync" asyncState="async-none" timeStarted="1475563593" connectionQueueId="keep-alive"> <request-bucket countRequests="0" countBytesReceived="0" countBytesTransmitted="0" count2xx="0" count3xx="0" count4xx="0" count5xx="0" countOther="0" count200="0" count302="0" count30 4="0" count400="0" count401="0" count403="0" count404="0" count503="0"/> <profile-bucket profile="profile-0" countCalls="0" countRequests="0" ticksDispatch="0" ticksFunction="0"/> <profile-bucket profile="profile-1" countCalls="0" countRequests="0" ticksDispatch="0" ticksFunction="0"/> <profile-bucket profile="profile-2" countCalls="0" countRequests="0" ticksDispatch="0" ticksFunction="0"/> </thread><thread mode="idle" type="sync" asyncState="async-none" timeStarted="1475563593" connectionQueueId="keep-alive"> <request-bucket countRequests="0" countBytesReceived="0" countBytesTransmitted="0" count2xx="0" count3xx="0" count4xx="0" count5xx="0" countOther="0" count200="0" count302="0" count304="0" count400="0" count401="0" count403="0" count404="0" count503="0"/> <profile-bucket profile="profile-0" countCalls="0" countRequests="0" ticksDispatch="0" ticksFunction="0"/> <profile-bucket profile="profile-1" countCalls="0" countRequests="0" ticksDispatch="0" ticksFunction="0"/> <profile-bucket profile="profile-2" countCalls="0" countRequests="0" ticksDispatch="0" ticksFunction="0"/> </thread> <thread mode="response" type="sync" asyncState="async-none" timeStarted="1475563593" function="stats-xml" connectionQueueId="cq1" virtualServerId="test" timeRequestStarted="1475572257009438"> <request-bucket method="GET" uri="/stats-xml" countRequests="5" countBytesReceived="1435" countBytesTransmitted="22730" count2xx="4" count3xx="0" count4xx="0" count5xx="1" countOther="0" count200="4" count302="0" count304="0" count400="0" count401="0" count403="0" count404="0" count503="0"/> <profile-bucket profile="profile-0" countCalls="48" countRequests="5" ticksDispatch="1" ticksFunction="7581"/> <profile-bucket profile="profile-1" countCalls="48" countRequests="5" ticksDispatch="1" ticksFunction="7581"/> <profile-bucket profile="profile-2" countCalls="0" countRequests="0" ticksDispatch="0" ticksFunction="0"/> </thread> <thread mode="idle" type="sync" asyncState="async-none" timeStarted="1475563593" connectionQueueId="cq1"> <request-bucket countRequests="4" countBytesReceived="784" countBytesTransmitted="19544" count2xx="4" count3xx="0" count4xx="0" count5xx="0" countOther="0" count200="4" count302="0" count304="0" count400="0" count401="0" count403="0" count404="0" count503="0"/> <profile-bucket profile="profile-0" countCalls="36" countRequests="4" ticksDispatch="1" ticksFunction="1"/> <profile-bucket profile="profile-1" countCalls="36" countRequests="4" ticksDispatch="1" ticksFunction="1"/> <profile-bucket profile="profile-2" countCalls="0" countRequests="0" ticksDispatch="0" ticksFunction="0"/> </thread> </process> <virtual-server id="test" flagEnabled="1"> <request-bucket method="GET" uri="/.perf" countRequests="9" countBytesReceived="2219" countBytesTransmitted="42274" count2xx="8" count3xx="0" count4xx="0" count5xx="1" countOther="0" count200="8" count302="0" count304="0" count400="0" count401="0" count403="0" count404="0" count503="0"/> <profile-bucket profile="profile-0" countCalls="84" countRequests="9" ticksDispatch="2" ticksFunction="7582"/> <profile-bucket profile="profile-1" countCalls="84" countRequests="9" ticksDispatch="2" ticksFunction="7582"/> <profile-bucket profile="profile-2" countCalls="0" countRequests="0" ticksDispatch="0" ticksFunction="0"/> <webapp-firewall countRequestsIntercepted="0" countRequestsAllowed="0" countRequestsDenied="0" countRequestsDropped="0" countRequestsRedirected="0" countRequestsDenyDetected="0" countRequestsDropDetected="0" countRequestsRedirectDetected="0"/> <websocket countUpgradeRequests="0" countUpgradeRequestsFailed="0" countUpgradeRequestsRejected="0" countActiveConnections="0" countRequestsAborted="0" countRequestsTimedout="0" countBytesReceived="0" countBytesTransmitted="0" millisecondsConnectionActiveAverage="0"/> <route id="default-route" condition="default"> <request-bucket countRequests="2" countBytesReceived="390" countBytesTransmitted="715" count2xx="1" count3xx="0" count4xx="0" count5xx="1" countOther="0" count200="1" count302="0" count304="0" count400="0" count401="0" count403="0" count404="0" count503="0"/> </route> </virtual-server> <server-pool name="origin-server-pool-1" type="http" countRetries="9"> <service-queue countQueued="0" countQueuedHighPriority="0" countQueuedNormalPriority="0" countQueuedLowPriority="0" countQueuedTimedout="0" countTotalQueued="0" countTotalQueuedHighPriority="0" countTotalQueuedNormalPriority="0" countTotalQueuedLowPriority="0" countTotalQueuedSticky="0" countTotalStickyToNonSticky="0" millisecondsQueuedHighPriorityAverage="0" millisecondsQueuedNormalPriorityAverage="0" millisecondsQueuedLowPriorityAverage="0"/> <origin-server name="http://example.us.oracle.com:4000" status="online" flagDiscovered="0" flagRampedUp="1" type="generic (Oracle-iPlanet-Web-Server/7.0)" flagBackup="0" secondsOnline="6774" countDetectedOffline="1" countConnectAttempts="339" countConnectFailures="120" countClosedConnections="218" countConnectionsClosedByOriginServer="0" countActiveConnections="0" countIdleConnections="1" countActiveStickyConnections="0" secondsKeepAliveTimeout="0" countRequestsAborted="0" countRequestsTimedout="0" countStickyRequests="0" countRequests="1" countHealthCheckRequests="218" countBytesTransmitted="508" countBytesReceived="484" weightResponseTime="1.00" requests1MinuteAverage="0.000000" requests5MinuteAverage="0.000000" requests15MinuteAverage="0.000000"> <websocket countUpgradeRequests="0" countUpgradeRequestsFailed="0" countUpgradeRequestsRejected="0" countActiveConnections="0" countRequestsAborted="0" countRequestsTimedout="0" countBytesReceived="0" countBytesTransmitted="0" millisecondsConnectionActiveAverage="0"/> </origin-server> </server-pool> <cache flagEnabled="1" countEntries="0" sizeHeapCache="16580" countContentHits="0" countContentMisses="0" countHits="0" countRevalidationRequests="0" countRevalidationFailures="0"/> <cpu-info cpu="1" percentIdle="99.283209" percentUser="0.501040" percentKernel="0.215751"/> <cpu-info cpu="2" percentIdle="99.234605" percentUser="0.540530" percentKernel="0.224865"/> </server> </stats>
This section contains a sample perfump statistics report that you can view by using the otd_getPerfDump
command or through a URI. For information about viewing the plain-text report, see Viewing Statistics Using WLST and Viewing stats-xml and perfdump Reports Through a Browser .
Note that the values shown in this sample report might not be meaningful. The sample report is provided here merely to indicate the metrics that the report includes and to give you a general idea about the format of the report.
Oracle Traffic Director 12.2.1.2.0 B160911.182037 (Linux) Server started Mon Oct 03 23:46:32 2016 Process 19949 started Mon Oct 03 23:46:32 2016 ConnectionQueue Current/Peak/Limit Queue Length 0/1/1536 Total Connections Queued 8 Average Queue Length (1, 5, 15 minutes) 0.00, 0.00, 0.00 Average Queuing Delay 0.12 milliseconds HTTP Listener http-listener-1 Address 0.0.0.0:8080 Acceptor Threads 1 Default Virtual Server test KeepAliveInfo KeepAliveCount 0/3072 KeepAliveHits 0 KeepAliveFlushes 0 KeepAliveRefusals 0 KeepAliveTimeouts 0 KeepAliveTimeout 30 seconds SessionCreationInfo Active Sessions 1 Keep-Alive Sessions 0 Keep-Alive threads 2 Active Async Sessions 0 HTTP Sessions current/max 4/258 TCP Sessions current/max 2/2 Cache Cache Enabled yes Object Cache Entries 0 Cache lookup (hits/misses) 0/0 Requests served from Cache 0 Revalidation (successful/total) 0/0 ( 0.00%) Heap space used 16580 Thread Pool NativePool Idle/Peak/Limit 1/1/128 Work Queue Length/Peak/Limit 0/0/0 DNSCacheInfo enabled yes CacheEntries 0/1024 HitRatio 0/0 ( 0.00%) Async DNS disabled Performance Counters Total number of requests 8 Average Request processing time 0.9479 Total Request processing time 7.5830 default-bucket (Default bucket) Counter Name Average Total Percent ------------------------------------------------------------- Number of Requests 8 (100.00%) Number of Invocations 75 (100.00%) Latency 0.0003 0.0020 ( 0.03%) Function Processing Time 0.9476 7.5810 ( 99.97%) Total Response Time 0.9479 7.5830 (100.00%) HTTP Origin Servers Pool-name Host:Port Status ActiveConn IdleConn StickyConn Timeouts Aborted Sticky-Reqs Total-Reqs BytesTrans BytesRecvd ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- origin-server-pool-1 http://example.us.oracle.com:4000 online 0 1 0 0 0 0 1 508 484 TCP Origin Servers No TCP origin servers are configured Sessions Process Session Status Async-state Client Age VS Method URI Function Origin-Server -------------------------------------------------------------------------------------------------------------- 19949 sync response - 148.87.19.37 1 test GET /.perf service-dump/ - TCP Proxy Active Connections 0 Avg Duration 0.00 seconds Requests (timeout/aborted/total) 0/0/0 SSL session cache statistics (global) Total SSL sessions stored since starting: 0 Total SSL sessions expired since starting: 0 Total (pre-expiry) SSL sessions scrolled out of the cache: 0 Total SSL session retrieves since starting: 0 hits, 0 misses Total SSL session removes since starting: 0 hits, 0 misses