Go to main content

man pages section 7: Standards, Environments, Macros, Character Sets, and Miscellany

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

sstore (7)

Name

sstore - Solaris Statistics Store

Description

The Oracle Solaris Statistics Store (sstore) provides the ability to capture, export, and display statistics and event information contained within a statistics repository.

This man page provides a brief overview of sstore features, and includes references to man pages with further information.

Service and Daemon

The sstore functionality is provided by sstored(8). The default system statistics repository is managed by the service: svc:/system/sstore:default.

ssids

The Oracle Solaris Statistics Store uses identifiers known as Statistics Store Identifiers, or ssids. For more information, see the ssid(7) man page. An ssid names system resources, statistics, and events. An ssid can also specify statistical operations and formatting of statistics and events.

ssids are used by the sstore(1) command and the libsstore(3LIB) library calls. ssids can be defined through metadata, as described in the ssid-metadata(7) man page.

For example, the usage for CPU 0 is named by the following ssid:

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

The sstore list command allows you to explore the namespace using wildcards. Each element of the namespace is described by metadata, which can be listed by sstore info command.

Reading Statistics

Statistics and events can be captured and printed with the capture subcommand of the sstore command or by the sstore_data_read(3SSTORE) function.

Any time a statistic is recorded, it is saved as historical data. However, not all statistics are actively gathered (captured) at all points in time. Collections, described in ssid-collection.json(5), describe the statistics are explicitly configured to be persistently captured.

Historical statistics can be viewed in the CLI using the export subcommand of the sstore(1) command.

Providers

The data captured by the statistics store is gathered from a set of providers. Each provider has a native location in the namespace for the statistics or events it provides. The native provider ssids are considered implementation details, and are not shown in the default output. However, certain statistics from providers are mapped into more stable parts of the ssid(7) namespace.

The following provider is supported by the statistics store:

kstat Statistics

All kstats available by querying the libkstatv2 library are automatically available in the statistics store. These statistics are located in //:class.kstat, using the name provided by the kstatv2 library. kstatv2 metadata, if available, is inherited.

proc Statistics

Processes are made available by querying /proc on occasion. These statistics are located under //:class.proc. As the namespace is populated by polling, short lived processes may be missed. If a user is unable to view pids underneath /proc, they will be unable to view them through sstore as well.

Application Statistics

A number of APIs allow userland applications to directly provide statistics to the statistics store. A C API allows a userland program to update counter-based statistics in a shared memory location. When requested, sstored(8) samples the shared data at its own pace, independent of provider updates. This makes updates to the statistics very cheap, eliminating the performance overhead of lock step updates.

See the sstore_data_attach(3SSTORE) man page for more information.

By default, application statistics should be created in //:class.app/<company/product/app>

//:class.app/solaris/ is reserved for Oracle Solaris use.

FMA Events

FMA events, faults, defects and alerts are consumed by the statistics store and are available to statistics store consumers in //:class.event.

DTrace Statistics

The format for DTrace statistics is currently private. Statistics generated by D scripts are available in //:class.dtrace.

See Also

sstore(1), libsstore(3LIB), ssid-metadata(7), ssid-op(7), sstoreadm(1), sstored(8)