1. Overview of GlassFish Server Administration
Default Settings and Locations
Instructions for Administering GlassFish Server
4. Administering the Virtual Machine for the Java Platform
6. Administering Web Applications
7. Administering the Logging Service
8. Administering the Monitoring Service
How the Monitoring Tree Structure Works
Tree Structure of Monitorable Objects
Viewing Common Monitoring Data
To View Common Monitoring Data
HTTP Listener Common Statistics
Viewing Comprehensive Monitoring Data
Guidelines for Using the list and get Subcommands for Monitoring
To View Comprehensive Monitoring Data
Comprehensive Monitoring Statistics
JMS/Connector Service Statistics
ORB Statistics (Connection Manager)
Resource Statistics (Connection Pool)
Transaction Service Statistics
Configuring JConsole to View GlassFish Server Monitoring Data
To Connect JConsole to GlassFish Server
9. Writing and Running JavaScript Clients to Monitor GlassFish Server
10. Administering Life Cycle Modules
11. Extending and Updating GlassFish Server
Part II Resources and Services Administration
12. Administering Database Connectivity
13. Administering EIS Connectivity
14. Administering Internet Connectivity
15. Administering the Object Request Broker (ORB)
16. Administering the JavaMail Service
17. Administering the Java Message Service (JMS)
18. Administering the Java Naming and Directory Interface (JNDI) Service
19. Administering Transactions
Monitoring is the process of reviewing the statistics of a system to improve performance or solve problems. The monitoring service can track and display operational statistics, such as the number of requests per second, the average response time, and the throughput. By monitoring the state of various components and services deployed in GlassFish Server, you can identify performance bottlenecks, predict failures, perform root cause analysis, and ensure that everything is functioning as expected. Data gathered by monitoring can also be useful in performance tuning and capacity planning.
For this release of GlassFish Server, monitoring is exposed in a modular way so that many client modules can access and display the monitoring statistics. These clients include the Administration Console, the asadmin utility, AMX, and REST interfaces.
The following topics are addressed here:
A monitorable object is a component, subcomponent, or service that can be monitored. GlassFish Server uses a tree structure to track monitorable objects. Because the tree is dynamic, the tree changes as GlassFish Server components are added or removed.
In the tree, a monitorable object can have child objects (nodes) that represent exactly what can be monitored for that object. All child objects are addressed using the dot (.) character as a separator. These constructed names are referred to as dotted names. Detailed information on dotted names is available in the dotted-names(5ASC) help page.
The following command lists the monitorable child objects of the instance server:
asadmin> list --monitor "server.*"
server.applications server.connector-service server.http-service server.jms-service server.jvm server.network server.orb server.resources server.security server.thread-pool server.transaction-service server.web
Each object is represented by a dotted name. Dotted names can also address specific attributes in monitorable objects. For example, the jvm object has a memory attribute with a statistic called maxheapsize. The following dotted name addresses the attribute:
server.jvm.memory.maxheapsize
Although an object is monitorable, it is not necessarily being actively monitored. For instructions on activating monitoring, see Configuring Monitoring.
Each monitorable object has a hierarchical tree structure. In the tree, a replaceable such as *statistics represents the name of the attribute that you can show statistics for.
The following node tree hierarchies are addressed here:
The applications tree contains the following nodes:
server.applications |--- application1 | |--- ejb-module-1 | | |--- ejb1 * | | |--- bean-cache (for entity/sfsb) * | | |--- bean-pool (for slsb/mdb/entity) * | | |--- bean-methods | | |---method1 * | | |---method2 * | | |--- timers (for s1sb/entity/mdb) * | |--- web-module-1 | | |--- virtual-server-1 * | | |---servlet1 * | | |---servlet2 * |--- standalone-web-module-1 | | |----- virtual-server-2 * | | |---servlet3 * | | |---servlet4 * | | |----- virtual-server-3 * | | |---servlet3 *(same servlet on different vs) | | |---servlet5 * |--- standalone-ejb-module-1 | | |--- ejb2 * | | |--- bean-cache (for entity/sfsb) * | | |--- bean-pool (for slsb/mdb/entity) * | | |--- bean-methods | | |--- method1 * | | |--- method2 * | | |--- timers (for s1sb/entity/mdb) * |--- jersey-application-1 | |--- jersey | | |--- resources resource-0 hitcount *statistic |--- application2
An example dotted name might be:
server.applications.hello.server.request.maxtime
An example dotted name under the EJB method node might be:
server.applications.ejbsfapp1.ejbsfapp1ejbmod1\.jar.SFApp1EJB1
An example Jersey dotted name might be:
server.applications.helloworld-webapp.jersey.resources.resource-0.hitcount.resourcehitcount-count
For available statistics, see EJB Statistics, Jersey Statistics, and Web Statistics.
The connector-service tree holds monitorable attributes for pools such as the connector connection pool. The connector-service tree contains the following nodes:
server.connector-service resource-adapter-1 connection-pools pool-1 work-management
An example dotted name might be server.connector-service.resource-adapter-1.connection-pools.pool-1. For available statistics, see JMS/Connector Service Statistics.
The http-service tree contains the following nodes:
server.http-service virtual-server request *statistic _asadmin request *statistic
An example dotted name under the virutal-server node might be server.http-service.virtual-server1.request.requestcount. For available statistics, see HTTP Service Statistics.
The jms-service tree holds monitorable attributes for connection factories (connection pools for resource adapters) and work management (for Message Queue resource adapters). The jms-service tree contains the following nodes:
server.jms-service connection-factories connection-factory-1 work-management
An example dotted name under the connection-factories node might be server.jms-service.connection-factories.connection-factory-1 which shows all the statistics for this connection factory. For available statistics, see JMS/Connector Service Statistics.
The jvm tree contains the following nodes:
server.jvm class-loading-system compilation-system garbage-collectors memory operating-system runtime
An example dotted name under the memory node might be server.jvm.memory.maxheapsize. For available statistics, see JVM Statistics.
The network statistics apply to the network listener, such as admin-listener, http-listener-1, ttp-listener-2. The network tree contains the following nodes:
server.network type-of-listener keep-alive *statistic file-cache *statistic thread-pool *statistic connection-queue *statistic
An example dotted name under the network node might be server.network.admin-listener.keep-alive.maxrequests-count. For available statistics, see Network Statistics.
The orb tree holds monitorable attributes for connection managers. The orb tree contains the following nodes:
server.orb transport connectioncache inbound *statistic outbound *statistic
An example dotted name might be server.orb.transport.connectioncache.inbound.connectionsidle-count. For available statistics, see ORB Statistics (Connection Manager).
The resources tree holds monitorable attributes for pools such as the JDBC connection pool and connector connection pool. The resources tree contains the following nodes:
server.resources connection-pool request *statistic
An example dotted name might be server.resources.jdbc-connection-pool1.numconnfree.count. For available statistics, see Resource Statistics (Connection Pool).
The security tree contains the following nodes:
server.security ejb *statistic web *statistic realm *statistic
An example dotted name might be server.security.realm.realmcount-starttime. For available statistics, see Security Statistics.
The thread-pool tree holds monitorable attributes for connection managers, and contains the following nodes:
server.thread-pool orb threadpool thread-pool-1 *statistic
An example dotted name might be server.thread-pool.orb.threadpool.thread-pool-1.averagetimeinqueue-current. For available statistics, see Thread Pool Statistics.
The transaction-service tree holds monitorable attributes for the transaction subsystem for the purpose of rolling back transactions. The transaction-service tree contains the following nodes:
server.transaction-service statistic
An example dotted name might be server.tranaction-service.activeids. For available statistics, see Transaction Service Statistics.
The web tree contains the following nodes:
server.web jsp *statistic servlet *statistic session *statistic request *statistic
An example dotted name for the servlet node might be server.web.servlet.activeservletsloadedcount. For available statistics, see Web Module Common Statistics.
An add-on component typically generates statistics that GlassFish Server can gather at runtime. Adding monitoring capabilities enables an add-on component to provide statistics to GlassFish Server in the same way as components that are supplied in the GlassFish Server distributions. As a result, you can use the same administrative interfaces to monitor statistics from any installed GlassFish Server component, regardless of the origin of the component.
The following asadmin subcommands are provided for monitoring the services and components of GlassFish Server:
The enable-monitoring, disable-monitoring, or the get and set subcommands are used to turn monitoring on or off. For instructions, see Configuring Monitoring.
The monitor --type subcommand is used to display basic data for a particular type of monitorable object. For instructions, see Viewing Common Monitoring Data.
The list --monitor subcommand is used to display the objects that can be monitored with the monitor subcommand. For guidelines and instructions, see Guidelines for Using the list and get Subcommands for Monitoring.
The get subcommand is used to display comprehensive data, such as the attributes and values for a dotted name. The get subcommand used with a wildcard parameter displays all available attributes for any monitorable object. For additional information, see Guidelines for Using the list and get Subcommands for Monitoring.