天天看点

深度解析 API 监控那些事儿

<a></a>

api是随着互联网和云计算的兴起而催生的产物。像云供应商亚马逊、互联网巨头google、社交媒体twitter,他们的服务都是通过api的方式来提供的。api这个概念在2005年从国外就开始火起来了,同时歪果仁提出了“api经济”的概念。

深度解析 API 监控那些事儿

图:2012年数据

ibm中间件总经理marie l. wieck在一次采访中指出,到2018年api经济的市场规模预计将达到2.2万亿美元,而在未来2-3年中,开展api项目的企业数量有望增长150%。api监控可持续考察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的正确性。

深度解析 API 监控那些事儿

再如api的响应时间,对1点多次,多点1次,多点多次,以及不正确,不可用,我们怎么计算响应时间?如何处理这种非正常数据?在新版api监控中都进行算法上的优化,保证用户得到最精确的结果。

深度解析 API 监控那些事儿

图:监控宝如何定义api响应时间

深度解析 API 监控那些事儿

图:监控宝如何定义api是否可用

云智慧监控宝的api监控,我们详细定义了很多监控指标,比如可用性包括了超时设定,返回码和监测点部分可用情况下的api可用性。为什么返回码不再是原来的200呢,因为除了200以外,用户还有很多不同数值的正常返回码。

api 请求,请求返回码为 1xx、 2xx 或 3xx 时,都视为请求成功。

api 事务,其所有请求都成功时,则视为成功;否则返回其顺序请求的第一个非成功码(1xx、2xx、 3xx 之外的返回码)。

api 请求未设置断言时,请求返回码默认为 200(请求成功)。

云智慧监控宝的api监控发布以来,获得了大量用户的认可,但也得到了很多修改意见,这次我们对api进行了一次重要的改善。

这次云智慧推出的新版api监控,主要是为了解决api监控现存的几个主要问题:数据展现不直观、不能完整分析业务、指标算法不完善、不能联系告警、告警及时性不强等。

深度解析 API 监控那些事儿

图:新版api监控概览页 

实时掌握每一次api接口响应时间、可用性和正确性

api事务中,若其中的1个api请求不可用,则整体业务的api事务变得不可用。api监控可以从业务视角做完整的api事务监控。

深度解析 API 监控那些事儿

告警方式新增“当前可用性”和“当前正确性”告警指标;新增了“连续告警”的 通知方式。

深度解析 API 监控那些事儿

新的api监控详情页,采用了类似网站监控的呈现方式,各监测点状况可在地图上直观呈现。详情页可快速查看top5的最低可用率、最长故障时间、最多故障次数、最低正确率、最长错误时间、最多错误次数、最慢响应时间、最快响应时间数据图表,以及各监测点的相应监控数据。

深度解析 API 监控那些事儿

支持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监控中,点击&lt;创建项目&gt;按钮创建api监控项目,需要设置监控项目的基本信息、api请求、初始变量、监控选项和告警方式。

在“基本信息”中设置监控项目的基本信息,如下图所示。

深度解析 API 监控那些事儿

在“请求管理”中添加并管理需要监控的api请求,如下图所示。

深度解析 API 监控那些事儿

添加api请求后,为保证正常监控,需检查是否能请求成功。点击&lt;测试&gt;按钮来测试请求并查看测试结果,如下图所示。

深度解析 API 监控那些事儿
深度解析 API 监控那些事儿
深度解析 API 监控那些事儿

这是一种单请求api,对这种api的监控非常简单,开发者只要设置断言判断接口数据的正确性就可以了。监控宝api监控在新建请求时,可以直接点“测试”按钮,即时确认api设置的正确性,我们的断言支持jsonpath和xpath语言。

对于多步请求的api,我们提出了的“事务”概念,这种api监控怎么处理呢?这种多步连续的api,往往后面的请求会从前面的api结果去取变量,整个流程组合起来才能构成完整业务。

深度解析 API 监控那些事儿

在第一个请求,我们可以设置初始变量,然后由后面的请求来取。

深度解析 API 监控那些事儿

然后对每一个请求,在需要的地方添加参数,添加变量。

深度解析 API 监控那些事儿

后面的请求,就可以直接动态提取变量。

深度解析 API 监控那些事儿

我上面取的是监控宝api的token请求。 

在监控项目列表中,点击监控项目查看监控项目详情,如下图所示。

深度解析 API 监控那些事儿

在监控项目详情页面,您能够:

查看监控项目的基本信息,包括当前监控项目的名称、事务流程和监控频率。点击“事务流程”选择api请求,查看单个api请求的监控详情。

查看概览、可用率统计、正确率统计、响应时间统计、告警消息等信息。

执行快捷设置,包括设置自定义告警和告警通知。

管理监控项目,包括添加分类、开启/暂停监控、修改监控和删除监控项目。

在“告警消息“页面查看所有告警消息记录,包括故障信息、提醒消息和系统消息。

告警消息以天为单位显示,最新告警消息显示在最上方。您可在上方的时间栏中自定义时间范围。

告警消息分类说明

深度解析 API 监控那些事儿

来云智慧监控宝,亲自体验api监控吧。

本文来自云栖社区合作伙伴“linux中国”

原文发布时间为:2013-04-02.

继续阅读