|
Addanc Reference Manual
Addanc User Guide
|
|
|
Brick User Guide
|
|
Instrumentation
Instrumentation Data
The Addanc Brick records metrics for each
HTTP/HTTPS transaction. For each transaction, the Addanc Brick
records a set of information regarding:
- Status of the transaction
- Number of bytes/characters read/received by the virtual client during the
transactions
- Number of bytes/characters sent by the virtual client during the
transaction
- Elapsed Time for the transaction
- Connection Time - elapsed time to open the HTTP connection with the
server, may be zero if a connection error has occurred, or if
- Send Time - elapsed time to send the HTTP GET/POST request headers and
data, if any.
- Receive Time - elapsed time to receive response to the HTTP GET/POST
request, measured from time of first byte to time of last byte.
- Process Time - elapsed time the Addanc system spent processing the
headers/payload of this transaction
Note: Elapsed time (AKA Transaction Time) may exceed the sum
Connection Time + Send Time + Receive Time + Process Time, due to server or
test induced delays between completing the connection and sending the request,
receiving the response and processing the payload, as well as server response
time. If you define response time as the time from sending the last byte of
the request to receiving the first byte of the response, you can compare the
sum Connection Time + Send Time + Receive Time + Process Time+ Response Time
to Transaction Time to obtain a measure of system overhead or system induced
latency.
When a virtual client completes a script (either successfully or
unsuccessfully), the stored and collected instrumentation data is passed to a
set of instrumentation recorders for long term storage. The Addanc
Brick can store the instrumentation data either as a comma delimited
ASCII file and/or into a MySQL database.
Instrument recorders are defined, enabled and configured in the Brick
Configuration File (BCF). This version of the Addanc Brick
supports two kinds of instrumentations recorders, a file recorder and a MySQL
recorder. The Brick may be configured to store results using either or both
recorders.
Instrumentation Recorders
File Recorder
The default recorder for the Addanc Brick is the file recorder.
This recorder is enabled by including the <filerecorder>
entry in the <recorders>
section of the Brick Configuration
File (BCF)
The filename of the instrumentation file can be set via command line
switches and/or the filename tag in <filerecorder>
entry in the configuration file.
Instrumentation File Contents/Format
The instrumentation metrics are written to the
instrumentation file in Comma Delimited Format.
The metrics recorded in the CDF instrumentation file are:
- scriptID -
A string containing the Script Name as specified in the script XML id
tag.
- vcID -
A string containing the Virtual Client Id created by Addanc when
creating a Virtual Client, typically of the format VC<nnnn> where nnnn is the serial number of the
virtual client during the test run.
- pageID -
A string containing the Page ID specified in the script XML id tag for
the page. If the script contained no XML id tag, Addanc builds a default
page ID of the form Page<nnnn>
where nnnn is the serial
number of the page during the test run. The Page ID is used to identify
all transactions "grouped" together on a single page
- txnID -
A string containing the transaction ID specified in the script XML id
tag for the transaction. If the script contains no XML id tag, addanc
builds a default transaction ID of the form Txn<nnnn> where nnnn is the serial number of the
transaction during the test run.
- conStart -
An ASCII floating point number representing the Unix time at the start
of the connect operation for the transaction.
- conEnd -
An ASCII floating point number representing the Unix time at the end of
the connect operation for the transaction
- conTime -
An ASCII floating point number representing the time (in seconds) to
complete the connection operation. This value is the difference
between conEnd and conStart.
- sendStart -
An ASCII floating point number representing the unix time at the start
of the send operation. This time stamp is recorded when Addanc starts
the send operation to transmit the first byte of the HTTP/HTTPS headers.
- sendEnd -
An ASCII floating point number representing the Unix time at the end of
the send operation. This time stamp is recorded when Addanc sends the
last byte of the HTTP/HTTPS page/request.
- sendTime -
An ASCII floating point number representing the time (in seconds) to
complete the send operation. This value is the difference between
sendEnd and sendStart.
- recvStart -
An ASCII floating point number representing the Unix time when Addanc
received the first byte of a response to a HTTP/HTTPS GET or POST
transaction.
- recvEnd -
An ASCII floating point number representing the Unix time when Addanc
received the last byte of HTTP/HTTPS Get or Post transaction.
- recvTime -
An ASCII floating point number representing the time (in seconds) to
complete the receive operation including any headers and the complete
response. This value is the difference between recvEnd and recvStart.
- procStart -
An ASCII floating point number representing the Unix time when the
Addanc script started processing the returned payload.
- procEnd -
An ASCII floating point number representing the Unix time when the
Addanc script completed processing the returned transaction.
- procTime -
An ASCII floating point number representing the time (in seconds) that
Addanc spent processing the payload and headers of a returned
transaction. This value is the difference between procEnd and procStart.
- txnStartTime -
An ASCII floating point number representing the Unix time when the
Addanc script started the transaction.
- txnEndTime -
An ASCII floating point number representing the Unix time when the
Addanc script completed the transaction, including processing time.
- txnTime -
An ASCII floating point number representing the time (in seconds) to
complete the entire transaction, from initiating the connection to
receiving the last byte of the response.
- txnSendBytes -
An ASCII integer representing the count of bytes Addanc sent to the
server as part of the HTTP/HTTPS Get or Post transaction. This value
includes the size the headers and any payload.
- txnRecvBytes -
An ASCII integer representing the count of bytes Addanc received in
response to a HTTP/HTTPS Get or Post transaction. This value includes
the size of any headers returned by the tested application as well as
the size of the response.
- txnHTTPStatus - An ASCII string containing the HTTP
transaction status code.
- txnStatus - An ASCII string containing the transaction
completion status code.
Sample Instrumentation File
Here are the first several lines of an Addanc CDF instrumentation file:
MyScript,VC1,WestWingHome,Potus,1071592713.015586,1071592713.016101,0.000515,1071592713.553814,1071592713.554079,0.000265,1071592713.627238,1071592713.627769,0.000531,1071592713.633644,1071592713.633748,0.000104,1071592713.013016,1071592713.633790,0.620774,132,1239,200,ok
MyScript,VC1,WestWingLogin,PotusLogin,1071592715.652103,1071592715.652544,0.000441,1071592716.498168,1071592716.498417,0.000249,1071592716.645241,1071592716.645882,0.000641,1071592716.653871,1071592716.653969,0.000098,1071592715.649621,1071592716.654010,1.004389,226,2927,200,ok
MyScript,VC1,WWFederalist,FederalistQuery,1071592718.665543,1071592718.665844,0.000301,1071592719.479638,1071592719.479885,0.000247,1071592720.035539,1071592720.036646,0.001107,1071592720.043901,1071592720.044006,0.000105,1071592718.663295,1071592720.044050,1.380755,183,3978,200,ok
MyScript,VC1,WWQuaker,QuakerQuery,1071592720.047810,1071592720.048248,0.000438,1071592720.064430,1071592720.064747,0.000317,1071592720.092634,1071592720.094139,0.001505,1071592720.095724,1071592720.095826,0.000102,1071592720.045202,1071592720.095871,0.050669,257,4032,200,ok
MyScript,VC1,WestWingLogout,Logout,1071592720.099452,1071592720.099872,0.000420,1071592720.127875,1071592720.128190,0.000315,1071592720.156155,1071592720.157695,0.001540,1071592720.164199,1071592720.164235,0.000036,1071592720.096985,1071592720.164275,0.067290,191,1279,200,ok
MyScript,VC2,WestWingHome,Potus,1071592712.555338,1071592712.556053,0.000715,1071592713.553389,1071592713.553746,0.000357,1071592713.610143,1071592713.610654,0.000511,1071592713.625453,1071592713.625541,0.000088,1071592712.493106,1071592713.625583,1.132477,132,1239,200,ok
MyScript,VC2,WestWingLogin,PotusLogin,1071592715.648625,1071592715.652204,0.003579,1071592716.497852,1071592716.498103,0.000251,1071592716.629779,1071592716.630350,0.000571,1071592716.634076,1071592716.634172,0.000096,1071592715.646221,1071592716.634213,0.987992,226,2927,200,ok
MyScript,VC2,WWFederalist,FederalistQuery,1071592718.645574,1071592718.645847,0.000273,1071592719.479330,1071592719.479577,0.000247,1071592720.003580,1071592720.004812,0.001232,1071592720.023865,1071592720.023973,0.000108,1071592718.643362,1071592720.024017,1.380655,183,3978,200,ok
MyScript,VC2,WWQuaker,QuakerQuery,1071592720.027780,1071592720.028214,0.000434,1071592720.036170,1071592720.036476,0.000306,1071592720.063783,1071592720.064918,0.001135,1071592720.074214,1071592720.074324,0.000110,1071592720.025215,1071592720.074367,0.049152,257,4032,200,ok
MyScript,VC2,WestWingLogout,Logout,1071592720.081413,1071592720.081822,0.000409,1071592720.093708,1071592720.093966,0.000258,1071592720.555838,1071592720.556601,0.000763,1071592720.575134,1071592720.575177,0.000043,1071592720.078883,1071592720.575216,0.496333,191,1279,200,ok
MySQL Recorder
The Addnac Brick may also be configured to save instrumentation
data in a MySQL database by inserting the <mySQLRecorder>
entry in the <recorders>
section of the Brick Configuration
File (BCF) By default, this recorder is NOT enabled. The
default BCF must be edited to enable the MySQL recorder. You will also need to
create the database and define a MySQL user and password for the database
connection.
Test Id
When using the file recorder, data from individual test runs can be easily
segregated by changing file names. The MySQL recorder typically used the same
database for all test runs. For this reason, when any test is run with the MySQL
recorder is enabled the user must specify a Test ID which is used to tag the
results of the current test run. The Test ID can also be used to
"collate" the results from several cooperating bricks when performing
a test using distributed testing agents simultaneously generating a test load
for a single system.
Configuring the MySQL Recorder
To enable the MySQL recorder, add the following lines to the BCF
in the <recorders>
section. (See the BCF
documentation for full documentation of the tags in the entry.) If enabled, the
MySQL recorder must be configured to use a valid MySQL database server. The host
name, user name, password and database name are specified in the <mySQLRecorder>
entry.
<mySQLRecorder
host="mysql.yourdomain.com" database="addanc" userid="addancuser"
password="somepassword">
mySQLRecorder
</mySQLRecorder>
The default BCF has these lines commented out. You may use the comments as a
template for creating your own MySQL configuration for the recorder.
Database Schema
The following excerpt from the database installation script describes the
schema of the instrumentation data saved by the MySQL recorder. The field
contents are the same as defined for the file recorder above.
CREATE DATABASE IF NOT EXISTS `addanc`;
USE addanc;
CREATE TABLE IF NOT EXISTS `Instrumentation` (
`instrumentationID` bigint(20) NOT NULL auto_increment,
`brickID` text NOT NULL,
`testID` text NOT NULL,
`scriptID` text NOT NULL,
`vcID` text NOT NULL,
`pageID` text NOT NULL,
`txnID` text NOT NULL,
`conStart` double unsigned zerofill default NULL,
`conEnd` double unsigned zerofill default NULL,
`conTime` double unsigned zerofill default NULL,
`sendStart` double unsigned zerofill default NULL,
`sendEnd` double unsigned zerofill default NULL,
`sendTime` double unsigned zerofill default NULL,
`recvStart` double unsigned zerofill default NULL,
`recvEnd` double unsigned zerofill default NULL,
`recvTime` double unsigned zerofill default NULL,
`procStart` double unsigned zerofill default NULL,
`procEnd` double unsigned zerofill default NULL,
`procTime` double unsigned zerofill default NULL,
`txnStart` double unsigned zerofill default NULL,
`txnEnd` double unsigned zerofill default NULL,
`txnTime` double unsigned zerofill default NULL,
`txnSendBytes` bigint(20) unsigned zerofill default NULL,
`txnRecvBytes` bigint(20) unsigned zerofill default NULL,
`txnHTTPStatus` text,
`txnTxnStatus` text,
PRIMARY KEY (`instrumentationID`),
KEY `brickID` (`brickID`(25)),
KEY `testID` (`testID`(25)),
KEY `scriptID` (`scriptID`(25)),
KEY `vcID` (`vcID`(25)),
KEY `pageID` (`pageID`(25)),
KEY `txnID` (`txnID`(25))
) TYPE=MyISAM;
Previous: Script
File Up: Brick User Guide
Next: <none>
Page Updated: 02/09/2004