Oracle Traffic Director records statistics about server activity at different levels—instances, virtual servers, listeners, connections, and origin servers. For example, for each instance of a configuration, Oracle Traffic Director collects statistics about the duration for which the instance has been running, number of requests processed, volume of data received and sent, number of responses that the instance sent of each type, average load, and so on. Similarly for each virtual server in an instance, Oracle Traffic Director collects statistics about the number of requests processed, volume of data received and sent, and the number of responses of each type. For a full list of the metrics that Oracle Traffic Director collects, see Appendix A, "Metrics Tracked by Oracle Traffic Director."
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 Section 12.4, "Viewing Statistics Using WLST," and Section 12.7, "Monitoring Using DMS." |
Administration server must be running. |
Enabled by default. Accessible even when request-processing threads are hanging. |
Browser
See Section 12.5, "Viewing stats-xml and perfdump Reports Through a Browser." |
Must be enabled and configured explicitly. See Section 12.3, "Configuring URI Access to Statistics Reports." |
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 Section 1.7.1, "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:
Log in to Fusion Middleware Control, as described in Section 1.7.2, "Displaying Fusion Middleware Control."
Click the WebLogic Domain button at the upper left corner of the page.
Select Administration > OTD Configurations.
A list of the available configurations is displayed.
Select the configuration for which you want to configure statistics-collection settings.
Click the Traffic Director Configuration In the Common Tasks pane.
Select Administration > virtual server.
The Virtual Servers page is displayed. It shows a list of the virtual servers defined for the configuration.
Select the name of the virtual server you want to configure.
Select Settings > Monitoring.
Go to the Statistics Collection section of the page.
Specify the parameters that you want to change.
Note:
When deciding the statistics-collection interval, remember that frequent collection of statistics affects performance.On-screen help and prompts are provided for all of the parameters.
When you change the value in a field or tab out of a text field that you changed, the Apply button near the upper right corner of the page is enabled.
At any time, you can discard the changes by clicking the Revert button.
After making the required changes, click Apply.
A message, confirming that the updated configuration was saved, is displayed in the Console Messages pane.
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 about otd_getStatsProperties
and otd_setStatsProperties
, see WebLogic Scripting Tool Command Reference for Oracle Traffic Director.
As described in Section 12.1, "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 Section 12.8, "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 Section 12.9, "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:
Log in to Fusion Middleware Control, as described in Section 1.7.2, "Displaying Fusion Middleware Control."
Click the WebLogic Domain button at the upper left corner of the page.
Select Administration > OTD Configurations.
A list of the available configurations is displayed.
Select the configuration for which you want to configure URI-based reports.
Click the Traffic Director Configuration In the Common Tasks pane.
Select Administration > virtual server.
The Virtual Servers page is displayed. It shows a list of the virtual servers defined for the configuration.
Select the name of the virtual server you want to configure.
Select Settings > Monitoring.
Select Settings > Advanced Settings
Go to the Monitoring section of the page.
To enable URI-based reporting in XML format, select the XML Report check box and specify a valid URI.
To enable URI-based reporting in plain-text format, select the Plain Text Report check box and specify a valid URI for the report.
On-screen help and prompts are provided for all of the parameters.
When you change the value in a field or tab out of a text field that you changed, the Apply button near the upper right corner of the page is enabled.
At any time, you can discard the changes by clicking the Revert button.
After making the required changes, click Apply.
A message, confirming that the updated configuration was saved, is displayed in the Console Messages pane.
Configuring URI Access to Statistics in XML Format Using WLST
Note:
For information about invoking WLST, see Section 1.7.1, "Accessing WebLogic Scripting Tool."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.
Note:
For information about invoking WLST, see Section 1.7.1, "Accessing WebLogic Scripting Tool."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 Section 12.8, "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 Section 12.9, "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 Section 12.7, "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 Section 12.3, "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.
You can use SNMP to monitor the Oracle Traffic Director instances. 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:
Log in to Fusion Middleware Control, as described in Section 1.7.2, "Displaying Fusion Middleware Control."
Click the WebLogic Domain button at the upper left corner of the page.
Select Administration > OTD Configurations.
A list of the available configurations is displayed.
Select the configuration for which you want to enable SNMP support.
Click the Traffic Director Configuration In the Common Tasks pane.
Select Advanced Configuration > Settings.
The Settings page is displayed, scroll down It shows a SNMP settings.
In the SNMP section of the page, select the SNMP check box Enabled. The other parameters in the section are optional.
On-screen help and prompts are provided for all of the parameters.
When you change the value in a field or tab out of a text field that you changed, the Apply button near the upper right corner of the page is enabled.
At any time, you can discard the changes by clicking the Revert button.
After making the required changes, click Apply.
A message, confirming that the updated configuration was saved, is displayed in the Console Messages pane.
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 about the custom WLST commands mentioned in this section, see 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:
INSTANCE_HOME/admin-server/config/snmpagt.conf
You can configure the SNMP subagent's settings by editing the snmpagt.conf
file. Table 12-2 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.
SNMP is not defaultly configured on installation, there is no access control added to OTD SNMP. To provide access control User need to add one or more snmp v3 users.
To start or stop the SNMP subagent on a node by using the Fusion Middleware Control, do the following:
Stop the snmp agent if running and add the following lines
Persistent file<oracle_home>/otd_domain/config/fmwconfig/components/OTD/snmp/store/ snmpagt.conf |
---|
createUser username SHA authpassphrase [DES|AES] [privpassphrase] |
SHA is the authentication types to use
DES and AES are the privacy protocols to use
authpassphrase is the password to authenticate the username
privpassphrase is the password to encrypt the snmp request and response
Configuration file<oracle_home>/otd_domain/config/fmwconfig/components/OTD/snmp/config /snmpagt.conf |
---|
rouser username [noauth|auth|priv] |
User can configure authentication level.
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 as mentioned, OTD SNMP agent need to start and stop once. While stopping user authentication parameters provided in "createUser" line will be encrypted and stored in to the persistent file.
Start the OTD SNMP agent. Make sure to start one or more instances.
Run the snmpwalk command. User can run the snmpcmd from remote host too.
snmpcmd(snmpwalk/snmpget) |
---|
snmpwalk -m <path to OTD mib>/ORACLE-TRAFFICDIRECTOR-MIB.txt -v 3 -u username -l<authentication level> -a SHA -A authpassphrase -x (DES|AES) -X privpassphrase <hostname>:11161 ORACLE-TRAFFICDIRECTOR-MIB::originServerTable |
Simple enough. Just remove the entries from the conf file and persistent file.
Simplifying commands by setting defaults
The most of the command line of snmpwalk can be added in to ~/.snmp/snmp.conf.
default options | |
---|---|
defSecurityNam |
SNMPv3 username |
defAuthType |
authentication method (either MD5 or SHA) |
defSecurityLevel |
security level for the user. i.e authNoPriv, authPriv etc |
defAuthPassphrase |
authpassphrase |
defPrivType |
privacy protocol to use. DES|AES |
defPrivPassphrase |
privpassphrase |
defVersion |
3 |
defaultport |
11161 |
mibirds |
+<path to ORACLE-TRAFFICDIRECTOR-MIB.txt> |
mibs |
+ORACLE-TRAFFICDIRECTOR-MIB |
OTD SNMP supports agentx protocol and for communicate as agentx, it needs another SNMP agent which supports agentx. OS SNMP agent (snmpd) of OEL 6 and Solaris 11 supports agentx. When OTD SNMP runs as agentx, It can not accept snmpcmds. All the requests should be made to the SNMP agent which is running as master. Master agent will for forward the requests to the OTD SNMP agent.
Configure OTD SNMP agent as agentx
The user can modify the transport layer as specified in man page of snmpd. OTD SNMP default agentx transport specifier is below:
agentxsocket tcp:127.0.0.1:705
Configure OS SNMP agent as agentx
/etc/snmp/snmpd.conf |
---|
master agentxagentxsocket tcp:127.0.0.1:705 |
snmpd daemon must be started manually and connection details are logged in snmpd.log, snmp requests should be sent to snmp port of snmpd(default 161).
You can start and stop the SNMP subagent on a node by using either Fusion Middleware Control or the WLST.
Starting and Stopping the SNMP Subagent Using Fusion Middleware Control
To start or stop the SNMP subagent on a node by using the Fusion Middleware Control, do the following:
Log in to Fusion Middleware Control, as described in Section 1.7.2, "Displaying Fusion Middleware Control."
Click the Nodes button that is situated near the upper left corner of the page.
A list of available nodes is displayed.
From the list of nodes, select the node for which you want to start or stop the SNMP subagent.
The General Settings page is displayed.
To start the SNMP subagent, click Start SNMP Subagent. The status changes to Running.
To stop the subagent, click Stop SNMP Subagent. The status changes to Running.
Specify the parameters that you want to change, and then click Save.
A message is displayed in the Console Messages pane indicating that the updated settings are saved.
Restart the administration server by clicking Restart in the Common Tasks pane.
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)
Note:
Alternatively, you can start the SNMP agent in agentx mode, by configuring the sub-agent configuration file.In agentx mode, the SNMP agent needs to communicate with the operating-system master agent (snmpd
). So you must configure snmpd
to listen to the agentx protocol, by doing the following:
Enable agentx by adding the following token to the operating-system master agent (snmpd
) located at (/etc/snmp/snmpd.conf
). This token enables the master agent to connect to the agentx paths you specify.
master agentx
Specify the socket path and socket path permissions in the ORACLE_HOME
/admin-server/config/snmpagt.conf
file, as shown in the following example:
Before configuring for agentx
agentuser admin123 agentxsocket /tmp/snmpagt-e6d7cd20/snmpagt.socket
After configuring for agentx
agentxsocket /tmp/snmpagt-e6d7cd20/snmpagt.socket agentxperms 0755 0755 admin123 admin123
Start snmpd
daemon manually.
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.
Note:
The prerequisites for usingsnmpwalk
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.
Note:
Prior to usingsnmpwalk
, if required, you can set most of the snmpwalk
options in the snmp.conf
file, located at <user-home>/.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
. For example, snmp.conf
enables you to set the following options:
defaultport 11161 defversion 3 defcommunity public mibdirs +<path to ORACLE-TRAFFICDIRECTOR-MIB.txt> # mibdirs + <otd_install_root>/lib/snmp # mibs +ORACLE-TRAFFICDIRECTOR-MIB
After setting the above options, snmpwalk
can be run as follows:
snmpwalk <hostname> ORACLE-TRAFFICDIRECTOR-MIB::originServerTable
For information about all the options that can be set using snmp.conf, see the man-pages for snmp.conf.
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
).
The following is the syntax of the snmpwalk
command:
> snmpwalk -c public -v 3 host:port oid
host
is the host name of the Oracle Traffic Director node that you want to monitor.
port
is the listen port of the SNMP subagent on the node. The default port specified in the snmpagt.conf
file is 11161
.
oid
is the unique object identifier series for which you want to view statistics. The OID for the Oracle Traffic Director product is 1.3.6.1.4.1.111.19.190
.
Note:
OIDs are assigned and maintained by the Internet Assigned Numbers Authority. In the OID for Oracle Traffic Director, the first six numbers,1.3.6.1.4.1
, represent private enterprises, 111
is the unique identifier for Oracle and 19.190
represents the Oracle Traffic Director product. For more information about the structure of OIDs, see RFC 2578 (http://tools.ietf.org/html/rfc2578
).To monitor statistics by using SNMP v3, do the following:
Create an SNMP v3 user by running the following command as the root
user:
$ sudo net-snmp-config --create-snmpv3-user -ro -a SHA1 -A abcd1234 otdadmin
This command does the following:
Adds the following entry in /var/net-snmp/snmpd.conf
:
createUser otdadmin SHA1 "abcd1234" DES
Adds the following entry in /etc/net-snmp/snmp/snmpd.conf
:
rouser otdadmin
Start and stop snmpd
.
$ sudo /etc/init.d/snmpd start Starting snmpd: [ OK ] $ sudo /etc/init.d/snmpd stop Stopping snmpd: [ OK ]
As a result of starting and stopping snmpd
, the createUser
entry in the /var/net-snmp/snmpd.conf
file changes as shown in the following example:
usmUser 1 3 0x80001f8801819ee527 0x676164686100 0x676164686100 NULL
.1.3.6.1.6.3.10.1.1.2
0x8b6a9b458c0cb628aa5ba10ebbec48e7 .1.3.6.1.6.3.10.1.2.2
0x8b6a9b458c0cb628aa5ba10ebbec48e7 ""
In this example, 0x80001f8801819ee527
is the generated engine ID.
Run the SNMP agent in agentx mode.
Run snmpwalk
by using the following command. The default port for snmpd is 161
snmpwalk -v3 -u otdadmin -l authNoPriv -a SHA1 -A abcd1234 localhost:161 1.3.6.1.4.1
Enabling the snmpwalk Command to Show MIB Object Names Instead of Numeric OIDs
When you run the snmpwalk
command, the output would be as follows:
SNMPv2-SMI::enterprises.111.19.190.1.20.1.2.0.0 = INTEGER: 645 SNMPv2-SMI::enterprises.111.19.190.1.20.1.3.0.0 = Gauge32: 4 SNMPv2-SMI::enterprises.111.19.190.1.20.1.4.0.0 = Gauge32: 4 SNMPv2-SMI::enterprises.111.19.190.1.20.1.10.0.0 = Gauge32: 0 SNMPv2-SMI::enterprises.111.19.190.1.20.1.11.0.0 = Gauge32: 3072 SNMPv2-SMI::enterprises.111.19.190.1.20.1.12.0.0 = Counter64: 0 SNMPv2-SMI::enterprises.111.19.190.1.20.1.13.0.0 = Counter64: 0 SNMPv2-SMI::enterprises.111.19.190.1.20.1.14.0.0 = STRING: "0.0000"
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
To enable the snmpwalk
command to show MIB object names instead of numeric OIDs, do one of the following:
Set the MIBS
environment variable on the host to point to the Oracle Traffic Director MIB.
> set env MIBS=+ORACLE-TRAFFICDIRECTOR-MIB
Then, run the snmpwalk
command and either grep
the output for the required MIB object or explicitly specify the required MIB object name.
For example, to view statistics for proxy cache parameters for an Oracle Traffic Director instance running on the node app1
, run the following command:
> snmpwalk snmpwalk -c public -v 2c app1:11161 ORACLE-TRAFFICDIRECTOR-MIB::proxyCacheTable
ORACLE-TRAFFICDIRECTOR-MIB::proxyCacheEnabledFlag.0.0 = INTEGER: enabled(1)
ORACLE-TRAFFICDIRECTOR-MIB::proxyCacheCountEntries.0.0 = Counter64: 0
ORACLE-TRAFFICDIRECTOR-MIB::proxyCacheSizeHeap.0.0 = Counter64: 16498
ORACLE-TRAFFICDIRECTOR-MIB::proxyCacheCountContentHits.0.0 = Counter64: 0
ORACLE-TRAFFICDIRECTOR-MIB::proxyCacheCountContentMisses.0.0 = Counter64: 0
ORACLE-TRAFFICDIRECTOR-MIB::proxyCacheCountHits.0.0 = Counter64: 0
...
Specify the Oracle Traffic Director MIB explicitly for the snmpwalk
command by using the -m
option.
For example, to view the origin-server names for an Oracle Traffic Director instance running on the local host, run the following command:
> snmpwalk -c public -v 2c -m $ORACLE_HOME/lib/snmp/ORACLE-TRAFFICDIRECTOR-MIB.txt localhost:11161 ORACLE-TRAFFICDIRECTOR-MIB::originServerName
For a list of the SNMP MIB object names that you can use to query for specific statistics, see Appendix A, "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 Section 12.4, "Viewing Statistics Using WLST" and Section 12.5, "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_OTD_rechaita" versionServer="Oracle Traffic Director 12.2.1.0.0 B20150908.132940 (Linux)" timeStarted="1442991226" secondsRunning="119" ticksPerSecond="1000" maxProcs="1" maxThreads="512" flagProfilingEnabled="1" load1MinuteAverage="0.070000" load5MinuteAverage="0.070000" load15MinuteAverage="0.050000" rateBytesTransmitted="10087" rateBytesReceived="4929" requests1MinuteAverage="0.000000" requests5MinuteAverage="0.000000" requests15MinuteAverage="0.000000" errors1MinuteAverage="0.000000" errors5MinuteAverage="0.000000" errors15MinuteAverage="0.000000" responseTime1MinuteAverage="0.000000" responseTime5MinuteAverage="0.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="7236" mode="active" timeStarted="1442991226" countConfigurations="1" sizeVirtual="862916" sizeResident="32288" fractionSystemMemoryUsage="0.0022"> <connection-queue connectionQueueId="cq1" countTotalConnections="0" countQueued="0" peakQueued="0" maxQueued="12288" countOverflows="0" countTotalQueued="0" ticksTotalQueued="0" countQueued1MinuteAverage="0.000000" countQueued5MinuteAverage="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="0" maxConnections="24576" 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" timeStarted="1442991226" 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="idle" timeStarted="1442991226" 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="idle" timeStarted="1442991226" 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="idle" timeStarted="1442991226" 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="idle" timeStarted="1442991226" connectionQueueId="cq1"> <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="idle" timeStarted="1442991226" connectionQueueId="cq1"> <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="idle" timeStarted="1442991226" connectionQueueId="cq1"> <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="idle" timeStarted="1442991226" connectionQueueId="cq1"> <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> </process> <virtual-server id="OTD" flagEnabled="1"> <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"/> <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="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"/> </route> </virtual-server> <virtual-server id="virtual-server-1" flagEnabled="1"> <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"/> <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="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"/> </route> </virtual-server> <cache flagEnabled="1" countEntries="0" sizeHeapCache="16516" countContentHits="0" countContentMisses="0" countHits="0" countRevalidationRequests="0" countRevalidationFailures="0"/> <cpu-info cpu="1" percentIdle="99.268188" percentUser="0.426176" percentKernel="0.305636"/> <cpu-info cpu="2" percentIdle="99.476388" percentUser="0.336554" percentKernel="0.187058"/> <cpu-info cpu="3" percentIdle="99.518723" percentUser="0.300850" percentKernel="0.180426"/> <cpu-info cpu="4" percentIdle="99.537347" percentUser="0.292632" percentKernel="0.170021"/> </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 Section 12.4, "Viewing Statistics Using WLST" and Section 12.5, "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.0.0 B20150908.132940 (Linux) Server started Tue Sep 22 23:53:45 2015 Process 7236 started Tue Sep 22 23:53:45 2015 ConnectionQueue Current/Peak/Limit Queue Length 0/0/12288 Total Connections Queued 0 Average Queue Length (1, 5, 15 minutes) 0.00, 0.00, 0.00 Average Queuing Delay 0.00 milliseconds HTTP Listener http-listener-1 Address 0.0.0.0:8080 Acceptor Threads 1 Default Virtual Server OTD KeepAliveInfo KeepAliveCount 0/24576 KeepAliveHits 0 KeepAliveFlushes 0 KeepAliveRefusals 0 KeepAliveTimeouts 0 KeepAliveTimeout 30 seconds SessionCreationInfo Active Sessions 0 Keep-Alive Sessions 0 Keep-Alive threads 4 HTTP Sessions current/max 8/516 TCP Sessions current/max 4/4 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 16516 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 0 Average Request processing time 0.0000 Total Request processing time 0.0000 default-bucket (Default bucket) Counter Name Average Total Percent ------------------------------------------------------------- Number of Requests 0 ( 0.00%) Number of Invocations 0 ( 0.00%) Latency 0.0000 0.0000 ( 0.00%) Function Processing Time 0.0000 0.0000 ( 0.00%) Total Response Time 0.0000 0.0000 ( 0.00%) HTTP Origin Servers No HTTP origin servers are configured TCP Origin Servers No TCP origin servers are configured TCP Proxy Active Connections 0 Avg Duration 0.00 seconds Requests (timeout/aborted/total) 0/0/0