$SyStat

From m204wiki
Revision as of 20:19, 9 August 2021 by Alex (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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