API深度影响着你的应用
今天的数字应用世界其实是一个以API为中心的世界,我们只是没有意识到这些API的重要性。比如在电子商务交易、社交媒体等对交互高度依赖的领域,可以说API决定了应用的质量一点也不为过。
![jd product page](https://www.tingyun.com/wp-content/uploads/2022/01/jd-product-page.png)
以京东为例,用户的每一次操作背后都关联着一系列API,比如购买商品时选择不同的规格、颜色等信息,这些API可能基于分布式服务位于不同地方,因此增加了更多的复杂性。也因为这些复杂的网络和应用架构,让这些API中的任何一个都可能不可用或出现某种性能问题。
![jd system architecture](https://www.tingyun.com/wp-content/uploads/2022/01/jd-system-architecture.png)
(京东商城整体架构示例,图片来自互联网分享)
因此如果你想确保您的客户拥有良好的用户体验,主动监控您的API至关重要,有没有一种方式能在不影响现有用户的同时监测到哪些API存在问题呢?进而实现主动发现主动告警。没错,我们可以用模拟用户访问。
基调听云让这变成可能
既然是模拟总要有用户节点才行,基调听云经过10多年的积累和发展,目前遍布在全球各地的有30万+的模拟用户节点。这些节点通过任务下发方式主动对您的API接口做监控,无需您的开发人员做任何嵌码。只要是该API URL能在互联网上被访问,就可以通过主动监控提前发现API接口的错误或性能问题。提前发现和解决可以减少对用户的影响,帮您提升业务可用性和用户体验。
监控过程也很简单,5分钟搞定:
1、申请听云Network SaaS账号:https://account.tingyun.com/reg/register#/
2、创建API接口监控任务:在任务管理界面,创建“单一文件下载”类型的任务,输入要测试的API接口URL,请求方式为get和post方式,针对post请求,可以设置post内容以及预期的内容,以便监测过程中如果返回内容和实际内容不一致时可以报错报警。
![1636602912515-0b9c754f-737f-4245-a411-4e1d1f5e04bb](https://www.tingyun.com/wp-content/uploads/2022/01/1636602912515-0b9c754f-737f-4245-a411-4e1d1f5e04bb.png)
![1636603217486-cf0a0bd2-5580-435e-9e43-63cedb2b9f5d](https://www.tingyun.com/wp-content/uploads/2022/01/1636603217486-cf0a0bd2-5580-435e-9e43-63cedb2b9f5d.png)
3、配置完任务,建议及时对各种指标配置告警阈值,以便及时发现问题。
是不是很简单?先别急着放松,这只是开始。我们还要分析数据,按照惯例监控从来都不是我们的目的,数据才是。
我们该关注哪些指标?
对于API监控来说,建议重点关注的指标:可用性、错误、建立连接时间、首包时间等。
登录到听云控制台以后,选择你刚刚创建好的任务,正常情况下任务创建后几分钟左右就会有采集上来的数据展示。
分三步来看:
一看趋势
通过报表功能导航栏的“趋势”功能,我们可以查看该API接口近期的性能波动情况:
![1636605084357-b4dc8b63-a525-439e-9d6c-059dac28578f](https://www.tingyun.com/wp-content/uploads/2022/01/1636605084357-b4dc8b63-a525-439e-9d6c-059dac28578f.png)
以上图为例,可以看到在11月2日左右,该接口的总下载时间由原来的2秒左右下降到5秒左右,下降了一倍多,这不是个好现象。
根据经验,影响总下载时间的指标一般可能是DNS时间、建立连接时间、SSL握手时间、首包时间、内容下载时间、总下载字节数等指标。
依次查看,我们看到首包时间和总下载时间的趋势一致,基本可以判断是由于首包时间变长,导致总下载时间变长的原因。
如下:
![1636605304180-01ab81bf-3ad4-4bbb-bb45-6500e8b736a0](https://www.tingyun.com/wp-content/uploads/2022/01/1636605304180-01ab81bf-3ad4-4bbb-bb45-6500e8b736a0.png)
影响首包时间的元素一般为:
1、网络原因。结合看DNS、建立连接时间、SSL等指标都比较稳定,基本排除网络原因。
2、服务器对接口的处理能力下降。有可能业务量爆发导致API接口处理的内容变多,或者服务器负载比较高等原因。
这时候就可以联系相关技术同事在服务器端进行进一步查看分析了。
二看可用性
选取可用性指标页,可以查看API接口的可用性情况。
![1636605506225-5582d37a-d80f-44dc-af2f-45caab41a6fe](https://www.tingyun.com/wp-content/uploads/2022/01/1636605506225-5582d37a-d80f-44dc-af2f-45caab41a6fe.png)
![1636605531880-5ec42561-dc2a-4e81-bc79-de17755f2d99](https://www.tingyun.com/wp-content/uploads/2022/01/1636605531880-5ec42561-dc2a-4e81-bc79-de17755f2d99.png)
可以看到该接口近期的可用性为99.79%,在行业参考值范围以内,同时我们也看到近期该接口出现20次错误,我们可以在“错误”模块中查看近期都出现了什么类型的错误。
![1636605618120-cff59f22-04ed-4d4a-8e3a-7f0d93f4a908](https://www.tingyun.com/wp-content/uploads/2022/01/1636605618120-cff59f22-04ed-4d4a-8e3a-7f0d93f4a908.png)
示例中该接口主要出现一些502、504、408、超时等类型的错误,可以点击每一种错误类型下钻分析其错误详情。
![1636605678671-f539cadd-01db-4477-b86d-a12e79749d3d](https://www.tingyun.com/wp-content/uploads/2022/01/1636605678671-f539cadd-01db-4477-b86d-a12e79749d3d.png)
这里散点图,描述的是每一次错误请求的分布情况,可以继续点击某个错误图示,进一步下钻分析其错误详情。
![1636605790798-70d54a6d-9c20-4ef3-a4f1-befb07b980fc](https://www.tingyun.com/wp-content/uploads/2022/01/1636605790798-70d54a6d-9c20-4ef3-a4f1-befb07b980fc.png)
三看主机
更详细的情况,可以从主机维度分析,可以查看此类错误主要都发生在哪些主机?
![1636605876983-d436c1c6-e147-4fe9-a15d-9d12fb43569a](https://www.tingyun.com/wp-content/uploads/2022/01/1636605876983-d436c1c6-e147-4fe9-a15d-9d12fb43569a.png)
技术人员拿到这些信息可以在对应的服务器上做进一步排查和关注。
总结
通过这款产品的功能让我们多了一种方式快速地对自己的API质量能进行有效监控,工具归根到底都只是辅助,重要的是有主动监控的意识加上丰富的数据分析经验,定位和解决问题才会更加的如虎添翼。