sla.getsli
描述
object sla.getsli(object parameters)
此方法允许计算服务水平指标 (SLI) 数据。
此方法适用于任何类型的用户。权限 调用方法可以在用户角色设置中撤销。请参阅 用户 角色 了解更多信息。
参数
(object)
包含 SLA ID、报告期和可选的参数 服务的 ID - 计算 SLI。
参数 | 类型 | 描述 |
---|---|---|
slaid (必填) | 字符串 | 要为其返回可用性信息的服务 ID。 |
period_from | 整型 | 报告 SLI 的开始日期(包含)。 可能的值:时间戳。 |
period_to | 整型 | 报告 SLI 的结束日期(不包括)。 可能的值:时间戳。 |
periods | 数组 | 报告的首选期间数。 可能的值:1-100 |
serviceids | 字符串/数组 | 要为其返回 SLI 的服务的 ID。 |
时段划分
下面演示基于参数组合的返回周期切片的排列。
参数 | 描述 | ||
---|---|---|---|
period_from | period_to | periods | |
- | - | - | 根据 SLA 的生效日期,最后 20 个周期(包括当前周期)但未超过第一个可用周期。 |
- | - | 指定的 | periods 参数指定的最后一个周期。 |
- | 指定的 | - | 前20 个周期(包括当前周期)但不超过当前周期。 |
- | 指定的 | 指定的 | periods 参数指定的第一个周期,从specified date开始。 |
指定的 | - | - | 前 20 个周期(包括当前周期)但不超过当前周期。 |
指定的 | - | 指定的 | periods 参数指定的第一个周期,从specified date开始。 |
指定的 | 指定的 | - | 指定日期范围内的期间,但不超过 100 并且不超过基于 SLA 生效日期的第一个可用期间。 |
指定的 | 指定的 | 指定的 | 指定日期范围内的期间,但不超过指定的期间数,并且不超过基于 SLA 生效日期的第一个可用期间。 |
返回值
(object)
返回计算的结果
属性 | 类型 | 描述 |
---|---|---|
periods | 数组 | 报告期间的列表。 每个报告期间都表示为一个对象,包括: - period_from - 报告期间的开始日期(时间戳)。 - period_to - 结束报告期间的日期(时间戳)。 期间按 period_from 字段升序排序。 |
serviceids | 数组 | 报告期间的服务 ID 列表。 未定义列表的排序顺序。即使 serviceids 参数被传递给 sla.getsli 方法。 |
sli | 数组 | 每个报告的期间和服务的 SLI 数据(作为二维数组)。periods 属性的索引用作sli 的第一个 维度serviceids 属性的索引用作sli 属性的second维度。 |
SLI 数据
每个报告期间和服务返回的 SLI 数据包括:
属性 | 类型 | 描述 |
---|---|---|
uptime | 整型 | 在计划的正常运行时间内服务处于 OK 状态的时间量,减去排除的停机时间。 |
downtime | 整型 | 在计划的正常运行时间内服务处于not OK状态的时间量,减去排除的停机时间。 |
sli | 浮点数 | SLI(占总正常运行时间的百分比),基于正常运行时间和停机时间。 |
error_budget | 整型 | 基于 SLI 和 SLO 的错误预算(以秒为单位)。 |
excluded_downtimes | 数组 | 此报告期间排除的停机时间数组。 每个对象将包含以下参数: - name - 排除的停机时间的名称。 - period_from - 开始日期和时间(含)排除的停机时间。 - period_to - 排除的停机时间的结束日期和时间(不包括)。 排除的停机时间按 period_from 字段升序排序。 |
示例
计算SLI
从 2021 年 11 月 1 日开始,在 ID 为“50、60 和 70”的服务上检索与 ID 为“5”的 SLA 相关联的 SLI,为期 3 个时段。
请求:
{
"jsonrpc": "2.0",
"method": "service.getsla",
"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
}
来源
CService::getSla() in ui/include/classes/api/services/CService.php.