Difference between revisions of "$SyStat"

From m204wiki
Jump to: navigation, search
(Correction on the location of each statistic)
Line 7: Line 7:
  
 
==Syntax==
 
==Syntax==
<p class="syntax"><span class="term">%string</span> = <span class="literal">$SyStat</span>(<span class="term">stat_list</span>)
+
<p class="syntax"><span class="term">%string</span> = <span class="literal">$SyStat</span>(<span class="term">stat_list</span>, [<span class="term">stat8</span>])
 
</p>
 
</p>
 
<table>
 
<table>
 
<tr><th>%string</th>
 
<tr><th>%string</th>
 
<td>If the length of the returned value is exactly four, <var class="term">%string</var> is a binary number indicating an error code. <p>
 
<td>If the length of the returned value is exactly four, <var class="term">%string</var> is a binary number indicating an error code. <p>
Otherwise, the first four bytes of <var class="term">%string</var> is an unsigned binary number indicating the number of milliseconds the Online has been up. This provides a convenient number for calculating rates for the statistics. </p>
+
Otherwise, the first four (or eight if <var>stat8</var> set to <code>8</code>) bytes of <var class="term">%string</var> is an unsigned binary number indicating the number of milliseconds the Online has been up. This provides a convenient number for calculating rates for the statistics. </p>
 
<p>
 
<p>
 
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. </p></td></tr>
 
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. </p></td></tr>
  
 
<tr><th>stat_list</th>
 
<tr><th>stat_list</th>
<td>A string of blank-delimited words indicating the statistics to be returned. Each returned statistic is a 4-byte, unsigned, binary number; the offset of each statistic is plus four from the previous statistic, with the first statistic starting at offset 16 or byte number 17.  This facilitates the use of <var>$StatD</var> with the returned string. For more information about available statistics, see [[System statistics displayed in SirMon]].</td></tr>
+
<td>A string of blank-delimited words indicating the statistics to be returned. Each returned statistic is a 4 (or eight if <var>stat8</var> set to <code>8</code>) byte, unsigned, binary number; the offset of each statistic is 4 or 8 from the previous statistic, with the first statistic starting at offset 16 or byte number 17.  This facilitates the use of <var>$StatD</var> with the returned string. For more information about available statistics, see [[System statistics displayed in SirMon]].</td></tr>
 +
 
 +
<tr><th>stat8</th>
 +
<td>A integer that, if set, can only have a value of <code>8</code>. If set to 8, the returned value starts with an 8-byte timestamp and each statistic occupies 8 bytes.
 +
 
 
</table>
 
</table>
  

Revision as of 21:19, 9 August 2021

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.

Syntax

%string = $SyStat(stat_list, [stat8])

%string If the length of the returned value is exactly four, %string is a binary number indicating an error code.

Otherwise, the first four (or eight if stat8 set to 8) bytes of %string is an unsigned binary number indicating the number of milliseconds the Online has been up. This provides a convenient number for calculating rates for the statistics.

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.

stat_list A string of blank-delimited words indicating the statistics to be returned. Each returned statistic is a 4 (or eight if stat8 set to 8) byte, unsigned, binary number; the offset of each statistic is 4 or 8 from the previous statistic, with the first statistic starting at offset 16 or byte number 17. This facilitates the use of $StatD with the returned string. For more information about available statistics, see System statistics displayed in SirMon.
stat8 A integer that, if set, can only have a value of 8. If set to 8, the returned value starts with an 8-byte timestamp and each statistic occupies 8 bytes.

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

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