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_fromperiod_toperiods
---根据 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 个时段。

请求:

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

响应:

  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. }

来源

CService::getSla() in ui/include/classes/api/services/CService.php.