Client Transaction Timings

From ServiceNow Wiki
Home > Administer > Core Configuration > Time > Client Transaction Timings
Jump to: navigation, search
Related Topics
Knowledge.gif Get the Book


1 Overview

The Client Transaction Timings plugin enhances the system logs by providing more information on the durations of transactions between the client and the server. By providing information on how time was spent during the transaction, performance issues can be tracked down to the source by seeing where the time is being consumed.

This plugin requires the Response Time Indicator to be enabled, and collects information from the following browsers:

  • Firefox
  • Internet Explorer

2 Enhancements

2.1 Calgary

These enhancements are available with the Calgary Release.

  • Client transaction timing data is no longer stored on the Client Transaction Log [syslog_client_transaction] table. Transaction timing data is now stored on the Transaction Log Entry [syslog_transaction] table.
  • The Transaction Log Entry [syslog_transaction] table is no longer rotated and does not extend the Log Entry [syslog] table. Older data is managed on this table with the table cleaner.
  • A new boolean field, Client Transaction, was added to the Transaction Log Entry [syslog_transaction] table. All client transaction log records have this value set to True.
  • Base system reports previously configured to run against the Client Transaction Log table now run against the Transaction Log Entry table with a filter condition of Client transactions is true.
  • Several new choice values appear for the Transaction Log Entry Type field to match existing Client Transaction Log functionality. These choice values are:
    • XMLHttp: Transactions that run through GlideAjax, and the URL is xmlhttp.do.
    • Report: The page sys_report_template.do.
    • SOAP: SOAP transactions.
    • Export: When a list is exported as XML, Excel, and so forth.
    • Scheduler: When a scheduled job is performed.
    • Text Search: The text search transaction or any of its related operations.

3 Client Transactions Information

Installing the plugin adds the module Client Transactions to the System Logs application, which provides a list of every logged transaction between client and server within the last day. The following information is tracked:

Field Description
Created The moment the transaction was recorded.
Response Time The number of ms spent by the server in fulfilling the transaction.
Business Rule Time The number of ms spent by business rules triggered by the transaction.
SQL Time The number of ms spent by the SQL database.
Client Response Time The number of ms spent by the client in fulfilling the transaction.
Client Network Time The number of ms spent by the network the client is connecting through.
Browser Time The number of ms spent by the browser during the transaction.
Client Script Time The number of ms spent executing client scripts
UI Policy Time The number of ms spent executing ui policy
Type Type of transaction (one of Form, List, Other)
Table The table that was displayed e.g. incident, change_request
View The view for this form/list

4 Client Detailed Information

A more detailed breakdown of the client timings for all Form rendering (but not list rendering) is also tracked. To see details, drill into a particular client transaction record and observe the related list at the base of the screen.

Field Description
Order The order during the load that this operation occurred
Type The type of operation
Name Descriptive name of this particular operation
Duration Number of ms this particular operation took to complete

5 Installed Components

5.1 Database Table Structure

The plugin adds the table syslog_client_transaction.

5.2 Properties

The property glide.client.track_transaction_timings enables and disables the plugin.

5.3 Scripts

The plugin relies on the new script include AJAXClientTiming. This is the script that gathers the information required and populates them on the syslog_client_transaction table.

6 Getting Started

6.1 Dependencies

This plugin does not require any other plugins, but will not gather information unless the Response Time Indicator is enabled. It will also gather information only from IE and Firefox browsers.

6.2 Impact

The plugin has little impact on systems, and can be easily disabled.

6.3 Activating the Plugin

To activate the plugin, simply navigate to System Definition > Plugins and activate the plugin.

Note: New instances have the plugin activated by default.

6.4 Disabling the Plugin

Although plugins cannot be removed, the functionality can be disabled:

  1. Enter sys_properties.list in the application navigator filter.
  2. Locate the property named glide.client.track_transaction_timings.
  3. Set the property value to false.

The functionality can be enabled again by setting the property value to true.

7 Timing Values

The following diagram illustrates the timing increments for rendering a page:


The variables in this diagram are defined as follows:

Variable Description
start_time The date and time the user requests a page (the user clicks on a link). This value is set by hooking into the beforeunload event of the previous page. The beforeunload event is not properly supported by WebKit browsers, which is why the client timings are not supported on Safari or Chrome.
load_time The date and time that the current page starts loading in the browser. This value is set by an inline javascript that runs as the first script in the HTML body.
server_time The time in ms spent by the server processing the transaction. The server reports this value to the client.
load_completion_time The date and time that the page is fully rendered in the browser. This operation is performed as the last script on the page and identifies the time the page completed loading.

The following times are reported by the client in the syslog_client_transaction table:

Label Element Description Calculation
Response Time client_response_time Calculates the overall time to deliver the page by subtracting the time the user requests the page from the time the page is fully rendered in the browser.
load_completion_time - start_time
Server Time client_server_time This is the time the server takes to process the transaction. server_time
Network Time client_network_time Calculates the time the network takes to process the request by subtracting the time of the user's request from the time the page starts loading in the browser, and then subtracting the server processing time.
load_time - start_time - server_time
Browser Time browser_time Calculates the time the browser takes to deliver the page by subtracting the time the page is fully rendered from the time the page starts loading in the browser. load_completion_time - load_time
Was this article helpful?
Yes, I found what I needed
No, I need more assistance
Personal tools