Analytics のデータセットでは、次のプロパティーを使用します。suspended を除くすべてのプロパティーは変更できません。
|
使用可能なデータセット:
ad.avglatency
ad.avglatency[op]
ad.avglatency[result]
ad.binds
ad.binds[hostname]
ad.binds[result]
ad.ops
ad.ops[op]
ad.ops[result]
arc.accesses[hit/miss]
arc.l2_accesses[hit/miss]
arc.l2_size
arc.size
arc.size[component]
cpu.utilization
cpu.utilization[mode]
dnlc.accesses[hit/miss]
fc.bytes
fc.ops
ftp.kilobytes
http.reqs
io.bytes
io.bytes[op]
io.disks[utilization=95][disk]
io.ops
io.ops[disk]
io.ops[op]
iscsi.bytes
iscsi.ops
metacap.bytesused
metacap.percentused
ndmp.diskkb
nfs2.ops
nfs2.ops[op]
nfs3.ops
nfs3.ops[op]
nfs4.ops
nfs4.ops[op]
nfs4-1.ops
nfs4-1.bytes
nic.kilobytes
nic.kilobytes[device]
nic.kilobytes[direction]
sftp.kilobytes
smb.ops
smb.ops[op]
構成済みのすべての分析データセットを一覧表示します。
リクエストの例:
GET /api/analytics/v1/datasets HTTP/1.1 Authorization: Basic Tm8gcGVla2luZyE= Host: zfs-storage.example.com:215 Accept: application/json
結果例:
HTTP/1.1 200 OK Content-Type: application/json Content-Length: 237 X-Zfssa-Analytics-Api: 1.0 { "datasets": [{ "dataset": "dataset-000", "href": "/api/analytics/v1/datasets/arc.accesses[hit/miss]", "name": "arc.accesses[hit/miss]" }, { "dataset": "dataset-001", "href": "/api/analytics/v1/datasets/arc.l2_accesses[hit/miss]", "name": "arc.l2_accesses[hit/miss]", }, { "dataset": "dataset-002", "href": "/api/analytics/v1/datasets/arc.l2_size", "name": "arc.l2_size", }, { "dataset": "dataset-003", "href": "/api/analytics/v1/datasets/arc.size", "name": "arc.size", }, { "dataset": "dataset-004", "href": "/api/analytics/v1/datasets/arc.size[component]", "name": "arc.size[component]", }, { ... }] }
指定されたデータセットからプロパティーを取得します。
リクエストの例:
GET /api/analytics/v1/datasets/nfs4.ops HTTP/1.1 Authorization: Basic Tm8gcGVla2luZyE= Host: zfs-storage.example.com:215 Accept: application/json
結果例:
HTTP/1.1 200 OK Content-Type: application/json Content-Length: 237 X-Zfssa-Analytics-Api: 1.0 { "dataset": { "activity": "none", "dataset": "dataset-030", "explanation": "NFSv4 operations per second", "grouping": "Protocol", "href": "/api/analytics/v1/datasets/nfs4.ops", "incore": 296128, "name": "nfs4.ops", "size": 53211540, "suspended": false } }
新しいデータセットを作成します。
リクエストの例:
POST /api/analytics/v1/datasets HTTP/1.1 X-Auth-User: root X-Auth-Key: password Content-Type: application/json Content-Length: 26 {"statistic": "test.sine"}
結果例:
HTTP/1.1 201 Created Content-Type: application/json Content-Length: 200 Location: /api/analytics/v1/datasets/test.sine { "dataset":{ "href": "/api/analytics/v1/datasets", "name": "test.sine", "grouping": "Test", "explanation": "sine per second", "incore": 34752, "size": 31912, "suspended": false, "activity": "none" } }
データセットの変更コマンドは、単一データセットのデータ収集を一時停止または再開するために使用します。
一時停止リクエストの例:
POST /api/analytics/v1/datasets/nfs4.ops {"suspended":true}
再開リクエストの例:
POST /api/analytics/v1/datasets/nfs4.ops {"suspended":false}
結果例:
HTTP/1.1 202 Accepted Content-Type: application/json Content-Length: 228 X-Zfssa-Analytics-Api: 1.0 { "dataset" { ... "suspended": false } }
データセットを破棄します。
リクエストの例:
DELETE /api/analytics/v1/datasets/test.sine HTTP/1.1
結果例:
HTTP/1.1 204 No Content X-Zfssa-Analytics-Api: 1.0
データセットを保存します。
リクエストの例:
PUT /api/analytics/v1/datasets/nfs4.ops/data
結果例:
HTTP/1.1 202 Accepted
次の表に、データセットの除去で使用される問合せプロパティーを示します。
|
リクエストの例:
次の例では、nfs4.ops データセット内のすべての秒単位、分単位、および時間単位のデータを削除します。毎日、毎週、毎月、または毎年収集されたデータは、データセットに残ります。
DELETE /api/analytics/v1/datasets/nfs4.ops/data?granularity=hour
結果例:
HTTP/1.1 204 No Content
リクエストの例:
次の例では、指定された endtime より前に収集された nfs4.ops データセット内のすべての秒単位、分単位、および時間単位のデータを削除します。
DELETE /api/analytics/v1/datasets/nfs4.ops/data?granularity=hour&endtime=20130910T00:00:00
アクティブな分析データセットからデータを返します。秒単位と粗粒度の両方のデータ取得がサポートされています。
次の表に、データセットデータを取得するための時間ベースの問合せパラメータを示します。
|
開始時間は未来にすることができません。データを収集する秒数が現在の時間を過ぎてしまう場合、サーバーはデータを返す前に各サンプルを待機します。
粒度データを取得するには、パラメータ span と interval の組み合わせを使用します。span と granularity が使用された場合、seconds パラメータは無視されます。span または granularity が正しく入力されない場合、そのリクエストは無視され、代わりに seconds パラメータが使用されます。不適切な、つまりサポートされないリクエストを入力した場合、「Input span and granularity are not supported.」というエラーメッセージが表示されます。
span および granularity パラメータは、次の方法で組み合わせることができます。
span が minute の場合、granularity には minute のみを指定できます。
span が hour の場合、granularity には minute または hour を指定できます。
span が day の場合、granularity には minute、hour、または day を指定できます。
span が week の場合、granularity には hour、day、または week を指定できます。
span が month の場合、granularity には day、week、または month を指定できます。
span が year の場合、granularity には week、month、または year を指定できます。
次の表に、返されるデータセットデータのプロパティーを示します。
|
2 秒分のライブデータを収集するリクエストの例:
GET /api/analytics/v1/datasets/io.ops[op]/data?start=now&seconds=2 HTTP/1.1 Authorization: Basic Tm8gcGVla2luZyE= Host: zfs-storage.example.com:215 Accept: text/x-yaml
結果例:
HTTP/1.1 200 OK Content-Type: text/x-yaml X-Zfssa-Analytics-Api: 1.0 Transfer-Encoding: chunked { "data": [ { "sample": 457642682, "data": { "data": [ { "key": "write", "value": 199 } ], "value": 199 }, "startTime": "20200818T18:43:47", "samples": 457642683 }, { "sample": 457642683, "data": { "data": [ { "key": "write", "value": 289 } ], "value": 289 }, "startTime": "20200818T18:43:48", "samples": 457642684 } ] }
1 週間の期間内に 7 日分のデータを収集するリクエストの例:
GET /api/analytics/v1/datasets/io.ops[op]/data?start=20200811T15:00:00&granularity=day&span=week HTTP/1.1 Authorization: Basic Tm8gcGVla2luZyE= Host: zfs-storage.example.com:215 Accept: text/x-yaml
次のリクエストでは、io.ops[op] データセットが「操作のタイプごとに分類された 1 秒あたりの I/O 操作」 (読み取りまたは書き込み) であることが報告されています。
GET /api/analytics/v1/datasets/io.ops[op]
結果の例。簡潔にするために、7 つの出力サンプルのうち 5 つは省略しています。
HTTP/1.1 200 OK Content-Type: text/x-yaml X-Zfssa-Analytics-Api: 1.0 Transfer-Encoding: chunked { "data": [ { "sample": 457197423, "data": { "max": 3156, "data": [ { "max": 588, "key": "read", "value": 6, "min": 0 }, { "max": 3156, "key": "write", "value": 45, "min": 0 } ], "value": 52, "min": 0 }, "startTime": "20200811T15:00:00", "samples": 457644011 }, { "sample": 457283823, "data": { "max": 3675, "data": [ { "max": 588, "key": "read", "value": 6, "min": 0 }, { "max": 3675, "key": "write", "value": 45, "min": 0 } ], "value": 52, "min": 0 }, "startTime": "20200812T15:00:23", "samples": 457644011 } ] }
sample の値を start の値として使用することもできます。次のリクエストの結果は、指定された 1 秒のサンプルからのデータです。
GET /api/analytics/v1/datasets/io.ops[op]/data?start=457642682 HTTP/1.1