云原生NPM如何帮助团队更好地监控应用程序状态

云原生NPM(Network Performance Monitoring)通过以下方式帮助团队更好地监控应用程序状态:
1. 部署方式:
云原生NPM以纯软件方式部署在业务系统的主机内,尤其是在采用Docker、K8S等集群方式的业务系统中部署更加方便。每个主机都会进行部署,可以从多处采集不同的流量,实现类似传统NPM中的多段分析。
2. 采集的流量内容:
主要采集所在(虚拟)主机的网络流量,包括主机与外部的通信流量,以及主机内部通过虚拟网络设备互相连接的容器流量。在微服务架构流行的时代,主机内部的通信流量日益增多,云原生NPM能够捕获这些流量,有助于监控应用程序内部的网络交互状态。
3. 业务影响:
云原生NPM运行在原有的系统中,会占用原有系统的资源。需要保持实现的轻量,以免消耗过多的资源,影响业务系统的运行。
4. 实现技术:
大多采用libpcap/winpcap抓包技术,近年来基于eBPF(Extended Berkeley Packet Filter)的XDP(eXpress Data Path)技术也很受关注。这些技术能够以较低的资源开销,将应用层与网络层进行关联,将网络故障和事件定位至具体的应用,极大地缩短了定位网络异常的时间。
5. 多维度数据分析:
可观测性要求使用外部数据做分析,采用零侵扰的方式获取监控数据,不需要打桩插码、分光镜像,而是通过开放系统架构直接获取监控数据。并且要将应用的API、容器、主机、网络等监控数据进行全栈关联分析,以便在复杂的云原生环境中准确地监控应用程序状态。
6. 实时性:
云原生应用的动态性要求可观测性平台必须具备实时性。如果应用的升级/扩容在分钟级完成,那么监控系统就必须提供秒级的反馈能力,这对可观测性平台的海量数据实时处理能力提出了极高要求,而云原生NPM作为可观测性的一部分,也需要满足这种实时性要求,以便及时反映应用程序的状态变化。
Lei
April 25, 2025
技术探讨