监控宝 API
通过监控宝API,您可以非常容易的获取各类监控项目的报告数据,以及更新设置和创建任务,从而构建第三方应用工具或者集成到自己的服务中。
任何监控宝账户都可以访问监控宝API,如果您还没有注册监控宝,请点此注册
目前我们提供了一些基本的API方法,随后将持续增加更多的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"}]}}
属性说明
- task_id 监控项目ID
- task_name 监控项目名称
- task_summary 监控项目摘要
- task_type 监控项目类型,参考 监控项目
- task_create_time 监控项目创建时间
- frequency 监控项目检查频率(分钟/minute)
- last_resp_time 最后一次检查的响应时间(毫秒/ms)
- last_resp_result 最后一次检查是否可用(可用=1,失败=0)
- last_resp_status 最后一次检查的响应状态
- 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
请求参数
- 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"}]}}
属性说明
- date 日期
- start_check_time 第一次检查的时间
- last_check_time 最后一次检查的时间
- uptime_percent 可用时间百分比,即可用率
- uptime_minute 可用时间(分钟)
- fault_time_minute 不可用时间,或故障时间(分钟)
- fault_time_percent 不可用时间百分比,即故障率
- total_check_sum 总检查次数
- up_check_sum 可用的次数
- fault_check_sum 不可用的次数
- resp_time_avg 平均响应时间
- resp_time_min 最小响应时间
- 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
请求参数
- task_id 监控项目ID
- 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"}}
属性说明
- date 日期
- start_check_time 第一次检查的时间
- last_check_time 最后一次检查的时间
- uptime_percent 可用时间百分比,即可用率
- uptime_minute 可用时间(分钟)
- fault_time_minute 不可用时间,或故障时间(分钟)
- fault_time_percent 不可用时间百分比,即故障率
- total_check_sum 总检查次数
- up_check_sum 可用的次数
- fault_check_sum 不可用的次数
- resp_time_avg 平均响应时间
- resp_time_min 最小响应时间
- 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=
参数说明
- task_name 监控项目名称
- frequency 监控项目检查频率(分钟/minute),支持1、2、5、10、15、20、30、60
- 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=
参数说明
- task_name 监控项目名称
- frequency 监控项目检查频率(分钟/minute),支持1、2、5、10、15、20、30、60
- 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=
参数说明
- task_name 监控项目名称
- 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>