Monitoring Apache Geronimo


Apache Geronimo - An Overview

Apache Geronimo is an open source J2EE/Java EE 5 web application server that integrates open source projects to create Java/OSGi server runtimes that meet the needs of enterprise developers and system administrators. Geronimo can host a variety of server applications and boasts a large base of users. It comes equipped with a relational database server and message broker, enabling you to immediately deploy your enterprise applications. With all this potential, monitoring Apache Geronimo can be a daunting task.

Monitoring Apache Geronimo - What we do

Applications Manager aims to help administrators implement performance management of their Apache Geronimo application servers and the business-critical applications running on them. Let’s take a look at what you need to see to optimize your Apache Geronimo servers and the performance metrics that you can gather with Applications Manager:

  • Resource utilization details - Discover Apache Geronimo servers, monitor memory and CPU utilization and get alerted of changes in resource consumption.
  • JVM and Thread Details - Track thread usage with metrics like Daemon, Peak and Live Thread Count. Ensure started threads don’t overload the server's memory.
  • Web and Data Source details - Get an overview of sessions where you can see all session details  for each web application – active, expired, duplicate, rejected and more. Collect information on the number of requests, concurrent connections, requests duration etc.
  • EJB and ActiveMQ data -  Automatically collect and visualize ActiveMQ queue data like memory usage, average message size, average enqueue time and broker metrics all in one place. Analyze topic details including memory consumed by each topic, average message size, blocked sends, health of each topic etc. and make informed decisions. Correlate subscriber metrics with their respective topic metrics to diagnose issues.
  • Juddi Stats and Cache details  - Track Failed and Successful API Queries stats of the UDDI Registry. Monitor the cache size of an Apache Geronimo Environment and the number of access count.
  • Fix Performance Problems Faster - Maintain configurations for high availability and scalability, and be alerted automatically of potential issues with the components of your Apache Geronimo server. Become aware of performance bottlenecks and take quick remedial actions before your end users experience issues.

Adding a new Apache Geronimo monitor

Supported Versions of Apache Geronimo: Version 2.1.3 to 3.0.1

Prerequisites:

To monitor Apache Geronimo Server, add the following java runtime options to the startup file of your application:

-Dcom.sun.management.jmxremote

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

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

Replace 1999 with the any free port available.
You can find the startup file here : <Geronimo-Installation-Directory>/bin

Steps to create a new monitor

To create an Apache Geronimo Monitor, follow the steps given below: 

  • Click on New Monitor link. Choose Apache Geronimo.
  • Specify the Display Name of the Apache Geronimo monitor.
  • Enter the HostName or IP Address of the host where Apache Geronimo runs.
  • Enter the JMX Port of the Apache Geronimo. By default, it will be 1191.
  • Enter the credential details like JMX user name and password  of Apache Geronimo server or select credentials from a Credential Manager list.
  • Enter the polling interval time in minutes.
  • Click Test Credentials button, if you want to test the access to Spark server.
  • Choose the Monitor Group from the combo box with which you want to associate Spark Monitor (optional). You can choose multiple groups to associate your monitor.
  • Click Add Monitor(s). This discovers Spark from the network and starts monitoring

Demo

Use the AddMonitor API to add an Apache Geronimo Monitor

Syntax of Rest API for adding the monitor:

http://[HOST]:[PORT]/AppManager/xml/AddMonitor?apikey=[APIKEY]&type=ApacheGeronimo&HostName=[HostName]&Port=[JMX PORT]&UserName=[Username]&Password=[password]&displayname=Apache Geronimo Server&JNDIPath=[JNDIPATH]

Request Parameters:

The parameters involved in the API request are described below. Also, refer the list of common Request Parameters.

FieldDescription
apikey The key generated from the Generate API Key option in the 'Admin' tab.
type The type of the monitor you want to add. Value should be Apache Geronimo Server.
displayname The display name of the Apache Geronimo monitor.
HostName The name of the host in which Apache Geronimo server is running.
port The port number where Apache Geronimo server is running.
Port The JMX Port of the Apache Geronimo server
Username The  Username of Apache Geronimo instance.
Password The  password of Apache Geronimo instance.
JNDI Path The JNDI Path of the server

Monitored Parameters

Go to the Monitors Category View by clicking the Monitors tab. Click on the Apache Geronimo Server monitors under the Application Servers Table. Displayed is the Apache Geronimo Server bulk configuration view distributed into three tabs:

  • Availability tab  displays the Availability history for the past 24 hours or 30 days.
  • Performance tab displays the Health Status and events for the past 24 hours or 30 days.
  • List view enables you to perform bulk admin configurations.

Click on the monitor name to see all the server details listed under the following tabs:

Monitor Information

FieldDescription
Display Name The display name of Apache Geronimo monitor.
Host Name / IP Address* The name or Ip address of the host where Apache Geronimo is running.
Port The Port in which Apache Geronimo server is running.
JMX Port The JMX port of the server.
Username The  Username of Apache Geronimo instance.
Password The  password of Apache Geronimo instance.
JNDI Path The JNDI Path of the server

Overview

ParameterDescription
Server Response Time The response time of the Geronimo server.
Used heap memory percentage The percentage of heap memory used.
Free heap memory percentage The percentage of heap memory free.
Used non-heap memory percentage The percentage of non heap memory used.
Free non-heap memory percentage The percentage of non heap memory free.
THREAD USAGE
Daemon Thread Count The number of live daemon threads.
Peak Thread Count The peak count of active threads in the system.
Live Thread Count The current number of live threads.
Total Thread Started The total number of threads started since the java virtual machine started.
TRANSACTIONS
Active Count The number of active transactions.
Total Commits The total number of transaction commits.
Total Rollbacks The total number of transaction rollbacks.

JVM

ParameterDescription
Class Loading 
Loaded class count The number of classes currently loaded in the java virtual machine.
Unloaded class count The number of classes unloaded since the java virtual machine has started.
Total Class count The total number of classes loaded since the java virtual machine has started execution.
Garbage Collector
PC Scavenge Collection count rate The number of garbage collections carried out by the PC Scavenge
PC Scavenge Collection time rate The time taken to collect garbage by PC Scavenge
PC MarkSweep Collection time rate No. of garbage collected by MarkSweep
PC MarkSweep Collection time rate Time taken to collect garbage by MarkSweep
Memory Details 
Name Heap Memory/ Non- Heap Memory usage in MB.
Committed Current allocated memory in MB.
Max Max allocated memory in MB.
Used Current used memory in MB.
Free Current free memory in MB.
Free% The percentage of currently free memory.
Used%  The percentage of currently used memory.
Buffer Pool
Direct Buffer Connection Count The total connections to Direct Buffer pool.
Direct Buffer Space Used The total space used in the Direct Buffer pool.
Direct Buffer Total Space  The total space in the Direct Buffer pool.
Mapped Buffer Connection Count The total connections to Mapped Buffer pool.
Mapped Buffer Space Used The total space used in the Mapped Buffer pool.
Mapped Buffer Total Space The total space in the Mapped Buffer pool.
Buffer Pool: A direct buffer is a chunk of memory typically used to interface Java to the OS I/O subsystems, for example as a place where the OS writes data as it receives it from a socket or disk, and from which Java can read directly. The mapped buffer pool is all the memory used by Java for its FileChannel instances.

Web

ParameterDescription
Web apps
Context Web application's context name
Active Sessions Number of active sessions at this moment
Duplicate Sessions Number of duplicated session ids generated
Expired Sessions Number of sessions that expired.
Rejected Sessions Number of sessions we rejected due to maxActive being reached
Session Average Alive Time Average time an expired session had been alive.
Session Max Alive Time Longest time an expired session had been alive.
Session Create Rate Session creation rate in sessions per minute.
Session Expire Rate Session expiration rate in sessions per minute.
Global Request Processor
Connector Name Connector name of the global request processor.
Request Count Number of requests served by this global request processor.
Error Count Number of error request received.
Processing Time Time taken by this global request processor to process the requests in milliseconds.
Bytes Sent Per Second Average bytes sent per second.
Bytes Received Per Second Average bytes received per second.
Successful Request (%) Percentage of successful requests.
Failed Request (%) Percentage of failed requests.

Data Sources

ParameterDescription
Name Name of the data source.
Active Connections Number of active connections to the data source.
Idle Connections Number of idle connections to the data source.

EJB

ParameterDescription
EJP Pool
Name Name of the EJB Pool
Active Instances The no. of active instances
Idle Instances The no. of idle instances.
Initializing Instances The no. of initializing instances.
Pooled Instances The no. of pooled instances.
Access Timeouts The no. of times, access timeouts occurred.
Aged The no. of aged instances.
Flushed The no. of times, the pool is flushed.
Garbage Collected The no. of times, the garbage collection occurred.

ActiveMQ

ParameterDescription
Apache ActiveMQ Broker
Name Name of the Active MQ Broker.
Memory Usage Percentage The percentage of the memory limit .
Dequeue Count Number of messages that have been acknowledged on the broker.
Enqueue Count Number of messages that have been sent to the broker.
Consumer Count Number of message consumers subscribed to destinations on the broker.
Message Count Number of unacknowledged messages on the broker.
Temp Usage Percentage Percent of temp limit used.
Store Usage Percentage Percent of store limit used.
Apache ActiveMQ Topic
Name Name of the Active MQ queue.
Queue Size Number of messages in the destination which are yet to be consumed.  Potentially dispatched but unacknowledged.
Dequeue Count Number of messages that have been acknowledged (and removed from) from the destination.
Enqueue Count Number of messages that have been sent to the destination.
Dispatch Count Number of messages that have been delivered (but potentially not acknowledged) to consumers.
Expired Count Number of messages that have been expired.
InFlight Count Number of messages that have been dispatched to, but not acknowledged by, consumers.
Consumer Count Number of consumers subscribed to this destination.
Producer Count Number of producers publishing to this destination.
Max Enqueue Time The longest time a message has been held this destination.
Min Enqueue Time The shortest time a message has been held this destination.
Avg Enqueue Time Average time a message has been held this destination.
Memory Usage Percentage The percentage of the memory limit used

JUDDI

The Universal Description, Discovery and Integration (UDDI) protocol is one of the major building blocks required for successful Web services. UDDI creates a standard interoperable platform that enables companies and applications to quickly, easily, and dynamically find and use Web services over the Internet (or Intranet).

ParameterDescription
Name Name of the JUDDI implementation.
Failed API Queries Count of API queries failed.
Successful API Queries Count of successful API queries.
Total API Queries Total number of API queries performed.

Cache

ParameterDescription
Name Name of the cache.
Cache Max Size Max size of the cache.
Cache Size Current cache size.
Access Count Number of times the cache is accessed.
Hit Count Number of cache hits.

Note: Geronimo provides built-in caches for Active MQ, juddi, open-ejb server and system-database.

Configuration

ParameterDescription
HostName/IP Address Host name or IP address of the server.
Port The port geronimo is running
Geronimo Installation Directory The file directory where geronimo installed.
Geronimo Version The version of the geronimo server.
Host OS The operating system where the server is running.
JVM Vendor Vendor of the virtual machine.
JVM version Version of the virtual machine.