sstore - Solaris Statistics Store
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.
The sstore functionality is provided by sstored(8). The default system statistics repository is managed by the service: svc:/system/sstore:default.
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.
For example, the usage for CPU 0 is named by the following ssid:
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.
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.
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:
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.
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.
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, faults, defects and alerts are consumed by the statistics store and are available to statistics store consumers in //:class.event.
The format for DTrace statistics is currently private. Statistics generated by D scripts are available in //:class.dtrace.