$SyStat: Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (minor cleanup)
m (clarify return value)
Line 13: Line 13:
<table>
<table>
<tr><th>%string</th>
<tr><th>%string</th>
<td>Binary data, the first 4 bytes of which is an error code. If the error code is negative, <var class="term">%string</var> will only be 4 bytes long.</td></tr>
<td>If the length of the returned value is four, <var class="term">%string</var> is a binary number indicating an error code. Otherwise, the first four bytes of <var class="term">%string</var>  
is a binary number indicating the number of milliseconds the Online has been up. </td></tr>


<tr><th>stat_list</th>
<tr><th>stat_list</th>
Line 20: Line 21:


===Return codes===
===Return codes===
<p class="code"> -5 - Required parameter not specified
<p class="code"> -5   Required parameter not specified
-12 - Invalid name in stat_list
-12   Invalid name in stat_list
-13 - STAT not linked in
-13   STAT not linked in
-14 - Result string would be longer than 255 bytes
-14   Result string would be longer than 255 bytes
</p>
</p>


==Usage notes==
==Usage notes==
<ul>
<ul>
<li>The data returned by <var>$SyStat</var> is binary, with the first 4 bytes containing an error code. If the error code is negative, only 4 bytes are returned. If the error code is positive, it contains the number of milliseconds since the online region was brought up. This provides a convenient number for calculating rates for the statistics.  
<li>The data returned by <var>$SyStat</var> is binary. If only four bytes are returned, they are an error code. Otherwise, the first four bytes  are the number of milliseconds since the Online region was brought up. This provides a convenient number for calculating rates for the statistics. </li>


<li>When a positive error code is returned, the next 10 bytes contain the blank-padded word <code>SYSTEM</code> followed by 2 bytes of binary 0. This means that the actual data starts at offset 16 (byte number 17) in the result string.
<li>If more than four bytes are returned, the next ten bytes contain the blank-padded word <code>SYSTEM</code> followed by two bytes of binary 0. This means that the actual data starts at offset 16 (byte number 17) in the result string. </li>
</ul>
</ul>



Revision as of 19:59, 3 October 2016

Retrieve system statistics into string

Note: Many $functions have been deprecated in favor of Object Oriented methods. There is no OO equivalent for the $SyStat function.

This function allows retrieval of system statistics into a string.

The $SyStat function accepts one argument and returns a string made up of an error code and returned statistics.

Syntax

%string = $SyStat(stat_list)

%string If the length of the returned value is four, %string is a binary number indicating an error code. Otherwise, the first four bytes of %string is a binary number indicating the number of milliseconds the Online has been up.
stat_list A string of blank-delimited words indicating the statistics to be returned. The length of each returned statistic is a multiple of 4 bytes. This facilitates the use of $StatD with the returned string. For more information about available statistics, see System statistics displayed in SirMon.

Return codes

-5 Required parameter not specified -12 Invalid name in stat_list -13 STAT not linked in -14 Result string would be longer than 255 bytes

Usage notes

  • The data returned by $SyStat is binary. If only four bytes are returned, they are an error code. Otherwise, the first four bytes are the number of milliseconds since the Online region was brought up. This provides a convenient number for calculating rates for the statistics.
  • If more than four bytes are returned, the next ten bytes contain the blank-padded word SYSTEM followed by two bytes of binary 0. This means that the actual data starts at offset 16 (byte number 17) in the result string.

Example

The following program displays some totals for system statistics.

B %DATA IS STRING LEN 255 %DATA = $SyStat('CPU DKIO SVIO') IF $LEN(%DATA) = 4 THEN PRINT '$SYSTAT ERROR... RC = ' WITH $UNBIN(%DATA) STOP END IF PRINT 'CPU = ' WITH $UNBIN( $SUBSTR(%DATA, 17, 4) ) PRINT 'DKIO = ' WITH $UNBIN( $SUBSTR(%DATA, 21, 4) ) PRINT 'SVIO = ' WITH $UNBIN( $SUBSTR(%DATA, 25, 4) ) END