ssid - Statistics Store 識別子
Oracle Solaris Statistics Store では、ssid として知られている統計識別子を使用します。ssid はシステムリソース、統計、およびイベントを指定します。SSID では、統計に対する算術的および統計的操作や、イベント出力のフォーマットも指定します。
ssid は sstore(1) コマンドおよび libsstore(3LIB) ライブラリコールによって使用されます。ssid は、ssid-metadata(7) のマニュアルページで説明されているように、メタデータを使用して定義できます。
ssid は文字列であり、//: のみが ssid のコンポーネントを区切るための予約されたシーケンスです。各コンポーネントには、独自の文字制約が設けられている場合があります。
//:class と //:res のコンポーネントペアは、システムリソースを識別するために必要です。次の例は CPU 0 を識別しています。
//:class.cpu//:res.id/0
//:stat コンポーネントは統計を識別します。次の SSID は CPU 0 の使用率を表しています。
//:class.cpu//:res.id/0//:stat.usage
一部の統計は、集約として表示したり、選択されたパーティション別に表示したりできます (//:part セクションで記述される)。たとえば、CPU 使用率をモード (カーネル、ユーザーなど) ごとに分類できます。
//:class.cpu//:res.id/0//:stat.usage//:part.mode
イベントは、期間が特定されたリソースまたはクラスへの変更です。次の SSID は CPU 0 の障害を表しています。
//:class.cpu//:res.id/0//:event.fault
統計にはさまざまな操作を使用できます。例:
//:class.cpu//:res.id/0//:stat.usage//:part.mode//:op.rate
イベントには定義済みの一連のフォーマット操作を使用できます。
//:class.cpu//:res.id/0//:event.fault//:fmt.summary
システムリソース間の関係は、ssid 内でトポロジとして表すことができます。
ssid 内で複数の項目を一致させるために、スライスおよびワイルドカード表記法を使用できます。* は単純なワイルドカード文字です。次の例は、ssid 内での CPU のマッチングを示しています。
//:class.cpu//:res.id/*
//:class.cpu//:res.id///:s.[0:5]
SSID の各コンポーネントには、説明やデータタイプなどの情報を含むメタデータがあります。この情報を取得するには、sstore(1) の info サブコマンドを使用します。
コレクションは、統計およびイベントのグループへの参照です。
SSID には次のコンポーネントを含めることができます。
統計が生成されるシステム。デフォルトは //:system.name/localhost です。現在、//:system.name/localhost のみがサポートされています。
システムリソースは、クラス、リソースタイプ、およびリソース名の組み合わせによって識別されます。クラスは、そのクラス内でリソースの名前をどのように付けられるかを定義します。同じクラス内の複数の名前で単一のリソースを利用できることがあります。たとえば、次の名前はどちらも同じデバイスを指しています。
//:class.disk//:res.dev/zvblk0
//:class.disk//:res.name/zvblk0
SSID 内のリソース名は通常、管理コマンドで使用されるリソース名と同じです。
また、一部のリソースは複数のクラス内に異なる名前 (正式には別名として知られている) で表示できます。たとえば、ディスクは //:class.disk および //:class.dev の両方で表示できます。ただし、特定のリソースのすべての別名が常に使用可能であるわけではありません。
クラス名には英数字 (小文字が強く推奨される) およびハイフン文字 (-) のみを含めることができ、先頭文字は英数字にする必要があります。リソース名には制約がありません。
ベストプラクティスとして、クラスを追加するときは一意の会社名を使用してください。//:class.solaris/ および //:class.s/ は明示的に予約されています。//:class.site は管理用に使用できます。
特定のシステム上の現在のクラスの一覧は、次のコマンドで表示できます。
$ sstore list //:class.*
クラス内のリソースは、次のコマンドで表示できます。
$ sstore list //:class.cpu//:res.*
リソース間の関係は、トポロジリンクとして ssid 名前空間で表されます。トポロジに関係なく、ssid 内の最後のクラスおよびリソースによってシステム内の任意のリソースを参照できます。リソースがそのトポロジによってのみ指定されることはありません。
システムのトポロジを知らなくてもリソースを指定できますが、トポロジを調べたり表したりすることが役立つ場合も多くあります。トポロジを表すには、次の例に示すように、クラス/リソースのペアをほかの関連リソースのあとに許可します。
//:class.chip//:res.id/0//:class.cpu//:res.id/0 //:class.chip//:res.id/0//:class.cpu//:res.id/1
これは、チップ 0 に CPU 0 と 1 が含まれていることを示しています。
トポロジは、トポロジが変更される特定の時点でのみ有効です。過去の特定の時点のトポロジを問い合わせるには、その時間範囲で名前空間を調べます。
リソースとクラスの両方に統計を指定できます。統計は、リソースまたはクラスに関する情報の一部です。カウンタ (推奨) やスカラーなど、サポートされている一連の共通する統計タイプがあります。一般的なメタデータとその中でも特に統計タイプの詳細は、sstore(7) を参照してください。
//:class.link/phys//:res.name/net0//:stat.in-bytes
統計のみをパーティション化できます。パーティションは、その統計を構成するエンティティーの動的なビューを提供します。パーティションは、static または dynamic として定義できます。static パーティションには、そのパーティションに含まれるエンティティーの正確な名前の完全な列挙 (メタデータ内) が含まれています。こうした static パーティションの 1 つに、次に示すような CPU 使用率の mode パーティションがあります。
//:class.cpu//:stat.usage//:part.mode
dynamic パーティションは、問い合わせるタイミングによって異なるエンティティーリストを返します。通常は、完了時にパーティションを定義するようにしてください。パーティション内のすべてのエンティティーを結合すると、100% の統計が得られます。1 つの統計に関するパーティションを検出するには、次のように sstore list コマンドを使用します。
$ sstore list //:class.cpu//:stat.usage//:part.*
イベントは、リソースまたはクラスへの変更に関する、期間が特定された情報です。現在、イベントは各種リソースを対象とした障害および管理アクションで取得されます。
たとえば、すべての CPU を対象とした管理アクション、障害、およびアラートはそれぞれ次のようになります。
//:class.cpu//:res.id/*//:event.adm-action
//:class.cpu//:res.id/*//:event.fault
//:class.cpu//:res.id/*//:event.alert
統計には定義済みの一連の数学的および統計的操作を使用できます。特定の統計またはイベントに使用できる操作は、そのタイプおよびメタデータによって制約されます。
操作の完全なリストは、ssid-op(7) に記載されており、次のコマンドで表示できます。
//:class.cpu//:stat.usage//:part.mode//:op.rate
イベントには定義済みの一連のフォーマット操作を使用できます。フォーマット操作の完全なリストは、ssid-op(7) に記載されており、次のコマンドで表示できます。
//:class.cpu//:res.id/0//:event.fault//:fmt.summary
詳細は、ssid-collection.json(5) のマニュアルページを参照してください
単純なワイルドカード文字のメカニズムとして * を使用できます。たとえば、次のようにすべてのクラスを一致させることができます。
//:class.*
* はいつでも使用可能であり、次の //: セパレータに一致します。たとえば、次のようにすべてのクラスを一致させることができます。
//:clas*
また、スライスを使用して、名前空間に含まれるリソース、統計、パーティション、およびほかのエンティティーのリストを一致させることもできます。これは、操作の使用時に非常に役立つことがあります。
次に例に示すように、スライスを使用して、0 - 5 の ID を持つ CPU を一致させることができます。
//:class.cpu//:res.id///:s.[0:5]
sstore(1)、ssid-collection.json(5)、ssid-metadata(7)、ssid-op(7)、sstoreadm(1)