Performance measurement loggers

Performance measurement loggers are available to gather performance data to help you identify any performance bottlenecks.

The performance measurement loggers are included as an enhanced service logger package in the list of WebSphere Commerce trace components. The performance measurement logger package, com.ibm.commerce.foundation.logging.service.*, is a replacement for the com.ibm.commerce.foundation.logging.ServiceLogger service logger. This package continues to provide all of the logging content that is available with the com.ibm.commerce.foundation.logging.ServiceLogger service logger.

You can use the performance measurement loggers with the performance measurement tool or independently. With the Performance Measurement tool, you can gather execution statistics on request execution by capturing metrics on important application layers. For more information about using the performance measurement loggers with the Performance measurement tool, see Using the Performance Measurement tool.

Some of the loggers might not display within the com.ibm.commerce.foundation.logging.service.* package until the class that uses the logger is being used by the code for your site. For each logger, you can set the message or trace log detail level or disable logging for each individual logger. For detailed instructions for configuring a logger package or individual logging layer and changing the log detail levels for a logger, Configuring logging.

BeanLogger
Measures the activation and population of data beans. This logger is implement by the DataBeanManager class.
BodLogger
Measures the requests to the Business Object Definition (BOD) layer.
Note: The result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size requires extra data serialization that might use more resources to run in a production environment.
This logger is implement by the following classes:
  • AbstractActionBusinessObjectDocumentCmdImpl
  • AbstractChangeNounPartActionCmdImpl
  • AbstractGetBusinessObjectDocumentCmdImpl
CommandLogger
Measures framework commands and the execution of classes that are extended from the com.ibm.commerce.command.AbstractECTargetableCommand class.
This logger is implement by the following classes:
  • AbstractECCommand
  • AbstractECTargetableCommand
  • CommandContextImpl
InternalServletRequestLogger
Measures the servlet include and forward requests, which include any imported JSP execution.
Note: When you use this logger with the Performance Measurement tool, the result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size with this logging layer might not be reliable.

This logger is implement by the JspExecutionServiceLoggingFilter class:

RestClientLogger
Measures the outbound calls to REST services that are made using the storefront REST Tag.
Note: When you use this logger with the Performance Measurement tool, the result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size requires extra data serialization that might use more resources to run in a production environment.

This logger is implement by the RESTTag class.

RestServerLogger
Measures the inbound calls to REST services. When you use this logger with the Performance Measurement tool, this logging layer does not measure the following metrics:
  • Whether caching is enabled for the operation
  • Whether the operation result was a cache hit.
Note: The result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size requires extra data serialization that might use more resources to run in a production environment.
This logger is implement by the following classes:
  • RESTDispatcherFilter
  • RestTransactionFilter
ServletRequestLogger
Measures the servlet requests that hit the RuntimeServletFilter, which is usually where the request for the operation start. When you use this logger with the Performance Measurement tool, this logging layer does not measure the following metrics:
  • Whether caching is enabled for the operation
  • Whether the operation result was a cache hit.
Note: The result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size with this logging layer might not be reliable.

This logger is implemented by the RESTCacheFilter RunTimeServletFilter class.

ExternalCallLogger
Logs inbound and outbound calls between WebSphere Commerce and external systems. This logger provides only information logs. When you use this logger with the Performance Measurement tool, this logging layer does not measure the following metrics:
  • Whether caching is enabled for the operation.
  • Whether the operation result was a cache hit.

This logger is implemented by the PerformanceLoggingHelper class.

JcaLogger
Logs the invocation binding that uses the WebSphere Commerce JCA framework and messaging system to perform the service invocation of remote components. When you use this logger with the Performance Measurement tool, this logging layer does not measure the following metrics:
  • Result size
  • Whether caching is enabled for the operation.
  • Whether the operation result was a cache hit.

This logger is implemented by the JCAInvocationBindingImpl class.

LocalEjbLogger
Logs the invocation binding that uses JavaBeans to make the request. When you use this logger with the Performance Measurement tool, this logging layer does not measure the following metrics:
  • Result size
  • Whether caching is enabled for the operation.
  • Whether the operation result was a cache hit.

This logger is implemented by the LocalEJBInvocationBindingImpl class.

RestInvalidationFilterLogger
Logs REST requests on the invalidation layer. When you use this logger with the Performance Measurement tool, this logging layer does not measure the following metrics:
  • Result size
  • Whether caching is enabled for the operation.
  • Whether the operation result was a cache hit.

This logger is implemented by the RESTInvalidationFilter class.

SchedulerLogger
Logs the tasks that are run as scheduled jobs. When you use this logger with the Performance Measurement tool, this logging layer does not measure the following metrics:
  • Result size
  • Whether caching is enabled for the operation.
  • Whether the operation result was a cache hit.

This logger is implemented by the SchedulerJob class.

SearchPreviewServletLogger
Logs the servlet requests that are forwarded to the CompositionRequestServlet application for processing. When you use this logger with the Performance Measurement tool, this logging layer does not measure the following metrics:
  • Result size
  • Whether caching is enabled for the operation.
  • Whether the operation result was a cache hit.
Note: The result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size requires extra data serialization that might use more resources to run in a production environment.

This logger is implemented by the SolrRESTSearchPreviewServlet class.

SolrLogger
Logs operations that are related to WebSphere Commerce search queries.
  • Result size
  • Whether caching is enabled for the operation.
  • Whether the operation result was a cache hit.
Note: The result size is measured only when this logger is configured at a level of FINER or below. Measuring the result size requires extra data serialization that might use more resources to run in a production environment.

This logger is implemented by the SearchQueryHelper class.

Performance Measurement tool messaging and tracing levels

The following message and trace levels for the logging package and individual loggers affect the gathering of performance metrics when you use the Performance Measurement tool:
INFO and above
Disables all of the loggers for the tool.
FINE
Enables the loggers and gathers performance metrics. Metrics that can cause an impact to system performance are not gathered. For instance, the result size measurements can be ignored with this trace level.
FINER and below
Enables the loggers and gathers performance metrics. The gathered metrics include metrics that can affect performance to gather. For instance, the result size measurements are gathered with these trace levels.

You can gather more precise metrics by enabling the logger at the FINEST level. For production systems, you are recommended to use the FINE level to minimize any performance impact.

The following examples demonstrate the different trace levels that you can enable for the Performance Measurement tool. These trace examples are in order of the impact to performance for recording the logging level from the smallest impact to the largest.
  • com.ibm.commerce.foundation.logging.service.ServletRequestLogger=FINE This logging configuration measures only the inbound servlet requests.
  • com.ibm.commerce.foundation.logging.service.*=FINER This configuration measures the execution time for each execution layer. The generated logs do not include expensive responsive size measurements. The configuration also creates only exit logs.
  • com.ibm.commerce.foundation.logging.service.*=FINEST This configuration measures the execution time for each execution layer. This generated logs include the response size measurements. The configuration creates entry and exit logs. The configuration also includes more information logs that are relevant to each layer.

To disable the logging for any logger, select No Logging.