Go to main content

man pages section 3: Remote Administration Daemon Module Interfaces

Exit Print View

Updated: July 2017
 
 

kstat (3rad)

Name

kstat - API for kernel statistics

Synopsis

interface Kstat
Kstatinfo info ;
boolean stale ;
Snapshot snapshot ;

Snapshot fresh_snapshot();

interface Control
update();

Description

KSTAT(3rad)                 RAD Module Definitions                 KSTAT(3rad)



NAME
       kstat - API for kernel statistics

SYNOPSIS
   interface Kstat
       Kstatinfo info ;
       boolean stale ;
       Snapshot snapshot ;

       Snapshot fresh_snapshot();

   interface Control
       update();

DESCRIPTION
       API com.oracle.solaris.rad.kstat

       This API exposes kernel statistics, or kstats, to rad(1m) clients.

       Two core interfaces are provided:

        1. Kstat - an object that represents a kstat

        2. Control - an administration object

       Python kstat wrapper.

INTERFACES
   interface Kstat
       The Kstat interface represents a kernel statistic. Handles to this type
       of object can be retrieved from the RAD server using a kstat proxy
       object. To retrieve a specific instance, be aware of these additional
       keys:

        1. a key named "class" paired with a kstat class

        2. a key named "module" paired with a kstat module

        3. a key named "instance" paired with a kstat module (integer)
           instance

        4. a key named "name" paired with a kstat name

       For example, to print statistics about a particular CPU on a system:

       Example 1. Kstat interface (Python)

           import rad.client as radcli
           import rad.connect as radcon
           import rad.bindings.com.oracle.solaris.rad.kstat_1 as kbind

           # Create a connection
           con = radcon.connect_unix()

           # Retrieve a particular kstat
           pat = radcli.ADRGlobPattern({"class" : "misc", "module" : "cpu_info", "instance" : "2", "name" : "cpu_info2"})
           # Get a native-looking python object that throws RAD exceptions
           kstat = con.get_object(kbind.Kstat(), pat)

           # Do something with our kstat
           data = kstat.fresh_snapshot().data
           assert data.discriminant == kbind.Kstype.NAMED
           for named in data.NAMED:
               print "%s: %s" % (named.name, getattr(named.value,
                   str(named.value.discriminant)))


       Kstat Properties
           Kstatinfo info (read-only) -- static kstat information

           boolean stale (read-only) -- true if the kstat doesn't exist

               kstats are often associated with parts of the system that can
               come and go over time, and likewise will come and go. To
               simplify consumers, a kstat object once referenced will remain
               but be marked stale when the underlying kstat object goes away.

           Snapshot snapshot (read-only) -- a snapshot of the kstat as of the
           last update

               Read Error: (no type) -- the kstat doesn't currently exist

       Kstat Methods
           Snapshot fresh_snapshot()

               obtains a fresh snapshot of the kstat

               Result:

               Snapshot

               Error:

               (no type) -- the kstat doesn't currently exist

   interface Control
       The Control interface is an administrative API into the kstats
       subsystem. Handles to this type of object can be retrieved from the RAD
       server using a simple object proxy.

       Control Methods
           update()

               update the kstat chain

               Updates the kstat chain. All referenced kstats' snapshots are
               updated. After update, the set of available kstats may change.

ENUMERATED TYPES
       enum Ksdtype -- a named kstat data value type

           CHAR (0) -- a string (of up to a fixed size)

           INT32 (1) -- a signed 32-bit integer

           UINT32 (2) -- an unsigned 32-bit integer

           INT64 (3) -- a signed 64-bit integer

           UINT64 (4) -- an unsigned 64-bit integer

           FLOAT (5) -- a 32-bit floating point number

           DOUBLE (6) -- a 64-bit floating point number

           STRING (7) -- an arbitrary lengthed string

       enum Kstype -- kstat type

           RAW (0) -- raw data, can be anything

           NAMED (1) -- name/value pairs

           INTR (2) -- interrupt statistics

           IO (3) -- I/O statistics

           TIMER (4) -- event timers

           UNKNOWN (5)

STRUCTURE TYPES
       struct Ksvalue -- a named kstat data value

           This is a struct representing a named kstat data value. Use the
           discriminant enum to determine what type of data the value holds.

           Fields:

           Ksdtype discriminant

           string CHAR (nullable)

           integer INT32

           uinteger UINT32

           long INT64

           ulong UINT64

           float FLOAT

           double DOUBLE

           string STRING (nullable)

       struct Kstat_named -- a named kstat name/value pair

           Fields:

           string name -- counter name

           Ksvalue value -- counter value

       struct Kstat_intr -- interrupt statistics

           Counters for various types of interrupts.

           Fields:

           uinteger hard -- hardware interrupts

           uinteger soft -- soft interrupts

           uinteger watchdog -- watchdog interrupts

           uinteger spurious -- spurious interrupts

           uinteger multsvc -- multiple-service interrupts

       struct Kstat_timer -- a timer kstat statistic

           Provides basic counting and timing information.

           Fields:

           string name -- event name

           ulong num_events -- number of events

           ulong elapsed_time -- cumulative elapsed time

           ulong min_time -- shortest event duration

           ulong max_time -- longest event duration

           ulong start_time -- previous event start time

           ulong stop_time -- previous event stop time

       struct Kstat_io -- I/O statistics

           Fields:

           ulong nread -- number of bytes read

           ulong nwritten -- number of bytes written

           uinteger reads -- number of read operations

           uinteger writes -- number of write operations

           ulong wtime -- cumulative wait time

           ulong wlentime -- cumulative wait length*time product

           ulong wlastupdate -- last time wait queue changed

           ulong rtime -- cumulative run time

           ulong rlentime -- cumulative run length*time product

           ulong rlastupdate -- last time run queue changed

           uinteger wcnt -- count of elements in wait state

           uinteger rcnt -- count of elements in run state

       struct Ksdata -- typed kernel statistics data

           Use the discriminant enum to determine what type of data the
           structure holds.

           Fields:

           Kstype discriminant

           opaque RAW (nullable)

           Kstat_named[] NAMED (nullable)

           Kstat_intr INTR (nullable)

           Kstat_io IO (nullable)

           Kstat_timer[] TIMER (nullable)

           string UNKNOWN (nullable)

       struct Snapshot -- a snapshot in time of a kernel statistic

           Fields:

           ulong snaptime -- when this snapshot was taken

           Ksdata data -- statistic snapshot data

       struct Kstatinfo -- static kstat information

           Fields:

           string module -- module name

           string name -- kstat name

           string klass -- kstat class

           integer instance -- module's instance

           Kstype type -- kstat data type

           ulong crtime -- kstat creation time

       Version: (1.0)

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +--------------------+-------------------------+
       |  ATTRIBUTE TYPE    |     ATTRIBUTE VALUE     |
       +--------------------+-------------------------+
       |Availability        | system/management/rad/* |
       +--------------------+-------------------------+
       |Interface Stability | Private                 |
       +--------------------+-------------------------+

SEE ALSO
       rad(1M)



SunOS 5.11                        2017-01-11                       KSTAT(3rad)