监控宝 API

通过监控宝API,您可以非常容易的获取各类监控项目的报告数据,以及更新设置和创建任务,从而构建第三方应用工具或者集成到自己的服务中。

任何监控宝账户都可以访问监控宝API,如果您还没有注册监控宝,请点此注册

目前我们提供了一些基本的API方法,随后将持续增加更多的API方法。

基本介绍

  • 监控宝API采用REST风格,返回数据支持XMLJSON格式。
  • 使用HTTP验证作为API的用户身份验证方式。

一个例子

比如获取用户账户中的所有站点监控项目列表,您可以访问以下两个URL,它们分别返回XML和JSON格式的数据,试试看?您可以直接使用监控宝账户来完成身份验证。

http://api.jiankongbao.com/site/task/list.xml
http://api.jiankongbao.com/site/task/list.json

现在,我们来看看完整的过程,对于XML格式数据的请求和响应如下:

HTTP请求

GET /site/task/list.xml

HTTP响应正文

<?xml version="1.0" encoding="UTF-8"?>
<tasks>
	<task>
		<task_id>46</task_id>
		<task_name>
			<![CDATA[ API演示服务器 ]]>
		</task_name>
		<task_summary>
			<![CDATA[ 10.0.1.200 ]]>
		</task_summary>
		<task_type>ping</task_type>
		<task_create_time>2009-08-08 11:45:25</task_create_time>
		<frequency>2</frequency>
		<last_resp_time>163.735571</last_resp_time>
		<last_resp_result>1</last_resp_result>
		<last_resp_status>PING OK</last_resp_status>
		<last_check_time>2010-02-25 15:55:25</last_check_time>
	</task>
	<task>
		<task_id>49</task_id>
		<task_name>
			<![CDATA[ API演示服务器 ]]>
		</task_name>
		<task_summary>
			<![CDATA[ 10.0.1.201 ]]>
		</task_summary>
		<task_type>ping</task_type>
		<task_create_time>2009-08-08 12:08:54</task_create_time>
		<frequency>2</frequency>
		<last_resp_time>87.844429</last_resp_time>
		<last_resp_result>1</last_resp_result>
		<last_resp_status>PING OK</last_resp_status>
		<last_check_time>2010-02-25 15:55:25</last_check_time>
	</task>
</tasks>

接下来,对于JSON格式数据的请求和响应如下:

HTTP请求

GET /site/task/list.json

HTTP响应正文

{"tasks":{"task":[{"task_id":"46","task_name":"API\u6f14\u793a\u670d\u52a1\u5668","task_summary":"10.0.1.200","task_type":"ping","task_create_time":"2009-08-08 11:45:25","frequency":"2","last_resp_time":"159.292571","last_resp_result":"1","last_resp_status":"PING OK","last_check_time":"2010-02-25 16:03:57"},{"task_id":"49","task_name":"API\u6f14\u793a\u670d\u52a1\u5668","task_summary":"10.0.1.201","task_type":"ping","task_create_time":"2009-08-08 12:08:54","frequency":"2","last_resp_time":"83.334000","last_resp_result":"1","last_resp_status":"PING OK","last_check_time":"2010-02-25 16:03:57"}]}}

从响应内容中可以看到,当前账户中有2个监控项目,您还可以看到它们的基本信息和最后一次检查的结果。

请求方法

我们建议您使用libcurl在应用程序中构建HTTP请求,这里以PHP libcurl为例,非常简单:

$ch = curl_init("http://api.jiankongbao.com/site/task/list.json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 填写您的监控宝账户和密码,用于HTTP验证
curl_setopt($ch, CURLOPT_USERPWD, "your_email:your_pwd");
curl_setopt($ch, CURLOPT_HTTPGET, true);
$resp_body = curl_exec($ch);
var_dump(json_decode($resp_body));

以上php运行后的结果如下:

object(stdClass)#1 (1) {
  ["tasks"]=>
  object(stdClass)#2 (1) {
    ["task"]=>
    array(2) {
      [0]=>
      object(stdClass)#3 (10) {
        ["task_id"]=>
        string(2) "46"
        ["task_name"]=>
        string(24) "API演示服务器"
        ["task_summary"]=>
        string(12) "10.0.1.200"
        ["task_type"]=>
        string(4) "ping"
        ["task_create_time"]=>
        string(19) "2009-08-08 11:45:25"
        ["frequency"]=>
        string(1) "2"
        ["last_resp_time"]=>
        string(10) "165.630286"
        ["last_resp_result"]=>
        string(1) "1"
        ["last_resp_status"]=>
        string(7) "PING OK"
        ["last_check_time"]=>
        string(19) "2010-02-25 16:16:16"
      }
      [1]=>
      object(stdClass)#4 (10) {
        ["task_id"]=>
        string(2) "49"
        ["task_name"]=>
        string(24) "API演示服务器"
        ["task_summary"]=>
        string(11) "10.0.1.201"
        ["task_type"]=>
        string(4) "ping"
        ["task_create_time"]=>
        string(19) "2009-08-08 12:08:54"
        ["frequency"]=>
        string(1) "2"
        ["last_resp_time"]=>
        string(9) "92.164571"
        ["last_resp_result"]=>
        string(1) "1"
        ["last_resp_status"]=>
        string(7) "PING OK"
        ["last_check_time"]=>
        string(19) "2010-02-25 16:16:16"
      }
    }
  }
}

对于其它的开发语言,您也可以使用libcurl提供的扩展库。同时,我们会在随后提供各类主流开发语言的client库。

现在,您已经完整体验了一个API方法的请求过程,这只是一个简单的例子,对于其它的API方法,可能会用到另一些HTTP请求方式,比如POST/PUT/DELETE等,我们会在API手册中详细说明。

API手册

站点监控项目

站点监控项目目前包括HTTP、PING、DNS、FTP等类型,详细介绍请参考:监控项目

获得监控项目列表

可以获得当前用户的所有站点监控项目列表。

API URL
http://api.jiankongbao.com/site/task/list.xml
http://api.jiankongbao.com/site/task/list.json
HTTP请求

xml

GET /site/task/list.xml

json

GET /site/task/list.json
HTTP响应内容

xml

<?xml version="1.0" encoding="UTF-8"?>
<tasks>
	<task>
		<task_id>46</task_id>
		<task_name>
			<![CDATA[ API演示服务器 ]]>
		</task_name>
		<task_summary>
			<![CDATA[ 10.0.1.200 ]]>
		</task_summary>
		<task_type>ping</task_type>
		<task_create_time>2009-08-08 11:45:25</task_create_time>
		<frequency>2</frequency>
		<last_resp_time>163.735571</last_resp_time>
		<last_resp_result>1</last_resp_result>
		<last_resp_status>PING OK</last_resp_status>
		<last_check_time>2010-02-25 15:55:25</last_check_time>
	</task>
	<task>
		<task_id>49</task_id>
		<task_name>
			<![CDATA[ API演示服务器 ]]>
		</task_name>
		<task_summary>
			<![CDATA[ 10.0.1.201 ]]>
		</task_summary>
		<task_type>ping</task_type>
		<task_create_time>2009-08-08 12:08:54</task_create_time>
		<frequency>2</frequency>
		<last_resp_time>87.844429</last_resp_time>
		<last_resp_result>1</last_resp_result>
		<last_resp_status>PING OK</last_resp_status>
		<last_check_time>2010-02-25 15:55:25</last_check_time>
	</task>
</tasks>

json

{"tasks":{"task":[{"task_id":"46","task_name":"API\u6f14\u793a\u670d\u52a1\u5668","task_summary":"10.0.1.200","task_type":"ping","task_create_time":"2009-08-08 11:45:25","frequency":"2","last_resp_time":"159.292571","last_resp_result":"1","last_resp_status":"PING OK","last_check_time":"2010-02-25 16:03:57"},{"task_id":"49","task_name":"API\u6f14\u793a\u670d\u52a1\u5668","task_summary":"10.0.1.201","task_type":"ping","task_create_time":"2009-08-08 12:08:54","frequency":"2","last_resp_time":"83.334000","last_resp_result":"1","last_resp_status":"PING OK","last_check_time":"2010-02-25 16:03:57"}]}}

属性说明

  1. task_id 监控项目ID
  2. task_name 监控项目名称
  3. task_summary 监控项目摘要
  4. task_type 监控项目类型,参考 监控项目
  5. task_create_time 监控项目创建时间
  6. frequency 监控项目检查频率(分钟/minute)
  7. last_resp_time 最后一次检查的响应时间(毫秒/ms)
  8. last_resp_result 最后一次检查是否可用(可用=1,失败=0)
  9. last_resp_status 最后一次检查的响应状态
  10. last_check_time 最后一次检查时间

获得单个监控项目的报告列表

可以获得单个监控项目的日期报告列表,按照日期从近到远排列。

API URL
http://api.jiankongbao.com/site/task/[task_id]/report.xml
http://api.jiankongbao.com/site/task/[task_id]/report.json
HTTP请求

xml

GET /site/task/1/report.xml

json

GET /site/task/1/report.json

请求参数

  1. task_id 监控项目ID,可以通过站点监控项目列表中获得
HTTP响应内容

xml

<?xml version="1.0" encoding="UTF-8"?>
<reports>
	<report>
		<date>2010-02-25</date>
		<start_check_time>2010-02-25 17:44:06</start_check_time>
		<last_check_time>2010-02-25 17:44:06</last_check_time>
		<uptime_percent>0%</uptime_percent>
		<uptime_minute>0.0</uptime_minute>
		<fault_time_minute>0.0</fault_time_minute>
		<fault_time_percent>100%</fault_time_percent>
		<total_check_sum>17</total_check_sum>
		<up_check_sum>17</up_check_sum>
		<fault_check_sum>0</fault_check_sum>
		<resp_time_avg>94.6</resp_time_avg>
		<resp_time_min>0.0</resp_time_min>
		<resp_time_max>95.4</resp_time_max>
	</report>
	<report>
		<date>2010-02-24</date>
		<start_check_time>2010-02-24 00:04:58</start_check_time>
		<last_check_time>2010-02-24 23:59:58</last_check_time>
		<uptime_percent>100.00%</uptime_percent>
		<uptime_minute>1435.0</uptime_minute>
		<fault_time_minute>0.0</fault_time_minute>
		<fault_time_percent>0%</fault_time_percent>
		<total_check_sum>288</total_check_sum>
		<up_check_sum>288</up_check_sum>
		<fault_check_sum>0</fault_check_sum>
		<resp_time_avg>80.0</resp_time_avg>
		<resp_time_min>47.8</resp_time_min>
		<resp_time_max>106.4</resp_time_max>
	</report>
</reports>

json

{"reports":{"report":[{"date":"2010-02-25","start_check_time":"2010-02-25 17:44:06","last_check_time":"2010-02-25 17:57:23","uptime_percent":"100.00%","uptime_minute":"13.3","fault_time_minute":"0.0","fault_time_percent":"0%","total_check_sum":"19","up_check_sum":19,"fault_check_sum":"0","resp_time_avg":"94.6","resp_time_min":"93.8","resp_time_max":"95.4"},{"date":"2010-02-24","start_check_time":"2010-02-24 00:04:58","last_check_time":"2010-02-24 23:59:58","uptime_percent":"100.00%","uptime_minute":"1435.0","fault_time_minute":"0.0","fault_time_percent":"0%","total_check_sum":"288","up_check_sum":288,"fault_check_sum":"0","resp_time_avg":"80.0","resp_time_min":"47.8","resp_time_max":"106.4"}]}}

属性说明

  1. date 日期
  2. start_check_time 第一次检查的时间
  3. last_check_time 最后一次检查的时间
  4. uptime_percent 可用时间百分比,即可用率
  5. uptime_minute 可用时间(分钟)
  6. fault_time_minute 不可用时间,或故障时间(分钟)
  7. fault_time_percent 不可用时间百分比,即故障率
  8. total_check_sum 总检查次数
  9. up_check_sum 可用的次数
  10. fault_check_sum 不可用的次数
  11. resp_time_avg 平均响应时间
  12. resp_time_min 最小响应时间
  13. resp_time_max 最大响应时间

获得单个监控项目指定日期的报告

可以获得单个监控项目指定日期的报告,比如“20100210”。

API URL
http://api.jiankongbao.com/site/task/[task_id]/report/[date].xml
http://api.jiankongbao.com/site/task/[task_id]/report/[date].json
HTTP请求

xml

GET /site/task/1/report/20100225.xml

json

GET /site/task/1/report/20100225.json

请求参数

  1. task_id 监控项目ID
  2. date 日期,格式为YYYYMMDD,比如20100225
HTTP响应内容

xml

<?xml version="1.0" encoding="UTF-8"?>
<report>
	<date>2010-02-25</date>
	<start_check_time>2010-02-25 17:44:06</start_check_time>
	<last_check_time>2010-02-25 18:12:54</last_check_time>
	<uptime_percent>100.00%</uptime_percent>
	<uptime_minute>28.8</uptime_minute>
	<fault_time_minute>0.0</fault_time_minute>
	<fault_time_percent>0%</fault_time_percent>
	<total_check_sum>22</total_check_sum>
	<up_check_sum>22</up_check_sum>
	<fault_check_sum>0</fault_check_sum>
	<resp_time_avg>94.6</resp_time_avg>
	<resp_time_min>93.8</resp_time_min>
	<resp_time_max>95.4</resp_time_max>
</report>

json

{"report":{"date":"2010-02-25","start_check_time":"2010-02-25 17:44:06","last_check_time":"2010-02-25 18:12:54","uptime_percent":"100.00%","uptime_minute":"28.8","fault_time_minute":"0.0","fault_time_percent":"0%","total_check_sum":"22","up_check_sum":22,"fault_check_sum":"0","resp_time_avg":"94.6","resp_time_min":"93.8","resp_time_max":"95.4"}}

属性说明

  1. date 日期
  2. start_check_time 第一次检查的时间
  3. last_check_time 最后一次检查的时间
  4. uptime_percent 可用时间百分比,即可用率
  5. uptime_minute 可用时间(分钟)
  6. fault_time_minute 不可用时间,或故障时间(分钟)
  7. fault_time_percent 不可用时间百分比,即故障率
  8. total_check_sum 总检查次数
  9. up_check_sum 可用的次数
  10. fault_check_sum 不可用的次数
  11. resp_time_avg 平均响应时间
  12. resp_time_min 最小响应时间
  13. resp_time_max 最大响应时间

创建HTTP类型监控项目

目前只有认证用户可以调用这个API。

API URL
http://api.jiankongbao.com/task/http/create.xml
http://api.jiankongbao.com/task/http/create.json
HTTP请求

以xml为例

POST /task/http/create.xml
 
task_name=&frequency=&url=

参数说明

  1. task_name 监控项目名称
  2. frequency 监控项目检查频率(分钟/minute),支持1、2、5、10、15、20、30、60
  3. url 监控的URL,必须以http:或者https:开头
HTTP响应内容

以xml为例

HTTP/1.1 200 OK
 
<?xml version="1.0" encoding="UTF-8"?>
<response>
	<result>1</result>
</response>

如果失败

HTTP/1.1 400 Bad Request
 
<?xml version="1.0" encoding="UTF-8"?>
<response>
	<result>0</result>
	<error>监控频率不正确(frequency)</error>
</response>

创建PING类型监控项目

目前只有认证用户可以调用这个API。

API URL
http://api.jiankongbao.com/task/ping/create.xml
http://api.jiankongbao.com/task/ping/create.json
HTTP请求

以xml为例

POST /task/ping/create.xml
 
task_name=&frequency=&host=

参数说明

  1. task_name 监控项目名称
  2. frequency 监控项目检查频率(分钟/minute),支持1、2、5、10、15、20、30、60
  3. host 监控的主机,可以是域名或者IP地址,比如www.google.com或者10.0.1.200
HTTP响应内容

以xml为例

HTTP/1.1 200 OK
 
<?xml version="1.0" encoding="UTF-8"?>
<response>
	<result>1</result>
</response>

如果失败

HTTP/1.1 400 Bad Request
 
<?xml version="1.0" encoding="UTF-8"?>
<response>
	<result>0</result>
	<error>监控频率不正确(frequency)</error>
</response>

修改站点监控项目

目前只有认证用户可以调用这个API。这里只可以修改监控项目的名称和监控频率,如果希望修改URL或者主机,请创建新的监控项目。

API URL
http://api.jiankongbao.com/site/task/[task_id]/update.xml
http://api.jiankongbao.com/site/task/[task_id]/update.json
HTTP请求

以xml为例

POST /site/task/1/update.xml
 
task_name=&frequency=

参数说明

  1. task_name 监控项目名称
  2. frequency 监控项目检查频率(分钟/minute),支持1、2、5、10、15、20、30、60
HTTP响应内容

以xml为例

HTTP/1.1 200 OK
 
<?xml version="1.0" encoding="UTF-8"?>
<response>
	<result>1</result>
</response>

如果失败

HTTP/1.1 400 Bad Request
 
<?xml version="1.0" encoding="UTF-8"?>
<response>
	<result>0</result>
	<error>监控频率不正确(frequency)</error>
</response>

删除站点监控项目

目前只有认证用户可以调用这个API。

API URL
http://api.jiankongbao.com/site/task/[task_id]/delete.xml
http://api.jiankongbao.com/site/task/[task_id]/delete.json
HTTP请求

以xml为例

POST /site/task/1/delete.xml
HTTP响应内容

以xml为例

HTTP/1.1 200 OK
 
<?xml version="1.0" encoding="UTF-8"?>
<response>
	<result>1</result>
</response>

如果失败

HTTP/1.1 400 Bad Request
 
<?xml version="1.0" encoding="UTF-8"?>
<response>
	<result>0</result>
	<error>监控项目不存在</error>
</response>
文档/api.txt · 最后更改: 2013-11-06 16:18 (外部编辑)
 
 
©2008 Another cool website by 80KV