Previous: Script FileUp: Brick User GuideNext: <none>

Addanc Reference Manual
Addanc User Guide

Addanc HomeIndexTable of Contents

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:
  1. Status of the transaction
  2. Number of bytes/characters read/received by the virtual client during the transactions
  3. Number of bytes/characters sent by the virtual client during the transaction
  4. Elapsed Time for the transaction
  5. Connection Time - elapsed time to open the HTTP connection with the server, may be zero if a connection error has occurred, or if 
  6. Send Time - elapsed time to send the HTTP GET/POST request headers and data, if any.
  7. Receive Time - elapsed time to receive response to the HTTP GET/POST request, measured from time of first byte to time of last byte.
  8. 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:
  1. scriptID - A string containing the Script Name as specified in the script XML id tag.
  2. 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.
  3. 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
  4. 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.
  5. conStart - An ASCII floating point number representing the Unix time at the start of the connect operation for the transaction.
  6. conEnd - An ASCII floating point number representing the Unix time at the end of the connect operation for the transaction
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. recvEnd - An ASCII floating point number representing the Unix time when Addanc received the last byte of HTTP/HTTPS Get or Post transaction.
  13. 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
  14. procStart - An ASCII floating point number representing the Unix time when the Addanc script started processing the returned payload.
  15. procEnd - An ASCII floating point number representing the Unix time when the Addanc script completed processing the returned transaction.
  16. 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.
  17. txnStartTime - An ASCII floating point number representing the Unix time when the Addanc script started the transaction. 
  18. txnEndTime - An ASCII floating point number representing the Unix time when the Addanc script completed the transaction, including processing time.
  19. 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.
  20. 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.
  21. 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.
  22. txnHTTPStatus - An ASCII string containing the HTTP transaction status code.
  23. 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