SOA Performance Monitoring with JaxView
JaxView provides tools for monitoring and reporting on the
performance of services in the SOA environment. This section describes some of
the ways that JaxView can be used to help manage performance of service-oriented
systems.
JaxView includes a variety of monitor types that can be used to monitor
service performance. This includes:
- Monitoring service response times
- Monitoring for fault messages
- Reporting on the rate of faults per service
- Reporting on the usage rate or throughput handled by a service
Configuring performance monitoring is easy in JaxView. The following is
an overview of the steps you use to set up performance monitors.
- Collect the information about how to connect to and retrieve service
information for the Web services you want to monitor.
- Configure monitor definition objects with the names and threshold
settings you want using the Monitors tab page in JaxView. Alternately,
you can create and assign monitors after adding the service definitions to JaxView.
- Add the service definitions to the Services object tree in JaxView. When
adding service definitions, you can assign performance monitors to the operations
offered by the service by using the Monitors to Assign selection sub panel
near the bottom of the Add Service form. Alternately, you can choose to not
assign monitors at this step but assign them later.
- Once service definitions have been added to group nodes in the Services object
tree, you can assign monitors to the service operations by using the right click action
menu for Service node in Services tab or using the action menu for a particular
monitor in the Monitors object tree.
Performance Baselines
Performance monitoring can be further enhanced by the use of baselined
event trigger thresholds. This can help avoid false event alerts by setting the
event trigger threshold logic for performance monitors dynamically to reflect
previous usage and response time trends. Each monitor type can be configured to use
a baselining option to calculate error and warning thresholds.
See the section on Baselining for more information.
Transactions are sequences of actions that accomplish a business process. Transaction
monitoring in a service-oriented environment can be more challenging because
of the loosely-coupled design paradigm of SOA. Transactions involving more than
one service endpoint need some method for coordinating and tracking the transaction
request and its progress.
Prerequisites
The implementation of transactions in the service-oriented
environment can vary significantly in the details. The following are
some general prerequisites for preparing to configure transaction
monitoring with JaxView:
- You need to know the Web service endpoints and operations
that make up the transaction and the sequence of operations that
define the transaction.
- You need to know how the systems you are working with handle
transaction context data. The context is often included in one or
more elements of the SOAP message being exchanged between the
consumer and the producer. Alternatively, depending on the design of
services in your environment, it may be included in HTTP header
data.
Configure Transaction Monitoring
The following is an overview of the steps you use to set up
transaction monitoring.
- Identify all the service locations or endpoints that are
involved in the transaction be monitored
- Create one or more group objects in the JaxView Services
object tree under the Service tab
- Add a definition for each of the service locations to the
Services object tree in the Services tab in JaxView, assigning the
service definitions to the group(s) created for them. See the
section Working with Web Services in
JaxView for more information on adding Web service definitions
to JaxView.
- Create a new transaction using the Transactions tab. The transaction will
reference Web service operations that were added to the JaxView Services object
tree when the service definitions were created in the step above. You will
need to define expressions using XPath syntax or a regular expression to identify
where transaction context data is found in the messages. See the section on
Transactions for more information on adding
transactions in JaxView.
- Configure Error and Warning threshold conditions for the
transaction and save the transaction definition
- Assign an event notification rule and alert action to the
transaction.
Most of JaxView's monitoring capabilities are considered passive
monitoring. This means that JaxView listens to request and response
messages being exchanged in the service environment and watches for
message content or calculates response times or usage rates. This
type of passive monitoring is based on the assumption that there are
real service consumers making request of service producers. From an
operational viewpoint it is also useful to know if the Web service
producers are operational even when there is no message traffic.
Since Web services enforce message format contracts, using simple URL
monitoring tools are not sufficient to determine if a service is
responding correctly. JaxView provides two “heartbeat”
monitors that actively test service availability:
- SOAP Heartbeat Monitor
- REST Heartbeat Monitor
Each of these monitor types can be configured to send a request to a service
location at a regular interval. This provides assurance of service availability
during times when real user traffic may be low.
The steps you use to configure and add these monitor types are similar to
the steps used to add other performance monitor types. See the section on
Monitor Types for more information on the properties for these monitor types.