$SyStat: Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (1 revision)
(Corrected the contents of %string)
 
(17 intermediate revisions by 6 users not shown)
Line 2: Line 2:
<span class="pageSubtitle">Retrieve system statistics into string</span>
<span class="pageSubtitle">Retrieve system statistics into string</span>


<p class="warning">Most Sirius $functions have been deprecated in favor of Object Oriented methods. There is no OO equivalent for the $SyStat function.</p>
<p class="warn"><b>Note: </b>Many $functions have been deprecated in favor of Object Oriented methods. There is no OO equivalent for the <var>$SyStat</var> function.</p>


This function allows retrieval of system statistics into a string.  
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==
<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>
<table>
<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>
If <var>stat8</var> is <i>not</i> set to <code>8</code>), 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. 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.  


The first argument is a string of blank delimited words indicating the statistics to be returned. The length of each returned statistic is always a multiple of 4 bytes. This facilitates the use of $StatD with the returned string. For more information about available statistics, see the <var class="product">[http://sirius-software.com/maint/download/monr.pdf SirMon User's Guide]</var>.
If <var>stat8</var> is set to <code>8</code>, the first eight bytes of <var class="term">%string</var> is an unsigned binary number indicating the number of milliseconds the Online has been up.  The next ten bytes contain the blank-padded word <code>SYSTEM8</code> followed by two bytes of binary 0.  The actual data, in this case, then starts at offset 20 (byte number 21) in the result string.  
</p></td></tr>


==Syntax==
<tr><th>stat_list</th>
<p class="syntax"><section begin="syntax" />%STRING = $SyStat(stat_list)
<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>
<section end="syntax" /></p>
 
<p>%STRING is made up of binary data, the first 4 bytes of which is an error code. If the error code is negative %STRING will only be 4 bytes long.</p>
<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.  


The data returned by $SyStat 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 a number of milliseconds since the online region was brought up. This provides a convenient number for calculating rates for the statistics. When a positive error code is returned the next 10 bytes contain the blank padded word 'SYSTEM' followed by 2 bytes of binary 0. This means that the actual data starts at offset 16 (byte number 17) in the result string.
</table>


<p class="code">
===Return codes===
  -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 class="caption">$SyStat return codes
</p>
</p>


==Example==
The following program displays some totals for system statistics.
The following program displays some totals for system statistics.
<p class="code"> B
<p class="code">B
%DATA IS STRING LEN 255
   
   
%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
   
   
%DATA = $SyStat('CPU DKIO SVIO')
PRINT 'CPU = ' WITH $UNBIN( $SUBSTR(%DATA, 17, 4) )
IF $LEN(%DATA) = 4 THEN
PRINT 'DKIO = ' WITH $UNBIN( $SUBSTR(%DATA, 21, 4) )
    PRINT '$SYSTAT ERROR... RC = ' WITH $UNBIN(%DATA)
PRINT 'SVIO = ' WITH $UNBIN( $SUBSTR(%DATA, 25, 4) )
    STOP
END
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
</p>
 
<h2>Products authorizing {{PAGENAMEE}}</h2><ul class="smallAndTightList">
<li>[[Sirius $Functions]]
</ul>
<p>
</p>
</p>


[[Category:$Functions|$SyStat]]
[[Category:$Functions|$SyStat]]

Latest revision as of 22:38, 10 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.

If stat8 is not set to 8), the first four 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.

If stat8 is set to 8, the first eight bytes of %string is an unsigned binary number indicating the number of milliseconds the Online has been up. The next ten bytes contain the blank-padded word SYSTEM8 followed by two bytes of binary 0. The actual data, in this case, then starts at offset 20 (byte number 21) 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