Skip Headers
Siebel CRM Performance Tuning Guide
Siebel Innovation Pack 2015, Rev. A
E54321_01
  Go to Documentation Home
Home
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
 
Next
Next
View PDF  

15 Analyzing Siebel ARM Data

This chapter describes how to analyze Siebel Application Response Measurement (Siebel ARM) data. It contains the following topics:

For more information about the features of Siebel ARM, including how to collect Siebel ARM data, see Chapter 14, "Monitoring Siebel Application Performance with Siebel ARM."

About Siebel ARM Files

When enabled, the Siebel ARM feature saves binary Siebel ARM files in the following locations:

  • Siebel Server log subdirectory on Windows: SIEBSRVR_ROOT\log

  • Siebel Server log subdirectory on UNIX: SIEBSRVR_ROOT/enterprises/EnterpriseServerName/SiebelServerName/log

  • Siebel Web Server Extension log subdirectory: SWSE_ROOT\log

For information about Siebel ARM, see "About Siebel Application Response Measurement".

Siebel ARM names the binary data files as in the following example:

T200401081744_P001768_N0006.sarm

where:

  • T is a constant value, indicating that timing convention information follows.

  • 201401081744 indicates the date and time of the Siebel ARM file. This example indicates that this file was saved on January 8th, 2014 at 17:44.

  • P is a constant value, indicating that process ID information follows.

  • 001768 indicates the process ID on which Siebel ARM collects data.

  • N is a constant value, indicating that Siebel ARM ID information follows.

  • 0006 indicates the Siebel ARM log ID number for the listed process ID. Starts at 0000 and increments until it reaches 9999, at which point it wraps around to 0000.

  • .sarm is the Siebel ARM file extension.


    Note:

    The Siebel ARM feature creates an empty Siebel ARM file on the Web server before populating it with data. It begins storing data to Siebel ARM files after the value of the SARM Data File Size parameter has been reached. For more information, see "About Siebel ARM Parameters and Variables".

To analyze the data contained in the binary Siebel ARM files, use one of the following tools, which present the collected data in a readable format:

  • Siebel ARM Query Tool. This command-line tool allows you analyze the performance data collected by Siebel ARM. The Siebel ARM Query Tool is the recommended tool for analyzing Siebel ARM data. For more information about the Siebel ARM Query Tool, see "Analyzing Siebel ARM Files Using the Siebel ARM Query Tool".

  • Siebel ARM Analyzer Tool. This command-line tool allows you analyze the performance data collected by Siebel ARM. However, the Siebel ARM Query Tool is recommended for use over the Siebel ARM Analyzer Tool. For more information about the Siebel ARM Analyzer Tool, see "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

Analyzing Siebel ARM Files Using the Siebel ARM Query Tool

This topic describes how to analyze Siebel ARM files using the Siebel ARM Query Tool. This tool converts binary Siebel ARM files into readable output for analysis.

The following topics provide more information about using the Siebel ARM Query Tool:

About the Siebel ARM Query Tool

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Query Tool".

The Siebel ARM Query Tool is a performance analysis command line tool that processes the binary Siebel ARM data produced by the Siebel Server. This tool provides many command-line options that allow you to create complex queries.

Comparison with Siebel ARM Analyzer Tool

The Siebel ARM Query Tool is recommended for use over the Siebel ARM Analyzer Tool, which is described in "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool". The Siebel ARM Query Tool processes data faster than the Siebel ARM Analyzer Tool, allows you to create more complex queries, and offers many other benefits summarized in this topic.

Summary of Features of the Siebel ARM Query Tool

Some of the features of the Siebel ARM Query Tool are described as follows:

  • Source data specification. You can specify individual Siebel ARM files or directories as input for the Siebel ARM Query Tool. For more information about the parameters that allow you to specify input data, see "Configuring Input for the Siebel ARM Query Tool".

  • Multiple output formats. You can specify that multiple types of output be produced simultaneously. Supported output formats include .TXT, .XML and .CSV. For more information about how to specify the output format, see "Configuring Output from the Siebel ARM Query Tool".

  • Data filtering capability. You can specify selection filters that include or exclude data from analysis by the Siebel ARM Query Tool. Selection filters provide many ways to specify the types of records that you are interested in. Filters are generally not mutually exclusive. That is, you do not need to choose just one filter; you can use multiple filters, in any combinations that you require. For more information about using selection filters, see "Using Selection Filters with the Siebel ARM Query Tool".

  • Aggregating data. You can specify the order of aggregation for your output. This includes rollup calculations. Aggregation is the grouping of Siebel ARM records that share common attributes and the computing of statistics on the group. For more information about aggregation, see "Aggregating Siebel ARM Data with the Siebel ARM Query Tool".

  • Histograms. Histograms are a special type of aggregation. You can use a histogram to aggregate the results that the Siebel ARM Query Tool retrieves when you submit a query on Siebel ARM data that can return too many values if you do not use the histogram. For more information about using histograms, see "Generating Histograms with the Siebel ARM Query Tool".

  • Macro language. The Siebel ARM Query Tool supports the use of macros. For more information about using macros, see "Using Macros with the Siebel ARM Query Tool".

  • Configurable memory for statistical accuracy. By default, approximately 20 MB of memory is used by the Siebel ARM Query Tool's internal buffer used for statistical calculation. You can increase this amount of memory in order to increase the statistical accuracy of results. For example, increasing the amount of memory for the tool to 500 MB can reduce the statistical error level from 1% to 0.2%. For more information about configuring memory allocation for the Siebel ARM Query Tool, see "Configuring the Siebel ARM Query Tool".

  • For more command-line options for the Siebel ARM Query Tool, see "General Commands for the Siebel ARM Query Tool" and "Configuring the Siebel ARM Query Tool".

General Commands for the Siebel ARM Query Tool

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Query Tool". It describes the general options for use with the Siebel ARM Query Tool.

Siebel ARM Query Tool options include commands to display online help and to display progress information to the command window. Table 15-1 describes these commands.

Table 15-1 General Flags for the Siebel ARM Query Tool

Flag Description
-help

Prints help.

-copyright

Prints copyright information about the Siebel ARM Query Tool.

-tips

Prints the command-line syntax to accomplish common aggregations, reports, and conversions.

-macrosyntax

The Siebel ARM Query Tool supports a macro language. This flag prints the syntax of the macro language. For more information about using macros, see "Using Macros with the Siebel ARM Query Tool".

-planonly

Prints an execution plan for a query, without executing the query.

-quiet

Prints results only to the output console. No progress information appears when you specify this flag.

You can also specify to save progress information to a file, as noted in "Configuring the Siebel ARM Query Tool". The following example saves progress information to the file verbose.txt:

> sarmquery –output verbose=verbose.txt –input data.sarm -aggregate time=1

Configuring the Siebel ARM Query Tool

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Query Tool". It describes how you can configure the Siebel ARM Query Tool. An examples of configuring the Siebel ARM Query Tool is modifying the amount of memory that the Siebel ARM query uses, to improve statistical accuracy.

Table 15-2 describes the flags that you can use to configure the Siebel ARM Query Tool. All of the listed options are preceded by the option -config.

Table 15-2 Configuration Flags for the Siebel ARM Query Tool

Flag Description
file=macro_file_name

Specifies the file that contains a macro. For more information about using macros, see "Using Macros with the Siebel ARM Query Tool".

macro=macro_name(string)

Executes the specified macro and passes the specified string as the first argument to the macro. Before you can use this flag, you must specify the file that contains the macro, by using the file flag:

-config file=macro_file_name
gmt=0

Parse all time stamps (on the command line) and displays all time in Greenwich Mean Time (GMT) to the command window. If you do not specify this flag, then the Siebel ARM Query Tool uses local time.

gmt=[+-]HHMM

Parses and reports all times as an offset from GMT. Offsets are specified in the HHMM notation, where HH is the hours (0023) and MM is the minutes (00 to 59).

For example, to report Pacific Standard Time (PST), use the gmt flag as follows:

–config gmt=-0800
datalimit=limit

Specifies a maximum number of records to return, where limit is the maximum number. When the maximum number is exceeded, an error message (data limit exceeded) appears, and the Siebel ARM Query Tool terminates.

timelimit=seconds

Specifies the maximum number of seconds that the Siebel ARM Query Tool can execute. When the maximum number of seconds elapses, the tool exits.

The Siebel ARM Query Tool processes in two phases:

  • File collection phase. The tool identifies all required files. The value that you specify for the timelimit flag does not affect this phase; the time that the Siebel ARM Query Tool takes cannot be constrained.

  • Data processing phase. The value that you specify for the timelimit flag affects the length of this phase.

memlimit=memory

Specifies the amount of memory, in megabytes, that the Siebel ARM Query Tool can allocate to an internal buffer which the tool uses to compute aggregated statistics. The more memory that the internal buffer can use, the more accurate are the statistics returned.

The default memory limit is 20 MB. You can allocate a value between 5 MB and 500 MB.

The value that you specify does not affect performance; it only applies to the buffer that the Siebel ARM query uses for statistical calculation.


Configuring Input for the Siebel ARM Query Tool

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Query Tool". It describes how you can specify the Siebel ARM file(s) that the Siebel ARM Query Tool uses. The Siebel ARM Query Tool converts binary Siebel ARM files into readable output for analysis.

Table 15-3 describes the available input options. All of the listed options are preceded by the option -input.

Table 15-3 Input Flags for the Siebel ARM Query Tool

Flag Description
sarmfile

Specifies a binary Siebel ARM file (.sarm).

directory

Specifies a directory that contains Siebel ARM files. The Siebel ARM Query Tool processes all of the Siebel ARM files that it finds in the specified directory.

stdin

A literal keyword that tells Siebel ARM query to read a list of Siebel ARM file names from standard input. You specify one Siebel ARM file or a directory name per line. The following are examples of valid input using stdin or other input flags:

> sarmquery .
> sarmquery –input d:\sarmdata
> sarmquery d:\sarmdata\srvr1 d:\sarmdata\srvr2 sarmfile1.data
> dir /s /b *.sarm | sarmquery –input stdin

Configuring Output from the Siebel ARM Query Tool

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Query Tool".

This topic discusses the output options that are available to you when you use the Siebel ARM Query Tool. Table 15-4 describes the flags that you can use to configure output.

The Siebel ARM Query Tool can simultaneously write output to files in the .TXT, .XML and .CSV formats. The following example shows using the Siebel ARM Query Tool to write different types of information to different files.

> sarmquery –input d:\sarmdata –select subarea=infra_entry –select resp=1000 –output header=hdr.csv –output sarm=sarm.csv -aggregate area –output agg=agg.xml

The preceding command writes:

  • Information about the header metadata from the Siebel ARM files to the file hdr.csv

  • Siebel ARM data to the file sarm.csv

  • Aggregate information about the area to the file agg.xml

You can also specify a maximum number of lines to write to a file. When the file contains the maximum number of lines specified, the Siebel ARM Query Tool creates a new file with the same filename plus N, where N equals a number. The following example illustrates the use of this option:

> sarmquery –output sarm=sarmdata.csv#20000

This command writes Siebel ARM data in comma-separated values (CSV) format to the file named sarmdata.csv. The optional value #20000 writes a maximum of 20,000 lines to sarmdata.csv. Once sarmdata.csv contains 20,000 lines, the Siebel ARM Query Tool writes to a new file with the name sarmdata_0002.csv, and so on, until all of the applicable data is output.


Note:

All flags in Table 15-4 are preceded by the command option -output.

Table 15-4 Output Flags for the Siebel ARM Query Tool

Flag Description
fdr=filename

Converts all FDR files (specified using –input) to CSV format and write them to the specified file.

Note: For more information about FDR (flight data recorder) files, see Siebel System Monitoring and Diagnostics Guide.

fdrhdr=filename

Converts all of the FDR headers to CSV and write them to the specified file.

error=filename

By default, the Siebel ARM Query Tool writes output to the file stderr.txt. This command redirects error messages to the specified file.

debug=filename

By default, Siebel ARM query does not write debug messages. This command enables the Siebel ARM Query Tool to write debug messages to the file specified file.

dbglines=filename

This command enables the Siebel ARM Query Tool to write more debug information.

verbose=filename

By default, the Siebel ARM Query Tool writes to the file stderr.txt. This command redirects verbose output to the specified file.

map=filename

Creates a file which lists all areas and subareas for Siebel ARM.

header=filename

appheader=filename

webheader=filename

cliheader=filename

The available flags are:

  • header

    Writes all header information to the specified file.

  • appheader

    Writes header information from Siebel ARM files generated by the Siebel Server.

  • webheader

    Writes header information from Siebel ARM files generated by the Siebel Web Server Extension (SWSE).

  • cliheader

    Writes header information from the Siebel ARM files generated by clients.

The following example writes information about all headers to all.csv and then writes information for each specific part to a different file:

> sarmquery –input dir –output header=all.csv –output appheader=app.csv –output webheader=web.csv –output cliheader=cli.csv
sarm=filename

appsarm=filename

websarm=filename

clisarm=filename

The available flags are:

  • sarm

    Writes all Siebel ARM data to the specified file.

  • appsarm

    Writes all Siebel ARM data generated by the Siebel Server to the specified file.

  • websarm

    Writes all Siebel ARM data generated by the Siebel Web Server Extension (SWSE) to the specified file.

  • clisarm

    Writes all Siebel ARM data generated by clients.

The following example writes Siebel ARM data generated by the Siebel Server and the SWSE to different files:

> sarmquery –output appsarm=app.csv –output websarm=web.csv
agg=filename

iagg=filename

sagg=filename

The available flags are:

  • agg

    Writes the aggregation report to the specified file.

  • sagg

    Writes a subset of the aggregation report to the specified file. This flag specifies exclusive metrics.

  • iagg

    Writes a subset of the aggregation report to the specified file. This flag specifies inclusive metrics.

To use the options, you must have aggregated Siebel ARM data by using the flag -aggregate.

avginclresp=filename

pctcount=filename

pctinclresp=filename

pctselftime=filename

The available flags are:

  • avginclresp

    Writes the average response time to the specified file.

  • pctcount

    Writes the percentage of server requests that complete within the specified time to the specified file.

    The following example writes the percentages of server requests that complete within 100 milliseconds, between 100 milliseconds to 500 milliseconds, and so on:

    > sarmquery –histogram resp=100,500,1000,2000,5000
    – out pctcount=stdout.txt
  • pctselftime

    Writes the percentage of time spent in internal parts of the Siebel Server. This is also known as SLA fingerprint.


Using Selection Filters with the Siebel ARM Query Tool

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Query Tool". It describes how to use selection filters with the Siebel ARM Query Tool to constrain the data that the tool retrieves.

Siebel ARM files contain one or more segments. Each segment has a header and a body section. The header section contains metadata describing the data contained in the body section. For example, the metadata describes the time range when the data in the body section was collected and the amount of data in the body section.

You can use selection filters to filter the metadata and the actual performance data.

  • Table 15-5 describes the filters that you can use for the metadata in Siebel ARM files

  • Table 15-6 describes the filters that you can use for data in Siebel ARM files

Note the following points when you formulate queries:

  • String filter searches are case insensitive and accept wild cards. For example, the following query retrieves Siebel ARM records associated with the users johndoe, JOHNDOE, and JoHnDoE:

    > sarmquery –select user=JohnDoe
    
  • String filters also accept leading and trailing wild cards. For example, each of the following queries retrieves records associated with the same users, and possibly others:

    > sarmquery –select user="*doe"
    > sarmquery –select user="john*"
    > sarmquery –select user="*hndo*"
    

    Note:

    Wild cards can only be leading or trailing. Wild cards in the middle of a pattern do not retrieve results. For example, the pattern jo*ndoe does not retrieve johndoe.

  • You can combine selection filters to retrieve records that match multiple conditions. For example, the following selection filter retrieves all script execution records that executed for at least 5 seconds:

    > sarmquery –select area=script –select resp=5000
    

All of the options listed in Table 15-5 are preceded by the option -select.

Table 15-5 Header Filters for the Siebel ARM Query Tool

Flag Description
component=componentname

Selects headers from Siebel ARM files that were generated by the named component.

fillfactor=percent

Or:

fillfactor=minpct,maxpct

Use this flag to specify a percentage value; the Siebel ARM Query Tool retrieves headers that are percent full.

Alternatively, you can specify two arguments, a minimum percentage minpct and a maximum percentage maxpct to retrieve a range of values.

Generally, headers have a capacity to hold a certain number of Siebel ARM records. The percentage value is the ratio of actual number of records to that capacity.

host=hostname

Selects headers from Siebel ARM files generated on the named host.

procid=integer

Selects headers from Siebel ARM files generated by a process whose ID (process ID) is inter.

segcapacity=nrecs

Or:

segcapacity=min,max

Selects headers whose capacity to hold Siebel ARM records matches the number of records specified by nrecs.

Alternatively, you can specify two arguments, a minimum number of records and a maximum number of records, to retrieve a range of values.

segduration=nsecs

Or:

segduration=min,max

Selects headers whose duration matches the number of seconds specified. A header duration is the number of seconds the file segment was in memory before it was flushed.

Alternatively, you can specify two arguments, min and max, to retrieve a range of values.

segid=min

Or:

segid=min,max

Specify a single argument to retrieve the headers with an internal segment ID of at least min.

Alternatively, you can specify two arguments, min and max, to retrieve a range of values.

segsize=size

Or:

segsize=min,max

A segment size is the size of the header and body in bytes. Specify a single argument of size to retrieve all headers whose segment size is size bytes.

Alternatively, you can specify two arguments, min and max, to retrieve a range of values.

server=servername

Retrieve headers from Siebel ARM files generated on the specified Siebel Server servername.

sourcetype=value

Retrieves headers from Siebel ARM files generated by the specified type of server or process. Specify one of the following parameters in place of value to retrieve the headers:

  • app

    Retrieves headers generated by Siebel Servers.

  • web

    Retrieves headers generated by the Siebel Web Server Extension (SWSE).

  • cli

    Retrieves headers generated by other client programs such as the Siebel Mobile Web Client.

threshold=min

Or:

threshold=min,max

A threshold is a value represented in milliseconds. In the Siebel ARM framework, any performance record whose total response time duration is less that the threshold amount is discarded. The threshold setting at the time the Siebel ARM file was generated is saved in the header.

Specify a single argument to retrieve all headers that contain Siebel ARM records whose threshold was least min milliseconds.

Alternatively, you can specify two arguments, min and max, to retrieve a range of values.

starttime=start

Specify a start time to retrieve headers that contain Siebel ARM records that ended after the specified start time.

Note: Time filters are compared against the generation start time for Siebel ARM records.

You can specify the start time in the following ways:

  • String in the format YYYY-MM-DD hh:mm:ss. For example:

    > sarmquery -select starttime="2014-02-13 17:05:00"
    
  • A number interpreted in Universal Time Code (UTC). For example:

    sarmquery -select starttime=1108083900
    
  • A negative number to indicate the number of seconds from the current time. For example, this command retrieves headers that contain data generated less than 300 seconds ago:

    > sarmquery -select starttime=-300
    
endtime=end

Specify an end time to retrieve headers that contain Siebel ARM records that were generated before the specified time end.

Note: Time filters are compared against the generation end time for Siebel ARM records.

You can specify the end time in the following ways:

  • String in the format YYYY-MM-DD hh:mm:ss. For example:

    > sarmquery -select endtime="2014-02-13 17:05:00"
    
  • A number interpreted in Universal Time Code (UTC). For example:

    > sarmquery -select endtime=1108083900
    
  • A negative number to indicate the number of seconds from the current time. For example, this command retrieves headers that contain data generated less than 300 seconds ago:

    > sarmquery -select endtime=-300
    
  • A positive number to indicate the number of seconds after the start time. For example, this command retrieves headers that contain data generated more than 600 seconds after the start time:

    > sarmquery -select starttime=+600
    

Table 15-6 describes the filters that you can use when you formulate a query to retrieve Siebel ARM data. All of the listed options are preceded by the option -select.

Table 15-6 Siebel ARM Query Tool Flags for Record Selection

Flag Description
clickid=ID

The Web server Siebel ARM files (-select sourcetype=web) contain a user click ID (also known as operation ID). This filter retrieves all records where clickid equals ID.

foreign

Use this flag to retrieve records whose parent records are from a different process. This is frequently the case for Siebel ARM data generated from batch mode components.

orphan

Select records that are not root records and whose parent record was not found in the input Siebel ARM file(s).

level=level

Or:

level=min,max

Specify one argument to retrieve records whose Application Program Interface (API) level is at least equal to level. Alternatively, specify two arguments to retrieve a range of values between the minimum and maximum level specified. The API level indicates the importance of a Siebel ARM record as follows:

  • level = 1

    Equivalent to SARMLevel=1 and indicates high level information.

  • level = 2

    Equivalent to SARMLevel=2 and indicates detailed performance information.

  • level = 3

    Equivalent to SARMLevel=3 and indicates debug or internal performance information.

parentid=ID

Selects Siebel ARM records whose parent ID is ID.

rootid=ID

Selects Siebel ARM records whose root ID (also known as request ID in interactive mode components) is ID.

sarmid=sarmid

Or:

sarmid=procid.sarmid

Or:

sarmid=segid.procid.sarmid

Retrieves Siebel ARM records primary ID where:

  • sarmid is a number uniquely identifying this performance record within a process or component,

  • procid is the process ID (same as -select procid=procid), and

  • segid is the segment ID (same as -select segid=segid,segid)

sessionid=sessid

All session based component performance data contain an attribute known as the session ID. All performance data from all processes that have the same session ID are assumed to belong to a single session of a single user.

The Siebel ARM Query Tool does a case-insensitive search using sessid. Wild cards are acceptable.

taskid=taskid

Selects all records that associated with task taskid.

threadid=threadid

Selects all records that were created by the thread whose operating system thread ID is threadid.

user=username

Selects all records that were created by user named username, which is typically the login name. The search is case-insensitive and wild cards are acceptable.

area=area

area=areacode

subarea=sub

subarea=subcode

pararea=parea

pararea=pareacode

parsubarea=psarea

parsubarea=pscode

Two filters, area and subarea, identify each Siebel ARM record.

The area and subarea are logical sections of the Siebel Server. For example, the Siebel Web Engine (SWE) area creates Web pages. Siebel ARM records associated with the SWE describe Web page creation performance. Similarly, the database connector (DBC) area represents the connection to the enterprise database. Siebel ARM records associated with DBC indicate the performance of database queries.

For example, the following command retrieves all Siebel ARM records associated with database queries:

> sarmquery –select area=DBC

You can retrieve a complete list of areas, subareas, and descriptions from the Siebel ARM Query Tool. For example, the following command saves the complete list to the file map.csv:

> sarmquery –output map=map.csv

If you know the numeric area or subarea codes, then you can use them directly in this command. Otherwise, you can use the string form of the symbol. When using the string form, you do not need to use the entire text string. You can use a partial text string, provided that it uniquely identifies the area or subarea.

The filters pararea and parsubarea are similar to area and subarea except that they select Siebel ARM records whose parent area and subarea (respectively) are parea and psarea. For example, the following command retrieves all Siebel ARM records whose parent area is SWE:

> sarmquery –select pararea=swe
children=0

Use this flag to retrieve Siebel ARM records that have no child records.

children=count

Or:

children=min,max

Specify one argument to retrieve Siebel ARM records that have child records equal to at least count. Specify two arguments to retrieve the records that have child records between min and max.

cputime=ms

Or:

cputime=min,max

Specify one argument to retrieve Siebel ARM records that spent at least ms milliseconds on the CPU. Specify two arguments to retrieve the Siebel ARM records that spent between min and max milliseconds on the CPU.

depth=depth

Or:

depth=min,max

Specify one integer argument to retrieve Siebel ARM records that are no more than depth from the root node. Specify two arguments to retrieve a range of records.

descendants=count

Or:

descendants=min,max

Specify one integer argument to retrieve Siebel ARM records that have at least count descendants. Specify two arguments to retrieve a range of values.

instance=string

detail=string

int1=int

Use these filters to retrieve Siebel ARM records where the filter is as follows:

  • instance

    Retrieves Siebel ARM records where instance metadata equals string. Instance metadata typically contains the names of things, such as the view names, screen names, user name, workflow name and script name.

  • detail

    Retrieves Siebel ARM records where the detail metadata equals string. Detail metadata typically contains identification information. For example, it might contain a database row ID or the name of a business component method.

  • int1

    Retrieves Siebel ARM records where int1 filter equals int. The int1 metadata typically contains counter values, task IDs or other unspecified information.

Note: The values that the preceding metadata fields reference depend on the associated area or subarea.

memusage=excl

Or:

memusage=min,max

Specify one argument to retrieve all Siebel ARM records where memory allocated or deallocated was larger than excl bytes.

Specify two arguments to retrieve a range of Siebel ARM records that record the memory allocation or deallocation events within the specified range.

For example, the following command retrieves all Siebel ARM records where the associated event recorded a memory allocation of 1 MB (or larger) or a deallocation of 1 MB or larger

> sarmquery –select memusage=1000000
pctcpu=percent

Or:

pctcpu=min,max

Specify a single argument to retrieve Siebel ARM records that indicate a CPU consumption of the percentage percent. Specify two arguments to retrieve a range between min and max percent.

resptime=ms

Or:

resptime=min,max

Specify one argument to retrieve Siebel ARM records where the inclusive wall clock time consumed is ms milliseconds. Specify two arguments to retrieve a range between min and max.

An inclusive wall clock time is the time spent in a specific part of the architecture and includes the time spent in all of its descendants. For example, the response time of a SWE area would be the time spent in constructing a Web page, including the time to evaluate business component events and database access.

selftime=ms

Or:

selftime=min,max

With one argument, select Siebel ARM records where the exclusive time consumed is ms milliseconds. With two arguments, min and max specify a range.

An exclusive time is time spent in an area, and only in that area, excluding the time spent in its descendants. Hence, the self time of a SCRIPT area would be the time spent in the scripting engine, and not including time spent in the database, object manager, workflow, and so on.

starttime=start

Or:

endtime=end

The semantics and syntax are similar to the time filters described for headers, except that the filters select Siebel ARM records based on the time stamps.

tree=all

parent=parent

tree=ancestor

tree=children

tree=descendent

These are a specialized set of selection filters that do not just operate on a single record basis but on record sets. In most cases, they serve to replace a performance record with an entire set.

In order to understand these operators, it is important to realize that Siebel ARM records form a tree of an execution thread with parent and children nodes:

  • tree=all

    Replaces a selected record by all records in its tree.

  • tree=parent

    Replaces a selected record by its parent. The selected record is not included.

  • tree=ancestor

    Replaces a selected record by all Siebel ARM records leading from the selected record to the root of the tree. The selected record is also included in the set.

  • tree=children

    Replaces a selected record by its immediate children. The selected record is not included.

  • tree=descendent

    Replaces a selected record by all of its descendents. The selected record is also included in the set.


Aggregating Siebel ARM Data with the Siebel ARM Query Tool

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Query Tool". It describes the aggregation options available to you when you use the Siebel ARM Query Tool. Aggregation is the grouping of Siebel ARM records that share a common attribute and the computing statistics on the group.

Multiple –aggregate options can be specified, which are interpreted as sub-aggregations.

The Siebel ARM Query Tool can compute the total, maximum, minimum, average, and the count of contributing records for the following items:

  • Inclusive Response Time

  • Exclusive Response Time (self time)

  • Inclusive CPU Time

  • Exclusive CPU Time

  • Inclusive Memory Usage

  • Exclusive Memory Usage


    Note:

    Aggregation is computed on Siebel ARM records that are retrieved by the selection filters.

All of the options listed in Table 15-7 are preceded by the option -aggregate.

Table 15-7 Flag Options for Aggregation

Flag Description
area

Siebel ARM records that have the same value for area are grouped together.

subarea

Siebel ARM records that have the same value for subarea are grouped together. Note that it is usually more common to also group by area when grouping by subarea, or filter on the area, as with the following examples:

> sarmquery -aggregate area -aggregate subarea
> sarmquery –select area=DBC -aggregate subarea
instance

Siebel ARM records that have the same value of instance metadata are grouped together.

Instance metadata typically contains names of things such as scripts, workflows, and views. This means that the value for the instance metadata depends on the area or subarea. As a result, aggregate instance must either be preceded by an aggregation of area or subarea or a filter on area or subarea, as with the following example:

> sarmquery -aggregate area -aggregate instance
> sarmquery –select area=script -aggregate instance
server component host procid

Aggregates Siebel ARM records that have the same value for:

  • Server

  • Component

  • Host

  • Procid

user

Aggregates Siebel ARM records that have the same value for user name. User name is case sensitive.

sessionid

Aggregates Siebel ARM records that have the same value for session ID.

Tip: This flag can be useful when used in conjunction with the flag for user, as in the following examples:

> sarmquery -aggregate user -aggregate sessionid
> sarmquery –select user=andy -aggregate sessionid
clickid

Aggregates Siebel ARM records that have the same value for clickid.

Typically in an interactive component, a user has multiple sessions and a session has multiple requests. Sometimes a single user action on the client (browser) results in multiple requests. In such cases, each of those requests is associated with the same unique ID, known as the clickid.

This ID is generated and associated with requests even if a user action results in a single request.

Tip: Use this flag in conjunction with user and sessionid, as in the following examples:

> sarmquery -aggregate user -aggregate sessionid -aggregate clickid
> sarmquery –select user=andy -aggregate sessionid -aggregate clickid
time=interval

Aggregates Siebel ARM records by their time stamps over the interval specified by interval, where interval is a value in minutes.

For example, if you specify 5, then Siebel ARM records with time stamps of 12:00 to 12:05 form one aggregation, those with time stamps of 12:05 to 12:10 form another aggregation, and so on.

The following example command displays a report to the command window that shows the average response time of the Siebel Server over intervals of 15 minutes:

> sarmquery –select source=app –select subarea=infra_entry -aggregate time=15

Generating Histograms with the Siebel ARM Query Tool

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Query Tool".

Histograms are a special type of aggregation. You can use a histogram to aggregate the results that the Siebel ARM Query Tool retrieves when you submit a query on Siebel ARM data that might return too many values if you do not use the histogram.

For example, note the following query:

> sarmquery -aggregate resptime

This query might retrieve millions of rows as the first row returns the requests that completed in one millisecond, the second row returns the number of requests that completed in two milliseconds, and so on.

A more effective query generates a histogram as in the following example:

> sarmquery –histogram resptime=100,200,300,400,500

This query returns six rows. The first row aggregates the number of requests that complete in less than 100 milliseconds, the second row aggregates the number of requests that completed between 100 and 200 milliseconds, and so on.

In the preceding example, the values 100, 200, 300 and so on are known as bin endpoints.

Table 15-8 describes the flag options that you can use with the histogram parameter. All of the listed options are preceded by the option -histogram.

Table 15-8 Flag Options for the Histogram Parameter

Flag Description
resptime=val1,val2valN

Creates a histogram of response (inclusive) times, where the arguments val1 and val2 specify the bin endpoints. val1 and val2 are expressed in milliseconds.

selftime=val1,val2 … valN

Creates a histogram of self time (exclusive) times, where val1 and valN specify the endpoints. The values are expressed in milliseconds.

pctcpu=val1,val2 … valN

Creates a histogram of the percentage of CPU time consumed. The arguments are expressed as integers between 0 and 100.

children=val1,val2 … valN

Creates a histogram of the width of the execution trees.

depth=val1,val2 … valN

Creates a histogram of the depth of the execution trees.


Using Macros with the Siebel ARM Query Tool

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Query Tool".

The Siebel ARM Query Tool supports the use of macros. A macro allows you to save complex queries to a file, which you can subsequently use as input for the Siebel ARM Query Tool.

To create a macro, you need to:

  • Write the syntax of your query in a .CFG file (for example, macro.cfg).

    Each part of the query must appear on a separate line in the .CFG file.

  • Define a name for the macro, which you insert before the first line of your query in the .CFG file.

For example, the following query, which retrieves data on the average login time for users, can be input as one entry from the command line:

> sarmquery –input d:\sarmdata –select source=web -select subarea=swse_login -select tree=all -select depth=1 -aggregate user -output avginclresp=stdout.txt

However, in the .CFG file the preceding query is assigned the macro name [Login] and appears as follows:

[Login]
–input d:\sarmdata
-select source=app
-select subarea=objmgr_sess_relogin
-select tree=all
-select depth=1
-aggregate user
-output avginclresp=stdout.txt

For the Siebel ARM Query Tool to use a macro, you need to specify two parameters:

  • The location of the .CFG file that contains the macro


    Note:

    A CFG file can contain multiple macros.

  • The name of the macro to execute

The following example requests that the Siebel ARM Query Tool execute the Login macro, which is saved in the macro.cfg file.

> sarmquery –config file=macro.cfg –config macro=Login

The Siebel ARM Query Tool reads the input arguments for the macro as if you had specified the individual parts of the macro on the command line. This means that you can specify additional arguments that might not be in your macro. The following example executes the Login macro and in addition specifies a time slice:

> sarmquery –config file=macro.cfg –config macro=Login –select starttime="2004-06-10 10:00:00" –sel endtime="2004-06-11 09:59:59"

For more information about configuration commands, see "Configuring the Siebel ARM Query Tool".

For a complete description of the macro language syntax and other options, execute the following command from the command line:

> sarmquery –macrosyntax

Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool

This topic describes how to analyze Siebel ARM files using the Siebel ARM Analyzer Tool. This tool converts binary Siebel ARM files into readable output for analysis.


Note:

The Siebel ARM Query Tool, which is described in "Analyzing Siebel ARM Files Using the Siebel ARM Query Tool", is recommended for use over the Siebel ARM Analyzer Tool.

The following topics provide general information about the Siebel ARM Analyzer Tool and describe how to generate different types of analysis output using the Siebel ARM Analyzer Tool:

The following topics provide information about the different types of analysis output that the Siebel ARM Analyzer Tool generates. The analyzer tool produces output in either XML or CSV format, based on the type of conversion analysis. For more information, see:

About Siebel ARM Analyzer Tool

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

The Siebel ARM Analyzer Tool parses the files created by the Siebel ARM feature and generates extensible markup language (XML) analytic results or comma-separated value (CSV) results. Run the Siebel ARM Analyzer Tool manually at the command-line. For an overview of the types of output this tool can generate, see "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

This command-line utility resides in the bin subdirectory of the Siebel Server root directory as the executable program sarmanalyzer.exe on Microsoft Windows or sarmanalyzer on UNIX. Table 15-9 describes the parameters to use with this tool.


Caution:

Monitoring the Siebel application can result in large Siebel ARM files. In some cases, the Siebel ARM Analyzer Tool cannot allocate enough memory to convert extremely large binary Siebel ARM files. In this situation, use the -p flag with the Siebel ARM Analyzer Tool to split the Siebel ARM file into smaller files. For information about this flag, see Table 15-9.

Table 15-9 Siebel ARM Analyzer Tool Flags

Flag Description
-help

Use this flag with the Siebel ARM Analyzer Tool to list and describe the available flags.

-f

Use this flag with a Siebel ARM file argument to run a performance aggregation analysis. For more information, see "Running Performance Aggregation Analysis".

-o

Use this flag to name the output path and file resulting from the analysis of the Siebel ARM binary file. Make sure to include the correct file extension based on the selected analysis, that is, either XML or CSV.

-d

Use this flag with the argument XML or CSV to indicate the type of output file format: extensible markup language (XML) or a comma-delimited list (CSV).

-a

Use this flag with the argument AREA or DETAILS when running a performance aggregation analysis. For more information about this analysis, see "Running Performance Aggregation Analysis".

-i

Use this flag with a directory argument when running a user session trace analysis. For more information about this analysis, see "Running User Session Trace".

-s

Use this optional flag to denote a start time for a user session trace. The format of the time argument is as follows: yyyy-mm-dd hh:mm:ss. Use this flag with the -e flag to create a time range.

-e

Use this optional flag to denote an end time for a user session trace. The format of the time argument is as follows: yyyy-mm-dd hh:mm:ss. Use this flag with the -s flag to create a time range.

-p

Use this optional flag to split large Siebel ARM files into smaller sizes. Use a value of 0 to 50 as the flag argument, which denotes the size, in megabytes, of the reduced files. The default value is 14 MB. The Siebel ARM Analyzer Tool uses the default value if the flag argument is 0. The split files are suffixed with _Snnnn, where nnnn is the split sequence number.


Running Performance Aggregation Analysis

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

Use the following procedure to obtain performance aggregation analysis output. For a description of the performance aggregation analysis and output, see "About Performance Aggregation Analysis and Data". For more information about running the Siebel ARM Analyzer Tool, see "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool" and "About Siebel ARM Analyzer Tool".

To run a performance aggregation analysis 

  1. Navigate to the bin subdirectory within the Siebel Server root directory.

  2. Run the Siebel ARM Analyzer Tool using the following command:

    sarmanalyzer -o output_file_name.xml -a aggregate_argument -f sarm_file_name.sarm
    

    where:

    • output_file_name.xml is the name and path of the XML output file.

    • aggregate_argument is either AREA or DETAILS, depending on which area you want the Siebel ARM post-process tools to aggregate data from. For more information, see "About Performance Aggregation Analysis and Data".

    • sarm_file_name.sarm is the name and path of the binary Siebel ARM file. Use a comma-delimited list to aggregate data from more than one Siebel ARM file.

  3. Review the XML output in the file named output_file_name.xml. For more information about analyzing the performance aggregation analysis XML output, see "About Performance Aggregation Analysis and Data".

Running Call Graph Generation

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

Use the following procedure to obtain call graph generation analysis output. For a description of the call graph generation analysis and output, see "About Call Graph Generation Analysis and Data". For more information about running the Siebel ARM Analyzer Tool, see "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

To run a call graph generation analysis 

  1. Navigate to the bin subdirectory within the Siebel Server root directory.

  2. Run the Siebel ARM Analyzer Tool using the following command:

    sarmanalyzer -o output_file_name.xml -d xml -f sarm_file_name.sarm
    

    where:

    • output_file_name.xml is the name and path of the XML output file.

    • -d xml identifies the call graph generation analysis.

    • sarm_file_name.sarm is the name and path of the binary Siebel ARM file.

  3. Review the XML output in the file named output_file_name.xml. For more information about analyzing the call graph analysis XML output, see "About Call Graph Generation Analysis and Data".

Running User Session Trace

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

Use the following procedure to obtain user session trace analysis output. Before running this analysis, manually collect Siebel Server and Web server Siebel ARM files and store them in a common directory. Use this directory as an argument with the Siebel ARM Analyzer Tool. For a description of the user session trace analysis and output, see "About User Session Trace Analysis and Data". For more information about running the Siebel ARM Analyzer Tool, see "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".


Tip:

To reduce the amount of data logged, use the time frame parameters (-s start time and -e end time).

To run a user session trace analysis 

  1. Navigate to the bin subdirectory within the Siebel Server root directory.

  2. Run the Siebel ARM Analyzer Tool using the following command:

    sarmanalyzer -o output_file_name.xml -u user_name -i SARM_file_directory -s start_time -e end_time
    

    where:

    • output_file_name.xml is the name and path of the XML output file.

    • user_name is the User ID of the session you want to trace.

    • SARM_file_directory is the directory containing the Siebel ARM files of the Web Server and the Siebel Server.

    • start_time is an optional variable to define a start time of a time range for the user session trace. The argument format is as follows: yyyy-mm-dd hh:mm:ss.

    • end_time is an optional variable to define the end time of a time range for the user session trace. The argument format is as follows: yyyy-mm-dd hh:mm:ss.

  3. Review the XML output in the file named output_file_name.xml. For more information about analyzing user session trace XML output, see "About User Session Trace Analysis and Data".

Running Siebel ARM Data CSV Conversion

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

Use the following procedure to obtain a comma-separated value (CSV) analysis output. For a description of the CSV conversion analysis and output, see "About Siebel ARM to CSV Conversion Data". For more information about running the Siebel ARM Analyzer Tool, see "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

To run a Siebel ARM data to CSV conversion analysis 

  1. Navigate to the bin subdirectory within the Siebel Server root directory.

  2. Run the Siebel ARM Analyzer Tool using one of the following commands:

    sarmanalyzer -o output_file_name.csv -d csv -f sarm_file_name.sarm
    

    where:

    • output_file_name.csv is the name and path of the CSV output file.

    • -d csv identifies the Siebel ARM data CSV conversion analysis.

    • sarm_file_name.sarm is the name and path of the binary Siebel ARM file or files.

  3. Review the CSV output in the file named output_file_name.csv. For more information about analyzing CSV data, see "About Siebel ARM to CSV Conversion Data".


Note:

Running a CSV conversion can create large output files that, in some cases, cannot be read by third-party software. Use the -p flag to split large Siebel ARM files. For more information about this flag, see Table 15-9.

About Siebel ARM Analyzer Output Files

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

Running the Siebel ARM Analyzer Tool produces output files of either extensible markup language (XML) or comma-separated value (CSV) format, depending on the type of Siebel ARM file conversion. For more information about converting Siebel ARM files and running the Siebel ARM Analyzer Tool, see "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

Use an XML editor or Web browser to view the XML output files, which result from several types of analyses. Values of timing measurements are included among the XML tags.

Use third-party software (for example, a spreadsheet program) to view the output files that result from the conversion of Siebel ARM files to CSV files. Tags and values of timing measurements are included.

Siebel ARM records all timings included in both the XML and CSV output in milliseconds.

About Performance Aggregation Analysis and Data

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

Performance aggregation analysis is a compilation of the data contained in a Siebel ARM binary file. Siebel ARM files group performance data based on the instrumented areas. For information and a listing of instrumented areas, see "About Siebel Application Response Measurement". For more information about creating this format of Siebel ARM output, see "Running Performance Aggregation Analysis".

Running a performance aggregation analysis of a Siebel ARM file results in an extensible markup language (XML) output file. This file contains timing data for the instrumented areas.

The amount of information contained in the performance aggregation analysis XML output depends on the argument used for the -a flag when you perform the analysis (either AREA or DETAILS) and on the setting for the SARM Granularity Level parameter. For information about this parameter, see "About Siebel ARM Parameters and Variables".

The performance aggregation XML output file contains the following tag schema when the -a flag argument is set to DETAILS. If the -a flag argument is set to AREA when you run the analysis, then the tag schema is the same, minus the <NumberOfSubAreas> and <SubArea> information.

<Area>
   <Name>
   <Symbol>
   <NumberOfSubAreas>
   <Invocations>
      <Recursive>
      <NonRecursive>
   <ResponseTime>
      <Total>
      <Average>
      <StandardDeviation>
      +<Maximum>
      +<Minimum>
   <ExecutionTime>
      <Total>
      <Calls>
      <Average>
      <Maximum>
      <Minimum>
      <PercentOfResponse>
   <RecursiveTime>
      <Total>
      <Calls>
      <Average>
      <Maximum>
      <Minimum>
      <PercentOfResponse>
   <InclusiveMemory>
      <Total>
      <Average>
      <StandardDeviation>
      +<MaxAllocated>
      +<MaxDeallocated>
   <ExclusiveMemory>
      <Total>
      <Average>
      <StandardDeviation>
      +<MaxAllocated>
      +<MaxDeallocated>
   <SubArea>
      <Name>
      <Symbol>
      <NumberOfInstances>
      +<Invocations>
      +<ResponseTime>
      +<ExecutionTime
      +<Memory>
      +<Instance>
      +<Parents>
      +<Children>
   <Parents>
      <NumberOfParents>
      <ParentArea>
         <Name>
         <Symbol>
         +<<InvocationsFromParents>
         +<ResponseTime>
         +<Memory>
   <Children>
      <NumberOfChildren>
      <ChildArea>
         <Name>
         <Symbol>
         +<InvocationsOfChild>
         +<ResponseTime>
         +<Memory>

For descriptions of each of the tags, see Table 15-10.

Table 15-10 Performance Aggregation Analysis Tags

Tag Description
Area

Specifies performance data captured for a specific area of the Siebel ARM architecture. There might be one or more areas captured with performance data. For more information about Siebel ARM areas, see "About Siebel Application Response Measurement".

Name

Name of the area containing performance data. For a listing of area names, see "About Siebel Application Response Measurement".

Symbol

Symbol of the area containing performance data. For a listing of symbol names, see "About Siebel Application Response Measurement".

NumberOfSubAreas

A count of subareas within the area that contain data. This figure also indicates the number of <SubArea> tags appearing under the particular <Area> tag.

Invocations

Number of times this area was called during the monitoring period.

  • Recursive – One of the key features of Siebel ARM is the capability to handle recursion. An example of a recursive call is if a workflow step calls a Siebel Application Object Manager function, which also invokes another workflow step. When accounting for the number of times the workflow layer is called, Siebel ARM uses two metrics: Recursive and NonRecursive. In the previous example, Recursive is 1 and NonRecursive is also 1. When calculating the response time, only the root-level call is accounted for, that is, the first workflow call to the Siebel Application Object Manager function. When calculating execution time, both calls are accounted for.

  • Nonrecursive – Number of times an instrumentation area is called. This tag helps identify how fast it takes a layer to respond to a request.

ResponseTime

Specifies the time spent for a request to enter and exit an instrumentation area (layer), including calls to other child areas. It is also called inclusive time in other commercial profiling tools. Other tags in this area include:

  • Total – Total time spent by requests through this instrumentation area (layer).

  • Average – Average response time for a request.

  • StandardDeviation – The standard deviation value of request times through this area.

  • +<Maximum> – The maximum time spent by a request in this area. Expand this tag to review further details on the specific Siebel ARM node where this time was spent. For more information about Siebel ARM node tags, see "About Call Graph Generation Analysis and Data".

  • +<Minimum> – The minimum time spent by a request in this area. Expand this tag to review further details on the specific Siebel ARM node where this time was spent. For more information about Siebel ARM node tags, see "About Call Graph Generation Analysis and Data".

ExecutionTime

Specifies the total time spent in a particular instrumentation area, not including the time spent in the descendant layers. It is also called exclusive time in other commercial profiling tools. Other tags in this area include:

  • Total – Total time spent for a request to enter and exit an instrumentation area (layer).

  • Calls – Total number of calls including both recursive and nonrecursive calls.

  • Average – Average time spent for a request to enter and exit an instrumentation area (layer).

  • Maximum – Maximum time for a request to enter and exit an instrumentation area (layer).

  • Minimum – Minimum time for a request to enter and exit an instrumentation area (layer).

  • PercentageofResponse – Percentage of the total response time spent in the area.

RecursiveTime

Specifies the total time spent in recursive calls within this area. That is, the time spent in this area when it calls itself. Other tags in this area include:

  • Total – Total time spent for recursive requests.

  • Calls – Number of recursive calls.

  • Average – Average time spent for a recursive request.

  • Maximum – Maximum time spent by a recursive request.

  • Minimum – Minimum time spent by a recursive request.

  • PercentageofResponse – Percentage of the total response time spent recursively in the area.

InclusiveMemory

Specifies the amount of memory used by requests that enter this area and any child or descendent areas. The memory value is recorded in bytes. Other tags in this area include:

  • Total – Total memory usage by requests in this area.

  • Average – Average memory usage by requests in this area.

  • StandardDeviation – The standard deviation value of memory usage in this area.

  • +<MaxAllocated> – Expand this tag to reveal further data on Siebel ARM node where maximum memory was allocated.

  • +<MaxDeallocated> – Expand this tag to reveal further data on Siebel ARM node where memory was deallocated.

For more information about Siebel ARM node tags, see "About Call Graph Generation Analysis and Data".

ExclusiveMemory

Specifies the amount of memory used by requests that enter only this area. The memory value is recorded in bytes. Other tags in this area include:

  • Total – Total memory usage by request in this area.

  • Average – Average memory usage by a request in this area.

  • StandardDeviation – The standard deviation value of memory usage in this area.

  • +<MaxAllocated> – Expand this tag to reveal further data on Siebel ARM node where maximum memory was allocated.

  • +<MaxDeallocated> – Expand this tag to reveal further data on Siebel ARM node where memory was deallocated.

For more information about Siebel ARM node tags, see "About Call Graph Generation Analysis and Data".

SubArea

Specifies performance data captured for a specific subarea of the given area. There can be one or more subareas captured with performance data under a given area.

  • Name – Name of the subarea containing performance data.

  • Symbol – Symbol of the subarea containing performance data.

  • NumberOfInstances – A count of instances within the subarea that contain data. This figure also indicates the number of <Instance> tags appearing under the particular <SubArea> tag. An instance is a further level of detail defining the subarea.

  • Invocations – Number of times this subarea was called during the monitoring period.

  • +<ResponseTime> – Specifies the time spent for requests to enter and exit the subarea. Expand this tag to review further timing details. These tags are the same as those defined for the area ResponseTime tag.

  • +<ExecutionTime> – Specifies the time spent in the subarea. Expand this tag to review further timing details. These tags are the same as those defined for the area ExecutionTime tag.

  • +<InclusiveMemory> – Specifies the amount of memory used by requests that enter this subarea and any child or descendent areas. The memory value is recorded in bytes. Expand this tag to review further memory details. The expanded tags are the same as those defined for the area InclusiveMemory tag.

  • +<ExclusiveMemory> – Specifies the amount of memory used by requests that enter only this subarea. The memory value is recorded in bytes. Expand this tag to review further memory details. The expanded tags are the same as those defined for the area ExclusiveMemory tag.

  • +<Instance> – An instance is another level of detail defining the subarea. Expand this tag to review further the instance's details. These tags are the same as those defined for the area tag.

  • +<Parents> – Specifies the parents of the subarea; that is, those areas that called the subarea. Expand this tag to review further parent subarea details. These tags are the same as those defined for the area Parents tag.

  • +<Children> – Specifies the children of the subarea; that is, those areas called by the subarea. Expand this tag to review further parent subarea details. These tags are the same as those defined for the area Children tag.

Parents

Specifies the parents of the subarea; that is, those areas that called the given area. This information helps identify the caller or callers of an area and the total time and number of calls the area contributed to its parent's response time.Other tags in this area include:

  • NumberOfParents – A count of parent areas calling the given area.

  • ParentArea – Specifies performance data captured for a specific parent area of the Siebel ARM architecture. There can be one or more parent areas captured with performance data.

  • Name – Name of the parent area calling the given area.

  • Symbol – Symbol of the parent area calling the given area.

  • +<InvocationsFromParents> – Number of times the given area was called by the parent area. Expand this tag for further timing details.

  • +<ResponseTime> – Specifies the time spent for a request to enter and exit the parent area. Expand this tag for further parent area response time details.

  • +<Memory> – Specifies the amount of memory used by parent area. Expand this tag to review further parent subarea details.

Children

Specifies the areas called by a parent area; that is, those areas called by the given area. Expanding an area's children information determines response time break downs within each of the children. Other tags in this area include:

  • NumberOfChildren – A count of child areas called by the given area.

  • ChildArea – Specifies performance data captured for a specific child area of the Siebel ARM architecture. There can be one or more child areas captured with performance data.

  • Name – Name of the child area called by the given area.

  • Symbol – Symbol of the child area called by the given area.

  • +<InvocationsOfChild> – Number of times the child area was called by the given area. Expand this tag for further timing details.

  • +<ResponseTime> – Specifies the time spent for a request to enter and exit the child area. Expand this tag for further child area response time details.

  • +<Memory> – Specifies the amount of memory used by child area. Expand this tag to review further child subarea details.


About Call Graph Generation Analysis and Data

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

A call graph generation analysis constructs a map of call references. Each node in the call map represents an instrumentation instance, that is, response times for an individual request through an instrumented area. For information about instrumented areas, see "About Siebel Application Response Measurement". For more information about creating this format of Siebel ARM output, see "Running Call Graph Generation".

Running a call graph generation analysis of a Siebel ARM file results in an extensible markup language (XML) output file. For a given Siebel ARM file, the Siebel ARM Analyzer Tool constructs a map with call references. Each node in the call map represents an instrumentation instance. Use this option to generate an XML file containing all of the calls made by each component (if that component captures response time data).

The XML output file contains the following tag schema, which records the details of the calls.

<SarmNode>
   <SarmID>
   <TypeLevel>
   <RootID>
   <ParentSARMID>
   <ParentTimeID>
   <ParentProcID>
   <AreaCodeSymbol>
   <AreaDescription>
   <SubAreaCodeSymbol>
   <SubAreaDescription>
   <Count>
   <Duration>
   <PooledMemoryUsage>
   <PooledMemoryCalls>
   <SystemMemoryUsage>
   <SystemMemoryCalls>
   <AppInt1>
   <AppInt2>
   <AppString1>
   <AppString2>
   +<ChildNode>
</SarmNode>

For descriptions of each of the tags, see Table 15-11.

Table 15-11 Call Graph Generation Analysis Tags

Tag Description
SarmNode

Data contained within this tag represents an instance of a Siebel ARM node, which is an instrumented area of the Siebel ARM architecture. Each Siebel ARM node can have zero to many nodes as its descendants.

SarmID

A unique number representing the Siebel ARM node.

TypeLevel

The granularity level at which Siebel ARM records the Siebel ARM node information. For more information about granularity level, see "About Siebel ARM Parameters and Variables".

RootID

The SarmID of the root Siebel ARM node.

ParentSARMID

The parent SarmNode from which the request traveled.

ParentTimeID

A unique ID number that generates from the starting time of the corresponding parent Siebel ARM node.

ParentProcID

The parent process ID, that is, the OS (operating system) process ID for the Siebel component.

AreaCodeSymbol

Symbol of the instrumentation area within the Siebel architecture. For information about Siebel architecture areas, see "About Siebel Application Response Measurement".

AreaDescription

Name of the instrumentation area within the Siebel architecture. For information about Siebel architecture areas, see "About Siebel Application Response Measurement".

SubAreaCodeSymbol

Symbol of the subarea within an area of the Siebel architecture. For information about Siebel architecture areas, see "About Siebel Application Response Measurement".

SubAreaDescription

Name of the subarea within an area of the Siebel architecture. For information about Siebel architecture areas, see "About Siebel Application Response Measurement".

Count

Number of times Siebel ARM accesses this Siebel ARM Node.

SubArea

Detailed instrumentation within an area of the Siebel architecture. For example, Siebel ARM captures response time for invoking a method (Invoke Method) or executing a step (Step Execution) within a Workflow execution.

StartTime

Internal representation of the Siebel ARM record time stamp.

Duration

Total time to execute the instrumented area.

PooledMemoryUsage

Amount of memory consumed from or released to the Siebel High Performance memory allocator.

PooledMemoryCalls

The number of calls made to the High performance memory allocator.

SystemMemoryUsage

Amount of memory consumed from or released to the operating system.

SystemMemoryCalls

The number of calls made to the operating system.

UserInt1

Context information captured at the point of instrumentation. The value depends on the instrumented area.

UserInt2

Context information captured at the point of instrumentation. The value depends on the instrumented area.

UserString

Context information captured at the point of instrumentation. The value depends on the instrumented area. For example, name of the method invoked or workflow process initialized.

AppInt1 and AppInt2

Context integer value captured at the point of instrumentation. The value depends on the instrumented area.

AppString1 and AppString2

Context string value captured at the point of instrumentation. The value depends on the instrumented area. For example, name of the method invoked or workflow process initialized.

+<ChildNode>

Expand this tag to reveal performance details on descendent nodes of the given node. The descendent nodes are defined the same as the parent node, that is, the tag definitions are the same as above.


About User Session Trace Analysis and Data

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

Running a user session trace analysis using Siebel ARM files from the Web server and the Siebel Server results in an extensible markup language (XML) output file. The XML output file contains detailed information on each of the SWE requests made by the user identified when running the Siebel ARM file conversion.

If the user logs onto the system multiple times, the output shows that there are multiple sessions. The SWE requests are grouped into specific login sessions and sorted by the time the requests were made. For more information about the Siebel ARM architecture, see "About Siebel Application Response Measurement". For more information about creating this format of Siebel ARM output, see "Running User Session Trace".

The XML output file contains the following tag schema, which records the details of user session trace. The user session trace data also contains the tag schema of the performance aggregation analysis. For more information about those tags, see "About Performance Aggregation Analysis and Data".

<UserID>
   <Session>
      <SessionID>
      <UserActionID>
         <ID>
         <SWERequest>
            <ReqID>
            <TotalServerTime>
            <WebServerTime>
            <NetworkTime>
            <SiebServerTime>
            <DatabaseTime>
            <DatabaseCalls>
            +<SiebsrvrDetail>

For descriptions of each of the tags specific to the user session trace analysis, see Table 15-12. For descriptions of the tags that are also a part of the performance aggregation analysis, see Table 15-10.

Table 15-12 User Session Trace Tag Descriptions

Tag Description
UserID

User login name. For example, SADMIN.

Session

Specifies performance data captured for a specific user session contained within this tag.

SessionID

Refers to a unique user session ID in hexadecimal format. The first component of the Session ID refers to the Server ID, the second refers to the Process ID, and the last section to the Task ID. For example:

!1.2b40.182b

Server ID = !1

Process ID = 2b40 (2b40 is 11072 in decimal format and represents the Operating System Process ID number.)

Task ID = 182b (182b is 6187 in decimal format and represents the task ID number.)

UserActionID

Data contained within this tag represents a specific individual action or request of the user.

ID

Number that identifies the specific user action or request in sequence for that particular user session.

SWERequest

Specifies performance timing data for the specific user action or request.

ReqID

An incremental numeric ID number corresponding to a Siebel Web Server Extension (SWSE) plug-in request.

TotalServerTime

Total request time on the servers (includes Web server, Siebel Server, and network time).

WebServerTime

Total time spent on the Web server for a given request.

NetworkTime

The total time spent between the Web server and the Siebel Server. This time can also include some Siebel infrastructure time routing the request to the handling Siebel Server task.

SiebServerTime

The time spent on the Siebel Server.

DatabaseTime

The time spent on the network when communicating to the database.

DatabaseCalls

The number of calls to the Siebel Server database connector layer.

+<SiebsrvrDetail>

Response time and execution time for each of the architectural areas of instrumentation for a given session. For more information about these tags, see "About Performance Aggregation Analysis and Data" and "About Call Graph Generation Analysis and Data".


About Siebel ARM to CSV Conversion Data

This topic is part of "Analyzing Siebel ARM Files Using the Siebel ARM Analyzer Tool".

CSV format is a comma-separated file without any interpretation or aggregation.The CSV file contains data organized under column headers. Use third-party software tools to view this output, for example, a spread sheet. For more information about creating this format of Siebel ARM output, see "Running Siebel ARM Data CSV Conversion". For a listing and description of these column headers, see the definitions of the tags for the call graph analysis in "About Call Graph Generation Analysis and Data". Information can be reviewed and organized by these columns. See Figure 15-1 for an example of CSV data.

Figure 15-1 Example of CSV Data