object sla.getsli(object parameters)
此方法允许计算服务等级协议(SLA)的服务等级指标(SLI)数据。
此方法适用于任何类型的用户。可以在用户角色设置中撤销调用方法的权限。更多信息请参阅用户角色。
(object)
包含SLA ID、报告期以及可选的服务ID的参数 - 用于计算SLI。
参数 | 类型 | 描述 |
---|---|---|
slaid (必选) |
string | 返回可用性信息的SLA的ID。 |
period_from | integer | 报告SLI的起始日期(包括)。 可能的值:时间戳。 |
period_to | integer | 报告SLI的结束日期(不包括)。 可能的值:时间戳。 |
periods | array | 希望报告的周期数量。 可能的值:1-100 |
serviceids | string/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 | 数组 | 报告期间的列表。 每个报告期间都表示为一个对象,包括: - period_from - 报告期间的开始日期(时间戳)。 - period_to - 结束报告期间的日期(时间戳)。 期间按 period_from 字段升序排序。 |
serviceids | 数组 | 报告期间的服务 ID 列表。 未定义列表的排序顺序。即使 serviceids 参数被传递给 sla.getsli 方法。 |
sli | 数组 | 每个报告的期间和服务的 SLI 数据(作为二维数组)。periods 属性的索引用作sli 的第一个 维度serviceids 属性的索引用作sli 属性的second维度。 |
每个报告期间和服务返回的 SLI 数据包括:
属性 | 类型 | 描述 |
---|---|---|
uptime | 整型 | 在计划的正常运行时间内服务处于 OK 状态的时间量,减去排除的停机时间。 |
downtime | 整型 | 在计划的正常运行时间内服务处于_not OK_状态的时间量,减去排除的停机时间。 |
sli | 浮点数 | SLI(占总正常运行时间的百分比),基于正常运行时间和停机时间。 |
error_budget | 整型 | 基于 SLI 和 SLO 的错误预算(以秒为单位)。 |
excluded_downtimes | 数组 | 此报告期间排除的停机时间数组。 每个对象将包含以下参数: - name - 排除的停机时间的名称。 - period_from - 开始日期和时间(含)排除的停机时间。 - period_to - 排除的停机时间的结束日期和时间(不包括)。 排除的停机时间按 period_from 字段升序排序。 |
检索与SLA ID为"5"相关联的服务ID为"50"、"60"和"70"的SLI数据。 从2021年11月01日开始检索3个周期的数据。
请求:
{
"jsonrpc": "2.0",
"method": "sla.getsli",
"params": {
"slaid": "5",
"serviceids": [
50,
60,
70
],
"periods": 3,
"period_from": "1635724800"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"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
}
ui/include/classes/api/services/CSla.php 中的 CSla::getSli()