<a></a>
api是随着互联网和云计算的兴起而催生的产物。像云供应商亚马逊、互联网巨头google、社交媒体twitter,他们的服务都是通过api的方式来提供的。api这个概念在2005年从国外就开始火起来了,同时歪果仁提出了“api经济”的概念。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauUmeyl2Mydje3k2MllmcyxWO0UTM0EzLchTMvwlMxUTMwIzLc1WdixWYvwFduVWboNWY0RXYvwVY0FGZvwVZt5CevJWcu42Y4VnbpxWLuR2Lc9CX6MHc0RHaiojIsJye.jpg)
图:2012年数据
ibm中间件总经理marie l. wieck在一次采访中指出,到2018年api经济的市场规模预计将达到2.2万亿美元,而在未来2-3年中,开展api项目的企业数量有望增长150%。api监控可持续考察api的正确性、可用性和响应时间,是api管理的重要部分。
图:ibm的api经济整合方案
随着越来越多的国内零售商、媒体、政府和金融服务公司开始公开web api,每天都有大量的api增长。api已经成为扩展产品、获取客户,帮助合作伙伴提供高价值服务以及扩张生态系统的关键渠道。令人惊讶的是,api监控工具,却远远少于其他系统的监控工具。
稳定的api能帮助企业提高收入,降低成本。随着移动应用的爆发增长,未来api将会使用的越来越多,不论是提供api的服务商还是使用api的公司,都不希望发生这样的情景:
利用第三方公司提供的应用程序api失败,导致业务中断,交易失败。
旅游网站通过api获取机票和酒店库存信息并抽取佣金,api调用失败导致失去一个客户或是一次机会。
其他数据源信息的api调用失败,影响自己的内容整合。
公司内部产品之间api不稳定导致业务下滑。
……
公司提供出去的api稳定性直接影响业务收入。
于是,云智慧监控宝率先推出“api监控服务”,用于有效监控api服务稳定性和正确性。我们希望api能够达到,在web上每一个想要使用api的人都能调用它,并得到他们所想的结果。
云智慧作为国内最专业的应用性能管理服务商,是业内第一家提供api监控的应用性能管理服务商。通过监控宝切入api监控领域,是为了保障服务的“可用性”,保障的是“所有用户”。因为前端出现问题,影响的是服务的易用性,受影响的往往是一部分用户;而后端api出现问题,影响的是服务的可用性,受影响的将会是全部用户。
现在我们手机里安装的是各种原生app,这些app都是典型的三层架构,要确保api的正常运行,不但要监控单个api请求,还应该监控连续请求构成的事务,同时通过多监测点监控api的可用性、正确性和响应时间,来确保接口运行时的一致性、完整性、正确性和及时性。
监控宝api监控的正确性是以断言来判断的,当没有断言或者多监测点部分正确,下图解释了怎么去界定api的正确性。
再如api的响应时间,对1点多次,多点1次,多点多次,以及不正确,不可用,我们怎么计算响应时间?如何处理这种非正常数据?在新版api监控中都进行算法上的优化,保证用户得到最精确的结果。
图:监控宝如何定义api响应时间
图:监控宝如何定义api是否可用
云智慧监控宝的api监控,我们详细定义了很多监控指标,比如可用性包括了超时设定,返回码和监测点部分可用情况下的api可用性。为什么返回码不再是原来的200呢,因为除了200以外,用户还有很多不同数值的正常返回码。
api 请求,请求返回码为 1xx、 2xx 或 3xx 时,都视为请求成功。
api 事务,其所有请求都成功时,则视为成功;否则返回其顺序请求的第一个非成功码(1xx、2xx、 3xx 之外的返回码)。
api 请求未设置断言时,请求返回码默认为 200(请求成功)。
云智慧监控宝的api监控发布以来,获得了大量用户的认可,但也得到了很多修改意见,这次我们对api进行了一次重要的改善。
这次云智慧推出的新版api监控,主要是为了解决api监控现存的几个主要问题:数据展现不直观、不能完整分析业务、指标算法不完善、不能联系告警、告警及时性不强等。
图:新版api监控概览页
实时掌握每一次api接口响应时间、可用性和正确性
api事务中,若其中的1个api请求不可用,则整体业务的api事务变得不可用。api监控可以从业务视角做完整的api事务监控。
告警方式新增“当前可用性”和“当前正确性”告警指标;新增了“连续告警”的 通知方式。
新的api监控详情页,采用了类似网站监控的呈现方式,各监测点状况可在地图上直观呈现。详情页可快速查看top5的最低可用率、最长故障时间、最多故障次数、最低正确率、最长错误时间、最多错误次数、最慢响应时间、最快响应时间数据图表,以及各监测点的相应监控数据。
支持api的get、post、put、delete、head、options六种请求。
支持basic auth, oauth1.0, oauth2, digest认证方式。
支持添加http头header和value。
支持添加url参数。
支持json、xml、text、response status验证及脚本导入。
以这几天北京雾霾红色预警为例,很多app都非常贴心的提供了pm2.5污染指数这个天气预报的公开接口,怎么监控这种接口呢?
在“创建监控项目”页面的api监控中,点击<创建项目>按钮创建api监控项目,需要设置监控项目的基本信息、api请求、初始变量、监控选项和告警方式。
在“基本信息”中设置监控项目的基本信息,如下图所示。
在“请求管理”中添加并管理需要监控的api请求,如下图所示。
添加api请求后,为保证正常监控,需检查是否能请求成功。点击<测试>按钮来测试请求并查看测试结果,如下图所示。
这是一种单请求api,对这种api的监控非常简单,开发者只要设置断言判断接口数据的正确性就可以了。监控宝api监控在新建请求时,可以直接点“测试”按钮,即时确认api设置的正确性,我们的断言支持jsonpath和xpath语言。
对于多步请求的api,我们提出了的“事务”概念,这种api监控怎么处理呢?这种多步连续的api,往往后面的请求会从前面的api结果去取变量,整个流程组合起来才能构成完整业务。
在第一个请求,我们可以设置初始变量,然后由后面的请求来取。
然后对每一个请求,在需要的地方添加参数,添加变量。
后面的请求,就可以直接动态提取变量。
我上面取的是监控宝api的token请求。
在监控项目列表中,点击监控项目查看监控项目详情,如下图所示。
在监控项目详情页面,您能够:
查看监控项目的基本信息,包括当前监控项目的名称、事务流程和监控频率。点击“事务流程”选择api请求,查看单个api请求的监控详情。
查看概览、可用率统计、正确率统计、响应时间统计、告警消息等信息。
执行快捷设置,包括设置自定义告警和告警通知。
管理监控项目,包括添加分类、开启/暂停监控、修改监控和删除监控项目。
在“告警消息“页面查看所有告警消息记录,包括故障信息、提醒消息和系统消息。
告警消息以天为单位显示,最新告警消息显示在最上方。您可在上方的时间栏中自定义时间范围。
告警消息分类说明
来云智慧监控宝,亲自体验api监控吧。
本文来自云栖社区合作伙伴“linux中国”
原文发布时间为:2013-04-02.