Analytics 数据集使用以下属性。除 suspended 以外的所有其他属性都不可变。
|
可用数据集:
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]
列出所有配置的 Analytic 数据集。
请求示例:
GET /api/analytics/v1/datasets HTTP/1.1 Authorization: Basic ab6rt4psMWE= 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 ab6rt4psMWE= 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
下表显示了在删改数据集时使用的查询参数。
|
请求示例:
DELETE /api/analytics/v1/datasets/nfs4.ops/data?granularity=hour
响应示例:
HTTP/1.1 204 No Content
从 Analytic 数据集获取数据。支持检索每秒的数据和细粒度数据。
下表显示了用于获取数据集数据的基于时间的查询参数。
|
如果未提供 start 参数,则开始时间设置为当前时间减去指定样例数据的秒数 (seconds)。start 时间不能是将来时间。如果收集数据所需的秒数会导致数据返回时间晚于当前时间,服务器将等待各个样例收集完毕,然后再返回数据。
要检索细粒度数据,请使用 span 和 granularity 参数的组合。使用了 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。
下表显示了返回的数据集数据属性。
|
startTime 属性可为以下格式之一:
ISO 8601 时间/日期字符串(例如,20130531T01:13:58)
样例索引号
文本字符串 now
用于收集三秒内实时数据的请求示例:
GET /api/analytics/v1/datasets/nfs4.ops%5Bfile%5D/data?start=now&seconds=3 HTTP/1.1 Authorization: Basic ab6rt4psMWE= 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: 239024557
data:
value: 5
startTime: 20130912T21:42:38
samples: 239024558
- sample: 239024558
data:
value: 15
startTime: 20130912T21:42:39
samples: 239024559
- sample: 239024559
data:
value: 25
startTime: 20130912T21:42:40
samples: 239024560
size: 3
---
用于收集一周内每一天的实时数据的请求示例:
GET /api/analytics/v1/datasets/nfs4.ops%5Bfile%5D/data?start=239024557&span=week&granularity=day
HTTP/1.1
Authorization: Basic ab6rt4psMWE=
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: 239024557
data:
value: 5
max: 79
min: 0
startTime: 20130912T21:42:38
samples: 240074328
- sample: 239110957
data:
value: 15
max: 150
min: 1
startTime: 20130913T21:42:38
samples: 240074328
...
- sample: 239629357
data:
value: 25
max: 120
min: 2
startTime: 20130914T21:42:38
samples: 240074328
size: 7