Resource Identifiers

A resource-instance is a specific object within a class-name class. The resource-instance includes the resource type and the name of the specific resource.

In the following SSID that identifies CPU instance 0, id/0 is the resource-instance, id is the resource type, and 0 is the name of the specific cpu resource:

//:class.cpu//:res.id/0

If class-name is svc, resource-instance is a service instance FMRI. The following SSID identifies the system/identity:node SMF service instance, where fmri is the resource type, and system/identity:node is the name of the specific svc resource:

//:class.svc//:res.fmri/system/identity:node

If class-name is app, resource-instance is a running instance of the application.

Both class and res components are required to identify any system resource. Identical resource names can identify completely different resources and are differentiated by class. For example, in //:class.cpu//:res.id/0, id/0 is CPU 0; in //:class.lgroup//:res.id/0, id/0 is locality group 0; in //:class.pset//:res.id/0, id/0 is processor set 0; and in //:class.zone//:res.id/0, id/0 is non-global zone 0. The following command shows that the statistics available for each of these identically-named resources are completely different because the resources are not the same kind (class) of object:

$ sstore list //:class.*//:res.id/0//:stat.*
IDENTIFIER
//:class.cpu//:res.id/0//:stat.fpu-usage
//:class.cpu//:res.id/0//:stat.integer-pipe-usage
//:class.cpu//:res.id/0//:stat.interrupt-count
//:class.cpu//:res.id/0//:stat.interrupt-time
//:class.cpu//:res.id/0//:stat.usage
//:class.cpu//:res.id/0//:stat.xcalls
//:class.pset//:res.id/0//:stat.load-average
//:class.pset//:res.id/0//:stat.ncpus
//:class.pset//:res.id/0//:stat.runnable-threads
//:class.pset//:res.id/0//:stat.waiting-threads

As much as possible, resource names are the same as names used in the related administrative commands. The following example shows that the names of resources for disk and nfs class objects match the names of the devices in iostat output:

$ iostat -x
                    extended device statistics
device     r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b
sd0       0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
sd1       0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0
sd2       0.4    1.0   66.9  223.8  0.0  0.0    0.0    4.8   0   0
sd3       1.9    7.7   20.9   86.1  0.0  0.1    0.0    6.4   0   2
...
nfs85     0.0    0.0    0.0    0.1  0.0  0.0  183.3  480.3   0   0
nfs1314   0.0    0.0    0.0    0.1  0.0  0.0    0.0    1.2   0   0
nfs2719   0.0    0.0    0.0    0.0  0.0  0.0    0.0    1.0   0   0
nfs3102   0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.9   0   0
$ sstore list //:class.disk//:*
IDENTIFIER
//:class.disk//:event.fault
//:class.disk//:res.name/sd0
//:class.disk//:res.name/sd1
//:class.disk//:res.name/sd10
...
$ sstore list //:class.nfs/client//:*
IDENTIFIER
//:class.nfs/client//:res.name/nfs1314
//:class.nfs/client//:res.name/nfs2719
//:class.nfs/client//:res.name/nfs3102

The SSID component that follows the res component is usually a statistic (stat). This component could also be class or event, as shown in the following example.

$ sstore list //:class.cpu//:res.id/0//:*
IDENTIFIER
//:class.cpu//:res.id/0//:class.chip
//:class.cpu//:res.id/0//:class.core
//:class.cpu//:res.id/0//:class.pset
//:class.cpu//:res.id/0//:event.adm-action
//:class.cpu//:res.id/0//:event.fault
//:class.cpu//:res.id/0//:stat.fpu-usage
//:class.cpu//:res.id/0//:stat.integer-pipe-usage
//:class.cpu//:res.id/0//:stat.interrupt-count
//:class.cpu//:res.id/0//:stat.interrupt-time
//:class.cpu//:res.id/0//:stat.usage
//:class.cpu//:res.id/0//:stat.xcalls

A single system resource can be available through multiple classes or through multiple resource identifiers in the same class. See Using Statistics Store Identifier Aliases for examples. On a particular system, some classes might have no resources.