sla.getsli

描述

object sla.getsli(object parameters)

此方法允许为服务等级协议(SLA)计算服务等级指标(SLI)数据。

此方法可供任何类型的用户使用。可以在用户角色设置中撤销调用该方法的权限。更多信息请参见 User roles

参数

(object) 包含SLA ID、报告周期以及可选的服务ID的参数 - 用于计算SLI。

参数 数据类型 描述
slaid ID 要返回可用性信息的SLA的ID。

参数行为:
- 必填
period_from timestamp 报告SLI的起始日期(包含)。

可能的值:时间戳。
period_to timestamp 报告SLI的结束日期(不包含)。

可能的值:时间戳。
periods array 希望报告的周期数。

可能的值:1-100
serviceids ID/array 要返回SLI的服务的ID。

时间段分区

下表展示了根据参数组合返回的时间段切片的排列方式。

返回的时间段不会早于基于SLA生效日期的第一个可用时间段,也不会超过当前时间段。

参数 说明
period_from period_to periods
- - - 返回最后 20 个时间段。
- - 指定 返回由 periods 参数指定的最后几个时间段。
- 指定 - 返回指定 period_to 日期之前的最后 20 个时间段。
- 指定 指定 返回指定 period_to 日期之前由 periods 参数指定的最后几个时间段。
指定 - - 返回从指定的 period_from 日期开始的第一个 20 个时间段。
指定 - 指定 返回从指定的 period_from 日期开始,由 periods 参数指定的第一个时间段。
指定 指定 - 返回指定日期范围内的最多 100 个时间段。
指定 指定 指定 返回在指定日期范围内由 periods 参数指定的时间段。

返回值

(object) 返回计算结果。

属性 数据类型 描述
periods array 报告周期的列表。

每个报告周期由一个 object 表示,包含:
- period_from - 报告周期的起始日期(时间戳)。
- period_to - 报告周期的结束日期(时间戳)。

周期按 period_from 字段升序排列。
serviceids array 报告周期内的服务ID列表。

该列表的排序顺序未定义,即使 serviceids 参数已传递给 sla.getsli 方法。
sli array 每个报告周期和服务的SLI数据(作为二维 array)。

periods 属性的索引用作 sli 属性的第一维

serviceids 属性的索引用作 sli 属性的第二维

SLI 数据

每个报告周期和服务返回的SLI数据包括:

属性 数据类型 描述
uptime integer 服务在计划正常运行时间内处于_OK_状态的时间总量,减去排除的停机时间。
downtime integer 服务在计划正常运行时间内处于_not OK_状态的时间总量,减去排除的停机时间。
sli float SLI(占总正常运行时间的百分比),基于正常运行时间和停机时间计算。
error_budget integer 错误预算get(以秒为单位),基于SLI和SLO计算。
excluded_downtimes array 本报告周期内排除的停机时间的array。

每个object将包含以下参数:
- name - 排除停机的名称。
- period_from - 排除停机的起始日期和时间(包含)。
- period_to - 排除停机的结束日期和时间(不包含)。

排除的停机时间按period_from字段升序排列。

示例

计算 SLI

检索服务ID为"50"、"60"和"70"的SLI数据,这些服务与SLA ID为"5"的SLA相关联。 检索从2021年11月1日开始的3周期的数据。

执行请求:

{
           "jsonrpc": "2.0",
           "method": "sla.getsli",
           "params": {
               "slaid": "5",
               "serviceids": [
                   50,
                   60,
                   70
               ],
               "periods": 3,
               "period_from": "1635724800"
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": {
               "periods": [
                   {
                       "period_from": 1635724800,
                       "period_to": 1638316800
                   },
                   {
                       "period_from": 1638316800,
                       "period_to": 1640995200
                   },
                   {
                       "period_from": 1640995200,
                       "period_to": 1643673600
                   }
               ],
               "serviceids": [
                   50,
                   60,
                   70
               ],
               "sli": [
                   [
                       {
                           "uptime": 1186212,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Excluded Downtime - 1",
                                   "period_from": 1637836212,
                                   "period_to": 1638316800
                               }
                           ]
                       },
                       {
                           "uptime": 1186212,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Excluded Downtime - 1",
                                   "period_from": 1637836212,
                                   "period_to": 1638316800
                               }
                           ]
                       },
                       {
                           "uptime": 1186212,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Excluded Downtime - 1",
                                   "period_from": 1637836212,
                                   "period_to": 1638316800
                               }
                           ]
                       }
                   ],
                   [
                       {
                           "uptime": 1147548,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Excluded Downtime - 1",
                                   "period_from": 1638439200,
                                   "period_to": 1639109652
                               }
                           ]
                       },
                       {
                           "uptime": 1147548,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Excluded Downtime - 1",
                                   "period_from": 1638439200,
                                   "period_to": 1639109652
                               }
                           ]
                       },
                       {
                           "uptime": 1147548,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Excluded Downtime - 1",
                                   "period_from": 1638439200,
                                   "period_to": 1639109652
                               }
                           ]
                       }
                   ],
                   [
                       {
                           "uptime": 1674000,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": []
                       },
                       {
                           "uptime": 1674000,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": []
                       },
                       {
                           "uptime": 1674000,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": []
                       }
                   ]
               ]
           },
           "id": 1
       }

来源

CSla::getSli()ui/include/classes/api/services/CSla.php