每个平台团队都应该跟踪的API指标
目录
识别关键 API 度量
基础架构/DevOps
应用工程/平台
产品管理
业务/增长
基础架构API指标
正常运行时间
CPU使用率
内存使用率
应用程序API指标
相应时间
平均和最大延迟
吞吐量
可用性
缓存命中率
每分钟错误数
每个业务事务的API调用
如何收集优化API指标
识别关键 API 度量
当涉及到API时,每个团队都需要跟踪不同的KPI。
基础架构/DevOps
确保服务器正在运行,并且正确分配有限的资源,这可能适用于多个工程团队
应用工程/平台
API开发人员负责向API添加新功能,同时调试API业务逻辑中特定于应用程序的问题。这些产品可以是API即服务、为合作伙伴提供的插件和集成、包含在更大产品中的API或其他产品
产品管理
API产品经理负责规划API功能,确保构建正确的API端点,并平衡客户需求(无论是内部还是外部)与工程时间和个人限制。
业务/增长
市场营销和销售等面向业务的团队并没有考虑API端点,而是对客户采用感兴趣,确保他们成功使用API,以及API的来源,并了解哪些用户可能成为新的销售机会。
基础架构API指标
这些指标中的许多都是应用程序性能监控(APM)工具和基础设施监控公司(如 Datadog)关注的焦点
正常运行时间
虽然正常运行时间或可用性是最基本的衡量标准之一,但它是衡量服务可用性的黄金标准。许多企业协议都包含SLA(服务级别协议),正常运行时间通常包含在其中。很多时候,你会听到三个9或四个9之类的术语,这是衡量每年正常运行时间与停机时间的指标。
当然,从4到5个9比从2到3个9要困难得多,这就是为什么除了最关键(也是最昂贵)的服务之外,你不会看到5个9。话虽如此,某些服务实际上可以降低正常运行时间,同时确保在不影响服务的情况下妥善处理停机。例如,Moesif的设计使得它可以继续从我们的SDK中收集数据,即使在网站和仪表板完全中断的情况下也是如此。即使在我们的收集网络出现故障的最坏情况下,SDK也会在本地排队,不会导致应用程序中断。
正常运行时间通常通过ping服务或合成测试来测量,例如通过Pindom或UptimeRobot。您可以将探测配置为以固定的间隔运行,例如每分钟运行一次,以探测特定的端点,例如/health或/status。该端点应该具有基本的连接测试,例如到任何备份数据存储或其他服务的连接测试。
CPU使用率
CPU使用率是最经典的性能指标之一,CPU使用率高可能意味着服务器或虚拟机正在处理大量任务或程序,也可能意味着应用程序中存在性能缺陷,例如旋转锁过多。可以使用CPU使用率和内存百分比来进行资源规划和衡量整体运行状况。
💡
自旋CAS如果长时间不成功,会给CPU带来非常大的执行开销
内存使用率
与CPU使用率一样,内存使用率也是衡量资源使用率的一个很好的指标,因为CPU和内存容量是物理资源,而不是可能更依赖于配置的指标。
内存使用率极低的虚拟机可以缩小规模,也可以为该虚拟机分配额外的服务以消耗额外的内存。另一方面,高内存使用率可能是服务器过载的指标。传统上,大数据查询/流处理和生产数据库比CPU消耗更多的内存。事实上,每个虚拟机的内存大小可以很好地指示批处理查询所需的时间,因为更多的可用内存可以减少检查点、网络同步和磁盘分页。在查看内存使用情况时,还应该查看页面错误和I/O操作的数量。一个容易犯的错误是,应用程序被配置为最多只分配一小部分可用物理内存,这可能会导致人为的高页面虚拟内存抖动。
应用程序API指标
API性能指标是用于评估应用程序编程接口(API)的效率、可靠性和总体功能的可测量值。这些指标有助确定问题,优化功能,并确保与其他应用程序的无缝集成。
相应时间
API处理请求并返回响应所用的时间,通常以毫秒为单位。响应时间越短,表示性能越高。
平均和最大延迟
API延迟是指数据或请求从源到目的地所需的时间。延迟以毫秒为单位。延迟越接近于零越好,相反则对用户体验产生负面影响。当出现API延时主要考虑从应用层、数据库层排查。比如索引失效、代码缺陷。
吞吐量
API 每单位时间处理的请求数,通常以每秒请求数(RPS)来衡量。对于处理大型工作负载的 API 来说,高吞吐量是理想的。
可用性
API可供使用的时间百分比,通常以总时间的百分比来衡量。高可用性对于确保可靠和健壮的API至关重要。
缓存命中率
从缓存而不是直接查询数据源提供服务的API请求的百分比。较高的缓存命中率通常会减少响应时间和服务器负载,从而获得更好的性能。
每分钟错误数
每分钟错误(或错误率)是每分钟非200个状态代码系列的 API 调用的数量,对于测量 API 有多少错误和容易出错是至关重要的。高错误率表明API存在问题,例如代码错误、资源不足或网络问题等外部因素。通过识别和解决这些问题,可以降低错误率,并提供更可靠、高效的API,为用户提供一致的性能。
每个业务事务的API调用
如果一个API需要进行三次以上的操作才能把数据拼接在一起返回到调用者说明API可能需要重新设计。在设计API时需要从业务事务和调研者的目标角度来考虑。比如如何设计过滤条件、分页。
如何收集优化API指标
定期分析收集的指标并确定需要改进的方面来优化API性能。关键步骤包括完善代码逻辑、优化数据库查询、改进服务器基础设施、实现缓存机制以及使用CDN来减少延迟。通过持续监控性能指标并实施改进,可以确保其API保持健壮高效,为用户提供可靠、高质量的服务。
跟踪诸如响应时间,成功请求率,错误率,数据吞吐量和可用性等指标至关重要。通过密切监视这些指标,可以识别性能瓶颈,诊断技术问题并实施更改以改善整体用户体验。
延伸阅读
如何版本REST API:综合指南-CSDN博客
如何设计 API: 基本指南 + 最佳实践-CSDN博客
金融行业业务流程指南-三级模型-CSDN博客