Go to main content

Using Oracle® Solaris 11.4 StatsStore and System Web Interface

Exit Print View

Updated: February 2019
 
 

Displaying Values of Statistic Partitions

A partition is a grouping of a set of statistic values. Partitions take arguments to specify which partition data to return. The two types of partitions are static and dynamic.

static

A static partition is a full enumeration of the exact names of the partitions. For example, CPU usage can be broken down by mode, which has component parts user, stolen, kernel, interrupt, and idle time. The components of a static partition are explicitly listed in the partition metadata. To change the list of components of a static partition, code must be changed.

dynamic

Dynamic partitions return a different list of constituents depending on the environment in which the statistic is requested. In many cases, dynamic partitions map to resource names, and the partition metadata describes that mapping. This enables zooming out to examine a partition itself, rather than exploring data by infinite repartitioning.

Use the part keyword to specify which partition data to return. If you do not specify a partition for a statistic that is partitioned, the aggregate value of all parts of the partition is returned.

Displaying Values of Static Partitions

The following command shows that CPU usage is partitioned by mode (partitions: mode):

$ sstore info //:class.cpu//:res.id/0//:stat.usage
 Identifier: //:class.cpu//:res.id/0//:stat.usage
    $schema: //:stat
  stability: stable
  copyright: Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
         id: //:class.cpu//:stat.usage
       type: counter
      units: milliseconds
description: cpu time
 multiplier: 1000000
 partitions: mode

The following command shows that the mode partition is not further partitioned:

$ sstore info //:class.cpu//:res.id/0//:stat.usage//:part.mode
 Identifier: //:class.cpu//:res.id/0//:stat.usage//:part.mode
    $schema: //:stat
  stability: stable
  copyright: Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
         id: //:class.cpu//:stat.usage
       type: counter
      units: milliseconds
description: cpu time
 multiplier: 1000000
Example 1  Display the Aggregate Value of a Partition

The following command shows that the value of a partition is aggregated if you do not specify a component of the partition:

$ sstore capture //:class.cpu//:res.id/0//:stat.usage 1 1
TIME                VALUE IDENTIFIER
2016-03-24T18:38:27 36930677.344138 //:class.cpu//:res.id/0//:stat.usage
Example 2  Display the Value of Each Component of a Partition

The following sstore export command uses the time from the previous sstore capture command to show the values of the individual components of the mode partition:

$ sstore export -t 2016-03-24T18:38:27 -p 1 //:class.cpu//:res.id/0//:stat.usage//:part.mode
TIME                VALUE IDENTIFIER
2016-03-24T18:38:28  //:class.cpu//:res.id/0//:stat.usage//:part.mode
                    user: 199117.527533
                    stolen: 0.0
                    kernel: 611959.447641
                    intr: 44748.067143
                    idle: 36074852.301821

This command shows the arguments that the mode partition can take and the CPU usage for each component. This output also shows that the aggregate value is equal to the sum of the values of all components.

Example 3  Display the Values of Selected Partition Components

The following command specifies the time output from the previous command as the start time and requests CPU usage values at 30-second intervals for just the user and kernel components:

$ sstore export -t 2016-03-17T14:38:58 -e 2016-03-17T14:40:00 -i 30 \
> //:class.cpu//:res.id/0//:stat.usage//:part.mode(user,kernel)
TIME                VALUE IDENTIFIER
2016-03-17T14:38:58  //:class.cpu//:res.id/0//:stat.usage//:part.mode(user,kernel)
                    user: 62370.856013
                    kernel: 176924.262334
2016-03-17T14:39:28  //:class.cpu//:res.id/0//:stat.usage//:part.mode(user,kernel)
                    user: 62498.497821
                    kernel: 177348.326988
2016-03-17T14:39:58  //:class.cpu//:res.id/0//:stat.usage//:part.mode(user,kernel)
                    user: 62674.35045
                    kernel: 177856.063333

If you use the -p option to specify a number of data points, you get the specified number of consecutive data points that were recorded, even if you specified and interval (-i) or an end time (-e). For example, if you added -p 2 to the previous command, you would get values at 14:38:58 and 14:38:59.

Displaying Values of Dynamic Partitions

The following command shows that CPU interrupt time is partitioned by level:

$ sstore info //:class.cpu//:res.id/0//:stat.interrupt-time
     Identifier: //:class.cpu//:res.id/0//:stat.interrupt-time
        $schema: //:stat
      copyright: Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
    description: interrupt time
             id: //:class.cpu//:stat.interrupt-time
     multiplier: 1000000
      stability: stable
           type: counter
          units: milliseconds
index-partition: level
     partitions: level

The following command shows that the level partition is not further partitioned:

$ sstore info //:class.cpu//:res.id/0//:stat.interrupt-time//:part.level
     Identifier: //:class.cpu//:res.id/0//:stat.interrupt-time//:part.level
        $schema: //:stat
      copyright: Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
    description: interrupt time
             id: //:class.cpu//:stat.interrupt-time
     multiplier: 1000000
      stability: stable
           type: counter
          units: milliseconds
index-partition: level

CPU interrupt time levels are defined dynamically. These levels are not defined in metadata.

The following sstore export command shows the total interrupt time for all levels and the total broken down by level:

$ sstore export -t 2016-03-16T17:58:05 -p 1 \
> //:class.cpu//:res.id/0//:stat.interrupt-time \
> //:class.cpu//:res.id/0//:stat.interrupt-time//:part.level
TIME                VALUE IDENTIFIER
2016-03-16T17:58:05 26423.375268 //:class.cpu//:res.id/0//:stat.interrupt-time
2016-03-16T17:58:05  //:class.cpu//:res.id/0//:stat.interrupt-time//:part.level
                    0: 0.961803
                    1: 6316.585538
                    2: 0.0
                    3: 0.0
                    4: 21.417994
                    5: 0.0
                    6: 0.0
                    7: 0.0
                    8: 0.156697
                    9: 13778.346109
                    10: 8.131761
                    11: 0.0
                    12: 0.0
                    13: 6264.349118
                    14: 33.426248

The following command shows specifying components of a partition:

$ sstore export -t 2016-03-16T18:01:05 -e 2016-03-16T18:02:05 -i 60 \
> //:class.cpu//:res.id/0//:stat.interrupt-time//:part.level(1,9,13)
TIME                VALUE IDENTIFIER
2016-03-16T18:01:05  //:class.cpu//:res.id/0//:stat.interrupt-time//:part.level(1,9,13)
                    1: 6366.605509
                    9: 13895.839803
                    13: 6316.887159
2016-03-16T18:02:05  //:class.cpu//:res.id/0//:stat.interrupt-time//:part.level(1,9,13)
                    1: 6385.223526
                    9: 13933.722952
                    13: 6334.397257