发布日期:2023 年 11 月 29 日
撰稿人:Chrystal R. China、Michael Goodwin
API 监控是观察企业应用程序编程接口 (API) 的性能、可用性和功能的过程。
具体而言,API 监控涉及评估正式上线环境中的 API 响应,以确保它们满足企业的性能基准,并在出现问题时向相关方发出警报。随着企业日益转向数字化 IT 基础架构,各方和系统之间的顺畅连接变得至关重要。 这正是 API 可以发挥作用的地方。
API 是大多数移动和网络应用程序的构件,也是构成大多数 IT 生态系统的各种流程、协议和应用程序的数据编排中心。它们促进应用程序之间以及应用程序与客户端之间的通信,从而实现各种服务的无缝整合。
超过 75% 的企业表示每个应用程序(平均)部署了 26 个 API。1超过三分之一的企业表示他们所有的应用程序均使用 API,预计这一数字在未来几年将增长到 50% 以上。1
因此,API 性能是大多数企业真正关心的问题。 如果管理不当,受损或过时的 API 可能会严重影响最终用户体验和应用程序的整体功能以及业务利润。严密的 API 监控措施有助于企业在 API 性能和功能问题成为破坏性(甚至灾难性)问题之前及时加以解决。
获取 IBM Instana Observability 演示,了解如何在几分钟内实现全栈可观察性和监控。
订阅 IBM 时事通讯
当今的 API 可以促进复杂的系统、应用程序和微服务整合流程,但即使是最先进的 API 也需要团队实施严格的监控措施。 幸运的是,有许多 API 监控策略可以帮助确保企业 API 的长期效率和有效性。
正常运行时间监控定期对 API 端点(即 API 数据交换的位置)进行 ping 操作,以确保其可访问且响应良好(即“正常运行”)。 如果 API 没有响应或响应时间过长,系统会发送警报。
用于监控正常运行时间的 API 指标包括可用性百分比(API 可访问的时间比例)和停机持续时间(API 不可访问的时长)。 服务级别协议 (SLA) 规定所需正常运行时间百分比的情况并不罕见,通常要求约 99.9% 或更高的正常运行时间。
性能监控可量化 API 响应请求的速度和可靠性,并帮助识别效率低下、网络问题和服务器过载的情况。 性能通常由响应时间(API 处理和响应请求/调用所需的时间)、延迟(将请求从发送方传输到接收方所需的时间)和吞吐量(单位时间内处理的请求数量)等指标来衡量。性能监控还可以跟踪错误率,错误率表示导致错误的请求所占的百分比。
合成监控是一个模仿最终用户使用应用程序时可能采取的路径的过程,利用脚本模拟用户场景、设备类型和地理位置等要素,让团队了解应用程序的性能情况。
与合成监控一样,RUM 允许团队查看详细的应用程序性能和功能数据。不过,它并非监控模拟用户的体验,而是观察真实用户的实际体验,从而为最终用户体验提供全栈可观察性,并促进更精细的决策。
验证监控通过发送测试脚本来验证 API 响应、数据格式和状态代码是否正确,以及系统调用是否返回适当的数据,从而评估 API 的行为是否符合预期。验证监控对于识别多步骤流程或 API 的底层逻辑或数据处理问题特别有用。
Slack 等应用程序以及其他应用程序和网络服务通常都依赖于托管 API 和第三方 API,这可能会造成数据传输问题。整合监控通过测试 API 与其通信的其他应用程序和系统之间的交互来解决此类问题,确保系统的所有环节都能按预期协同运作,并识别系统之间的接口问题。此类监控对于在微服务架构中工作尤其有用,在这种架构中,多项独立服务会通过 API 进行交互。
API,尤其是在医疗和金融行业运行的 API,经常会传输敏感的用户和公司数据,这增加了对合规监控流程的需求。
合规监控可确保 API 遵守相关的隐私标准(如 HIPAA)、特定行业标准(如用于支付处理的 PCI DSS),甚至公司内部标准。团队可以跟踪数据处理措施、加密标准和访问控制机制等流程,以维护法律合规性和客户信任。
随着时间的推移,API 会不断发展,添加新功能,淘汰旧功能,并改变某些功能的运作方式。当发生这些变化时,有必要监控过渡情况,以便依赖 API 的应用程序不会受到更新的负面影响。版本控制监控让团队可以跟踪一段时间内的 API 变化,通常的做法是审查每次发布的新版本。
版本控制监控可能涉及比较不同版本之间的功能,跟踪新 API 版本的采用率,监控与已停用功能相关的错误率,以及跟踪应用程序各个版本的 API 使用情况。此类监控有助于识别 API 结构或功能更改期间出现的问题,并可以为 API 的未来更改提供信息。
无论采用哪种方法,团队都应优先考虑实时监控,以获得有关应用程序性能的即时反馈,并在问题造成用户和合作伙伴服务中断之前加以解决。另一个益处是,通常可以通过仪表板和状态页面直观呈现实时监控信息,从而提供即时见解并自动发出系统警报,这都是管理高可用性或关键工作流的重要流程。
API 是将现代应用程序架构和自动化工作流结合在一起的粘合剂,因此保持其最佳状态可使 IT 基础架构更迅速敏捷。为了实施全面有效的 API 监控流程,开发运维 (DevOps) 和安全团队可以:
在制定任何监控协议之前,团队应确立明确的目标。这意味着要定义可用性、响应时间、吞吐量和错误率等方面的 KPI。当然,KPI 应与更广泛的企业目标和消费者需求保持一致。
考虑到一些 API 网络的广泛程度,依赖 API 监控工具是理所当然的选择。先进的 API 数据可观察性平台(例如 Postman、Datadog 和 IBM Instana Observability)可以使用 HTTP 关键字检查和 DNS 服务器监控等功能自动执行并简化监控流程。在评估监控服务时,应考虑其功能、易用性、技术堆栈兼容性和成本,以确保合适。
此流程将因监控工具而异,但通常涉及三项关键任务:设置端点、定义 API 测试和调度监控。
设置端点需要团队提供 API 端点的 URL、HTTP 响应代码以及任何必需的标头或参数,以便监控工具了解运行测试脚本的位置和方式。顾名思义,定义测试就是配置监控工具将运行的测试以验证 API 性能的过程。设置监控计划只需团队决定相关工具运行所选测试的频率。
警报是任何监控系统的关键环节,可提供系统问题的即时通知,使团队能够在问题影响用户之前加以解决。大多数监控工具允许用户根据各种条件配置警报,例如当 API 响应时间超过特定阈值,或在给定时间范围内发生一定数量的错误时。
API 会不断发展,因此必须定期查看 API 性能数据和洞察分析,以确保监控协议仍然适用。查找历史数据中可能表明潜在问题的趋势和模式。例如,如果 API 的响应时间在某些时段持续偏长,则可能表明在这些时段需要更多资源。
IBM Instana 通过提供一个解决方案来实现可观察性的普及化,任何人都可以使用该解决方案在所需的环境中获取所需的数据。该平台专为云原生而构建,但与技术无关,支持以 1 秒的粒度自动且连续地提供高保真数据,并在移动、网络、应用程序和基础架构的逻辑和物理依赖关系环境中进行端到端跟踪。
利用 IBM Instana Observability 进行 API 监控,您将能够确保 API 的可用性、可靠性和性能,提供无缝的数字体验。