object sla.getsli(object parameters)
此方法用于计算服务等级协议(SLA)中的服务等级指标(SLI)数据。
该方法可供任何类型的用户使用。调用该方法的权限可在用户角色设置中撤销。更多信息请参阅User roles。
(object)
包含SLA ID、报告周期及可选服务ID的参数 - 用于计算SLI指标。
参数 | 数据类型 | 说明 |
---|---|---|
slaid (required) |
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 | array | 报告周期列表。 每个报告周期表示为一个object,包含: - period_from - 报告周期开始日期(时间戳)。 - period_to - 报告周期结束日期(时间戳)。 周期按 period_from 字段升序排序。 |
serviceids | array | 报告周期中的服务ID列表。 列表的排序顺序未定义。即使 serviceids 参数已传递给sla.getsli 方法。 |
sli | array | 每个报告周期和服务的SLI数据(作为二维array)。periods 属性的索引用作sli 属性的第一维度。serviceids 属性的索引用作sli 属性的第二维度。 |
每个报告周期和服务返回的SLI数据包含以下内容:
属性 | 数据类型 | 描述 |
---|---|---|
uptime | integer | 服务在计划运行时间内处于_OK_状态的时间,减去排除的停机时间。 |
downtime | integer | 服务在计划运行时间内处于_not OK_状态的时间,减去排除的停机时间。 |
sli | float | 基于运行时间和停机时间的SLI(占总运行时间的百分比)。 |
error_budget | integer | 基于SLI和SLO计算的错误预算(以秒为单位)。 |
excluded_downtimes | array | array 本报告周期内排除的停机时间。 每个 object 包含以下参数: - name - 排除的停机时间名称。 - period_from - 排除的停机时间开始日期和时间(包含)。 - period_to - 排除的停机时间结束日期和时间(不包含)。 排除的停机时间按period_from字段升序排序。 |
获取与服务ID为"50"、"60"和"70"相关联的SLA ID为"5"的SLI数据。 获取从2021年11月1日开始的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
}
CSla::getSli() 位于 ui/include/classes/api/services/CSla.php