Go to main content

Oracle® ZFS Storage Appliance RESTful API 指南,发行版 OS8.8.x

退出打印视图

更新时间: 2021 年 8 月
 
 

Analytics(分析)数据集

Analytics(分析)数据集使用以下属性。除 suspended 以外的所有其他属性都不可变。

属性
说明
name
此数据集的底层统计信息的名称
grouping
此统计信息的所属组
explanation
底层统计信息的说明
incore
内核中的数据集数据的字节数
size
磁盘上的数据集数据的字节数
suspended
指示数据集当前是否处于挂起状态的布尔值
activity
待定数据集活动标志

可用数据集:

  • 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]

列出数据集

列出所有配置的 Analytic 数据集。

请求示例:

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

删改数据集数据

下表显示了在删改数据集时使用的查询参数。

参数
说明
granularity
删改粒度。可以按粒度值 secondminutehour 删改数据集内的数据。
endtime
删改在给定 endtime 之前收集的数据。有关此时间值的格式,请参见查询参数:start

请求示例:

以下示例删除 nfs4.ops 数据集中的所有每秒、每分钟和每小时数据。每天、每周、每月或每年收集的数据保留在数据集中。

DELETE /api/analytics/v1/datasets/nfs4.ops/data?granularity=hour

结果示例:

HTTP/1.1 204 No Content

请求示例:

以下示例删除 nfs4.ops 数据集中在指定的 endtime 之前收集的所有每秒、每分钟和每小时数据。

DELETE /api/analytics/v1/datasets/nfs4.ops/data?granularity=hour&endtime=20130910T00:00:00

获取数据集数据

从处于活动状态的 Analytic(分析)数据集返回数据。支持检索每秒的数据和细粒度数据。

下表显示了用于获取数据集数据的基于时间的查询参数。

参数
说明
start
开始收集样例数据的时间,或者开始收集数据的样例索引。start 时间值可以是特定时间,也可以是关键字 now。有关特定时间值的格式,请参见查询参数:start。默认 start 时间是当前时间减去 seconds 的值。
seconds
收集样例数据的秒数。默认值是 1。如果指定了 spangranularity 参数,则会忽略 seconds 参数。
span
收集样例数据的持续时间:minutehourdayweekmonthyear
granularity
在给定范围内提供数据点平均值时采用的粒度:minutehourdayweekmonthyear

start 时间不能是将来时间。如果收集数据所需的秒数会导致数据返回时间晚于当前时间,服务器将等待各个样例收集完毕,然后再返回数据。

要检索细粒度数据,请使用 spangranularity 参数的组合。使用了 spangranularity 时,将忽略 seconds 参数。如果 spangranularity 中的任一参数输入不正确,则会忽略此请求并改用 seconds 参数。如果请求不正确或不受支持,将显示错误消息 "Input span and granularity are not supported"。

spangranularity 参数可以按如下方式进行组合:

  • 如果 spanminute,则 granularity 只能是 minute

  • 如果 spanhour,则 granularity 可以是 minutehour

  • 如果 spanday,则 granularity 可以是 minutehourday

  • 如果 spanweek,则 granularity 可以是 hourdayweek

  • 如果 spanmonth,则 granularity 可以是 dayweekmonth

  • 如果 spanyear,则 granularity 可以是 weekmonthyear

下表显示了返回的数据集数据属性。

属性
说明
data
样例数据组
sample
样例数据的索引编号
startTime
返回 sample 的时间
min
在指定粒度内的每秒最小值
max
在指定粒度内的每秒最大值

用于收集两秒实时数据的请求示例:

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
    }
  ]
}

用于收集一周内每一天的数据的请求示例:

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] 数据集是“按操作类型细分的每秒 I/O 操作数”(读取或写入):

GET /api/analytics/v1/datasets/io.ops[op]

结果示例。为简洁起见,省略了七个输出样例中的五个:

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 值。以下请求的结果是来自指定的一秒样例的数据:

GET /api/analytics/v1/datasets/io.ops[op]/data?start=457642682 HTTP/1.1