object sla.getsli(object parameters)
这个方法可以计算服务水平指标(SLI)数据用于服务水平协议(SLA)。
这个方法可以用于任何用户类型。可以在用户角色设置中取消调用该方法的权限。查看 用户角色获取更多信息。
(object)
用于计算 SLI 的参数,包括SLA ID、报告周期以及可选的服务ID。
参数 | 类型 | 描述 |
---|---|---|
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 | 报告周期列表 每个报告周期包含: - period_from - 报告周期开始的日期 (时间戳).- period_to - 报告周期结束的日期 (时间戳).周期按照 period_from 字段升序排序。 |
serviceids | array | 报告周期中的服务ID列表。 即使在 sla.getsli 方法中传递了 serviceids 参数也不会定义列表的排序顺序。 |
sli | array | 每个报告周期和服务的SLI数据(作为一个 二维数组) 。sli 属性的第一维是periods 属性的索引。sli 属性的第二维是serviceids 属性的索引。 |
返回的每个报告周期和服务的SLI数据包括:
属性 | 类型 | 描述 |
---|---|---|
uptime | integer | 服务在计划运行时间内处于 OK 状态的时间总和,减去排除的停机时间。 |
downtime | integer | 服务在计划运行时间内处于 not OK 状态的时间总和,减去排除的停机时间。 |
sli | float | SLI (总正常运行时间的百分比), 基于正常运行时间和停机时间。 |
error_budget | integer | 基于 SLI 和 SLO 的错误预算(以秒为单位)。 |
excluded_downtimes | array | 本报告周期中被排除的停机时间数组。 每个对象将包含以下参数: - 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"
},
"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 。