Several agents and programs include simple performance counters that record number of calls, elapsed time, peak parallel use and other metrics. The debugger command 140203 causes agents to return current counter values.
Reply Packet Structure
The reply packet contains zero or more GSTA packets where each GSTA packet contains the details of a single counter.
Field # | Name | Description |
110 | Name | The name of the counter |
111 | Count | Number of samples |
112 | Ticks | Number of timer ticks used while executing the task. 1 tick is a millisecond. The precision of Ticks is not very accurate so use caution if trying to get precise performance metrics from this field |
113 | MaxActive | Maximum number of parallel occurances of this task running at the same time |
114 | CurActive | Current number of this task executing |
120 | SlowestTicks | Number of ticks used by the slowest recorded execution |
121 | SlowestTime | Date/Time the slowest task was detected. |
150 | ReturnState0 | Unknown return state. |
151 | ReturnState1 | Return state = Yes |
152 | ReturnState2 | Return state = No |
153-159 | ReturnState3 .. 9 | Additional return states. The meaning of these states is left to each counter |
In addition to counting and timing, each task can indicate the overall return status, such as whether it worked or failed. ReturnState0 is increased when the task does not set a return state. ReturnState1 increments when the task works, ReturnState2 when the task fails. States 3 to 9 are available for individual tasks to report any state they wish. Each task run can only increase one ReturnState field.
Example Reply (XML format)
<DATS> <f100>140203</f100> <f110>3468</f110> <f111>RetailLogic</f111> <f112>3128</f112> <GSTA> <Name>TaskRunnerBUCK</Name> <Count>10</Count> <Ticks>52190</Ticks> <MaxActive>5</MaxActive> <CurActive>0</CurActive> <SlowestTicks>22968</SlowestTicks> <SlowestTime>2017|2|1|9|45|47||</SlowestTime> <ReturnState0>0</ReturnState0> <ReturnState1>10</ReturnState1> <ReturnState2>0</ReturnState2> <ReturnState3>0</ReturnState3> <ReturnState4>0</ReturnState4> <ReturnState5>0</ReturnState5> <ReturnState6>0</ReturnState6> <ReturnState7>0</ReturnState7> <ReturnState8>0</ReturnState8> <ReturnState9>0</ReturnState9> </GSTA> <GSTA> <Name>TaskRunnerDATI</Name> <Count>2</Count> <Ticks>3376</Ticks> <MaxActive>1</MaxActive> <CurActive>0</CurActive> <SlowestTicks>3313</SlowestTicks> <SlowestTime>2017|2|1|9|46|51||</SlowestTime> <ReturnState0>0</ReturnState0> <ReturnState1>2</ReturnState1> <ReturnState2>0</ReturnState2> <ReturnState3>0</ReturnState3> <ReturnState4>0</ReturnState4> <ReturnState5>0</ReturnState5> <ReturnState6>0</ReturnState6> <ReturnState7>0</ReturnState7> <ReturnState8>0</ReturnState8> <ReturnState9>0</ReturnState9> </GSTA> </DATS>
Known Counters
RetailLogic TaskRunnerBUCK
Counts the overall use of any BUCK (read) request processed by RetailLogic. This execution is multi threaded. In rare cases one BUCK request may call another BUCK request and the times will reflect both occurances.
RetailLogic TaskRunnerDATI
Counts the overall use of any DATI (write/edit) request processed by RetailLogic.
RetailLogic TaskRunnerPINB
Counts the overall use of any PINB request processed by RetailLogic. This counter can suffer from false counting if RetailLogic starts to process a request and then decides not to complete it. False counting causes minor variation on idle/busy time reports but does not affect Count or Ticks
Address Address.Validate
Increased each time the API address.validate is called.
WordsPb Email.Validate
Increased each time the API email.validate is called.
WordsPb Name.Validate
Increased each time the API name.validate is called.
Files FilesWebFetch
Indicates a physical files was read and processed. This would generally be a HTM, CSS, JS or image file. This counter is counting all file access performed by Files Agent.
Files dictionary.spellcheck
Indicates a string was passed to be spell checked
Files dictionary.english.spellcheck
Indicates an english string was passed to be spell checked
Http HttpRequests
Raw count on all HTTP requests submitted for processing. Some HTTP requests are by their nature long running so the elapsed counters include both fast and slow type queries
GdsMsAccess Access.SQL1
Raw statistics on all general purpose SQL select statements performed against Access databases. This includes both fast queries and slower background queries that do not affect user operation
GdsMsAccess Access.SQL.Update
Raw statistics on all general purpose SQL update statements performed against Access databases.
GdsDbOdbc ODBC.SQL1
Raw statistics on all general purpose SQL select statements performed against ODBC connected databases. This includes both fast queries and slower background queries that do not affect user operation
GdsDbOdbc ODBC.SQL.Update
Raw statistics on all general purpose SQL update statements performed against ODBC connected databases.