sla.getsli

描述

object sla.getsli(object parameters)

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

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

参数

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

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

参数行为:
- 必填
period_from timestamp 报告SLI的起始时间戳(包含)

可选值: Unix时间戳
period_to timestamp 报告SLI的结束时间戳(包含)

可选值: Unix时间戳
periods integer 需要报告的周期数量

可选值: 1-100
serviceids ID/array 需要返回SLI指标的服务ID

时间段分区

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

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

参数 返回的时间段
period_from period_to periods
- - - 最近20个时间段(包含当前时间段)
- - N 最近N个时间段
- 指定 - period_to之前的最近20个时间段
- 指定 N period_to之前的最近N个时间段
指定 - - period_from开始的前20个时间段
指定 - N period_from开始的前N个时间段
指定 指定 - 指定范围内最多100个时间段
指定 指定 N 指定范围内的N个时间段

返回值

(object) 返回计算结果.

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

每个报告周期表示为一个object, 包含:
- period_from - (timestamp) 报告周期的起始时间戳(包含).
- period_to - (timestamp) 报告周期的结束时间戳(不包含).

周期按period_from排序, 最早的周期排在前面.
serviceids array 报告周期中的服务ID列表.

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

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

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

SLI 数据

每个报告周期和服务返回的SLI数据包含以下内容:

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

每个object将包含以下参数:
- name - (string) 排除的停机时间的名称。
- period_from - (timestamp) 排除的停机时间的开始时间戳(包含)。
- period_to - (timestamp) 排除的停机时间的结束时间戳(不包含)。

排除的停机时间按period_from排序,最早的时间段排在前面。

示例

计算每日SLA的SLI

获取与服务ID为"1"和"4"且关联到SLA ID为"1"的服务相关的SLI数据。 获取截至"1761861599"(2025年10月30日23:59:59 GMT+0200)的单个周期数据。 由于该SLA的reporting period为每日,SLI数据获取时间范围为"1761775200"(2025年10月30日00:00:00 GMT+0200)至"1761861600"(2025年10月31日00:00:00 GMT+0200)。

执行请求:

{
           "jsonrpc": "2.0",
           "method": "sla.getsli",
           "params": {
               "slaid": "1",
               "serviceids": [
                   1,
                   4
               ],
               "periods": 1,
               "period_to": 1761861599,
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": {
               "periods": [
                   {
                       "period_from": 1761775200,
                       "period_to": 1761861600
                   }
               ],
               "serviceids": [
                   1,
                   4
               ],
               "sli": [
                   [
                       {
                           "uptime": 43843,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Maintenance OCT",
                                   "period_from": 1761825600,
                                   "period_to": 1761829200
                               }
                           ]
                       },
                       {
                           "uptime": 32225,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": []
                       }
                   ]
               ]
           },
           "id": 1
       }

计算每月SLA的SLI

获取与服务ID为"50"、"60"和"70"且关联到SLA ID为"5"的服务相关的SLI数据。 获取从"1635724800"(2021年11月1日00:00:00 UTC)开始的三个周期的数据。 由于该SLA的reporting period为月度,因此将获取以下三个月的SLI数据:

  • 从"1635724800"(2021年11月1日00:00:00 UTC)到"1638316800"(2021年12月1日00:00:00 UTC)
  • 从"1638316800"(2021年12月1日00:00:00 UTC)到"1640995200"(2022年1月1日00:00:00 UTC)
  • 从"1640995200"(2022年1月1日00:00:00 UTC)到"1643673600"(2022年2月1日00:00:00 UTC)

执行请求:

{
           "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": "Maintenance Nov 25 - Dec 01",
                                   "period_from": 1637836212,
                                   "period_to": 1638316800
                               }
                           ]
                       },
                       {
                           "uptime": 1186212,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Maintenance Nov 25 - Dec 01",
                                   "period_from": 1637836212,
                                   "period_to": 1638316800
                               }
                           ]
                       },
                       {
                           "uptime": 1186212,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Maintenance Nov 25 - Dec 01",
                                   "period_from": 1637836212,
                                   "period_to": 1638316800
                               }
                           ]
                       }
                   ],
                   [
                       {
                           "uptime": 1147548,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Maintenance Dec 02 - Dec 10",
                                   "period_from": 1638439200,
                                   "period_to": 1639109652
                               }
                           ]
                       },
                       {
                           "uptime": 1147548,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Maintenance Dec 02 - Dec 10",
                                   "period_from": 1638439200,
                                   "period_to": 1639109652
                               }
                           ]
                       },
                       {
                           "uptime": 1147548,
                           "downtime": 0,
                           "sli": 100,
                           "error_budget": 0,
                           "excluded_downtimes": [
                               {
                                   "name": "Maintenance Dec 02 - Dec 10",
                                   "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