2022 Zabbix中国峰会
2022 Zabbix中国峰会

获取SLA

Description 说明

object service.getsla(object parameters)

This method allows to calculate availability information about services. 此方法允许计算有关服务的可用性信息。

Parameters 参数

(object) Parameters containing the IDs of the services and time intervals to calculate SLA. (object)参数包含服务ID以及计算SLA的时间间隔。

Parameter 参数 T pe 类型 Des ription 说明
serviceids string/array 字符串/数组 IDs f services to return availability information for. 提供可用性信息的服务ID。
intervals array 数组 T me intervals to return service layer availability information about. 返回服务层可用性信息的时间间隔。

Each time interval must have the following parameters: 每个时间间隔必须具有以下参数:
- from - (timestamp 时间戳) interval start time; 间隔开始时间;
- to - (timestamp 时间戳) interval end time. 间隔结束时间。

Return values 返回值

(object) Returns the following availability information about each service under the corresponding service ID. (object)返回关于相应服务ID下每个服务的可用性信息。

Property 属性 T pe 类型 Des ription 说明
status integer 整数型 Cu rent status of the service. 当前服务的状态。

Refer to the service object page for more information on service statuses. 有关服务状态的更多信息,请参阅service object page
problems array 数组 T iggers that are currently in problem state and are linked either to the service or one of its descendants. 当前处于故障状态并且与服务或服务的子项所关联的触发器。
sla array 数组 S A data about each time period. 每个时间段的SLA数据。

Each SLA object has the following properties: 每个SLA对象具有以下属性:
- from - (timestamp 时间戳) interval start time; 间隔开始时间;
- to - (timestamp 时间戳) interval end time; 间隔结束时间;
- sla - (float 浮点数) SLA for the given time interval; 指定时间间隔的SLA;
- okTime - (integer 整数型) time the service was in OK state, in seconds; 服务处于正常状态的时间,单位秒;
- problemTime - (integer 整数型) time the service was in problem state, in seconds; 服务处于故障状态的时间,单位秒;
- downtimeTime - (integer 整数型) time the service was in scheduled downtime, in seconds. 服务处于计划停机的时间,单位秒。

Examples 范例

Retrieving availability information for an service 检索服务的可用性信息

Retrieve availability information about a service during a week. 检索有关服务在一周内的可用性信息。

Request 请求:

{
           "jsonrpc": "2.0",
           "method": "service.getsla",
           "params": {
               "serviceids": "2",
               "intervals": [
                   {
                       "from": 1352452201,
                       "to": 1353057001
                   }
               ]
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

Response 响应:

{
           "jsonrpc": "2.0",
           "result": {
               "2": {
                   "status": "3",
                   "problems": {
                       "13904": {
                           "triggerid": "13904",
                           "expression": "{13359}=0",
                           "description": "Service unavailable",
                           "url": "",
                           "status": "0",
                           "value": "1",
                           "priority": "3",
                           "lastchange": "1352967420",
                           "comments": "",
                           "error": "",
                           "templateid": "0",
                           "type": "0",
                           "value_flags": "0",
                           "flags": "0"
                       }
                   },
                   "sla": [
                       {
                           "from": 1352452201,
                           "to": 1353057001,
                           "sla": 97.046296296296,
                           "okTime": 586936,
                           "problemTime": 17864,
                           "downtimeTime": 0
                       }
                   ]
               }
           },
           "id": 1
       }

See also 参考

Source 源码

CService::getSla() in frontends/php/include/classes/api/services/CService.php. CService::getSla()方法可在frontends/php/include/classes/api/services/CService.php中参考。