获取SLI

描述

object sla.getsli(object parameters)

这个方法可以计算服务水平指标(SLI)数据用于服务水平协议(SLA)。

这个方法可以用于任何用户类型。可以在用户角色设置中取消调用该方法的权限。查看 用户角色获取更多信息。

参数

(object) 用于计算 SLI 的参数,包括SLA ID、报告周期以及可选的服务ID。

参数类型描述
slaidID返回可用性信息的SLA 的ID。

参数行为:
- 必需
period_fromtimestamp报告SLI的开始日期(包含)。

可能的值: 时间戳。
period_totimestamp报告SLI的结束日期(不包含)。

可能的值: 时间戳。
periodsarray报告的首选周期数。

可能的值: 1-100
serviceidsID/array返回服务 SLI 的 ID。

周期划分

以下表格展示了基于参数组合的返回周期片段的排列方式。

返回的周期不会早于基于SLA生效日期的第一个可用周期,并且不会超过当前周期。

参数描述
period_fromperiod_toperiods
---返回最近的20个周期。
--指定根据 periods 参数返回最近指定的周期。
-指定-返回指定 period_to 日期之前的最近20个周期。
-指定指定在指定的 period_to 日期之前,返回由 periods 参数指定的最近周期。
指定--从指定的 period_from 日期开始返回前20个周期。
指定-指定从指定的 period_from 日期开始返回由 periods 参数指定的周期。
指定指定-在指定的日期范围内返回最多100个周期。
指定指定指定在指定的日期范围内返回由 periods 参数指定的周期。

返回值

(object) 返回计算结果。

属性类型描述
periodsarray报告周期列表

每个报告周期包含:
- period_from - 报告周期开始的日期 (时间戳).
- period_to - 报告周期结束的日期 (时间戳).

周期按照 period_from 字段升序排序。
serviceidsarray报告周期中的服务ID列表。

即使在 sla.getsli 方法中传递了 serviceids 参数也不会定义列表的排序顺序。
sliarray每个报告周期和服务的SLI数据(作为一个 二维数组) 。

sli 属性的第一维是periods 属性的索引。

sli 属性的第二维是serviceids 属性的索引。

SLI 数据

返回的每个报告周期和服务的SLI数据包括:

属性类型描述
uptimeinteger服务在计划运行时间内处于 OK 状态的时间总和,减去排除的停机时间。
downtimeinteger服务在计划运行时间内处于 not OK 状态的时间总和,减去排除的停机时间。
slifloatSLI (总正常运行时间的百分比), 基于正常运行时间和停机时间。
error_budgetinteger基于 SLI 和 SLO 的错误预算(以秒为单位)。
excluded_downtimesarray本报告周期中被排除的停机时间数组。

每个对象将包含以下参数:
- name - 被排除的停机时间的名称。
- period_from - 被排除的停机时间的开始日期和时间(包含在内)。
- period_to - 被排除的停机时间的结束日期和时间(不包含在内)。

被排除的停机时间按照 period_from 字段升序排序。

示例

计算 SLI

检索与SLA ID为“5”关联的服务ID为“50”,“60”和“70”的SLI数据。 从2021年11月01日开始,检索3个周期的数据。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "sla.getsli",
  4. "params": {
  5. "slaid": "5",
  6. "serviceids": [
  7. 50,
  8. 60,
  9. 70
  10. ],
  11. "periods": 3,
  12. "period_from": "1635724800"
  13. },
  14. "id": 1
  15. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "periods": [
  5. {
  6. "period_from": 1635724800,
  7. "period_to": 1638316800
  8. },
  9. {
  10. "period_from": 1638316800,
  11. "period_to": 1640995200
  12. },
  13. {
  14. "period_from": 1640995200,
  15. "period_to": 1643673600
  16. }
  17. ],
  18. "serviceids": [
  19. 50,
  20. 60,
  21. 70
  22. ],
  23. "sli": [
  24. [
  25. {
  26. "uptime": 1186212,
  27. "downtime": 0,
  28. "sli": 100,
  29. "error_budget": 0,
  30. "excluded_downtimes": [
  31. {
  32. "name": "Excluded Downtime - 1",
  33. "period_from": 1637836212,
  34. "period_to": 1638316800
  35. }
  36. ]
  37. },
  38. {
  39. "uptime": 1186212,
  40. "downtime": 0,
  41. "sli": 100,
  42. "error_budget": 0,
  43. "excluded_downtimes": [
  44. {
  45. "name": "Excluded Downtime - 1",
  46. "period_from": 1637836212,
  47. "period_to": 1638316800
  48. }
  49. ]
  50. },
  51. {
  52. "uptime": 1186212,
  53. "downtime": 0,
  54. "sli": 100,
  55. "error_budget": 0,
  56. "excluded_downtimes": [
  57. {
  58. "name": "Excluded Downtime - 1",
  59. "period_from": 1637836212,
  60. "period_to": 1638316800
  61. }
  62. ]
  63. }
  64. ],
  65. [
  66. {
  67. "uptime": 1147548,
  68. "downtime": 0,
  69. "sli": 100,
  70. "error_budget": 0,
  71. "excluded_downtimes": [
  72. {
  73. "name": "Excluded Downtime - 1",
  74. "period_from": 1638439200,
  75. "period_to": 1639109652
  76. }
  77. ]
  78. },
  79. {
  80. "uptime": 1147548,
  81. "downtime": 0,
  82. "sli": 100,
  83. "error_budget": 0,
  84. "excluded_downtimes": [
  85. {
  86. "name": "Excluded Downtime - 1",
  87. "period_from": 1638439200,
  88. "period_to": 1639109652
  89. }
  90. ]
  91. },
  92. {
  93. "uptime": 1147548,
  94. "downtime": 0,
  95. "sli": 100,
  96. "error_budget": 0,
  97. "excluded_downtimes": [
  98. {
  99. "name": "Excluded Downtime - 1",
  100. "period_from": 1638439200,
  101. "period_to": 1639109652
  102. }
  103. ]
  104. }
  105. ],
  106. [
  107. {
  108. "uptime": 1674000,
  109. "downtime": 0,
  110. "sli": 100,
  111. "error_budget": 0,
  112. "excluded_downtimes": []
  113. },
  114. {
  115. "uptime": 1674000,
  116. "downtime": 0,
  117. "sli": 100,
  118. "error_budget": 0,
  119. "excluded_downtimes": []
  120. },
  121. {
  122. "uptime": 1674000,
  123. "downtime": 0,
  124. "sli": 100,
  125. "error_budget": 0,
  126. "excluded_downtimes": []
  127. }
  128. ]
  129. ]
  130. },
  131. "id": 1
  132. }

来源

CSla::getSli() 在 ui/include/classes/api/services/CSla.php