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