关于运维:APM-vs-NPM

50次阅读

共计 1025 个字符,预计需要花费 3 分钟才能阅读完成。

概述

APM:Application Performance Monitoring 的简称,即利用性能监控。
NPM:Network Performance Monitoring 的简称,即网络性能监控。

技术实现

  • APM: 利用服务器上安装代理
  • NPM:交换机网络流量镜像

部署

  • APM:每台应用服务器都需装置代理
  • NPM:所关怀的利用即 ip 加 port 所通过的交换机流量必须全副镜像

反对的技术

  • APM:全副利用 java .net php nodejs 各种框架
  • NPM:http,tcp 等各种网络协议

监控颗度

  • APM:应用服务器上利用外部的全副调用过程,内存对象和线程的全副解析。
  • NPM:则只波及到协定的 request 例如 url,无奈深刻部调用。也无奈对交易自动化残缺串联跟踪;然而会有网络设备的网络性能。

毛病

NPM

  • 流量没有走交换机, 比方都是同一台宿主机上的虚拟机, 则无奈监控
  • 监控只限于网络层面, 无奈深刻利用和代码
  • 如果网络协议加密, 则可能须要私钥进行解密, 或无奈解密, 或解密过程性能耗费较大.
  • 无奈监控数据中心以外的数据

APM

  • 次要反对 JAVA/.Net 等语言的监控, 特定语言(如:C)及特定应用服务器(如:Tuxedo)无奈监控
  • 商业 APM 按节点计费, 较难做到全笼罩
  • 数据中心, 如果技术栈不反对, 则无奈做到全监控
  • 侵入式部署

长处

NPM

  • 数据中心全笼罩(当然,也是有条件的,然而绝对 APM 容易实现)
  • 通过相干的网络协议监控,能够更宽泛地实现客户关注的成果
  • 针对银行交易有残缺的成熟的解决方案(如:天旦 BPC)
  • 部署非侵入式

APM

  • 能够监控到数据中心以外的数据(其实须要 RUM 即 Real User Monitoring)
  • 利用性能问题深刻追踪(具体到办法 / 线程快照 / 内存快照 / 异样 / 日志 / 同步异步调用等)
  • 用户体验治理(用户操作 / 手机 APP/ 浏览器)(也是通过 RUM 实现)

实用场景

APM

  • 更关注利用性能问题
  • 开发 / 中间件运维
  • 须要对利用 / 中间件要害指标进行监控和告警
  • 零碎架构都是 JAVA/.NET/php/node.js…. (无 C 无 tuxedo) , 则能够进行主动的交易关联, 且监控细粒度会很细.
  • 须要对数据中心外的用户体验 (如用户点击操作数据 / 手机 APP/ 浏览器端数据) 监控

NPM

  • 业务监控(典型如银行交易笔数)
  • 更关注网络性能问题
  • 零碎架构中含有非 .net/JAVA 零碎, 如 Tuxedo
  • 无奈承受侵入式部署
  • 银行(有残缺的解决方案, 如天旦 BPC)

三人行, 必有我师; 常识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

正文完
 0