APM vs NPM

apm,vs,npm · 浏览次数 : 174

小编点评

**APM:Application Performance Monitoring 的概述** APM 是应用性能监控的简称,是应用服务器监控技术。 **NPM:Network Performance Monitoring 的简称** NPM 是网络性能监控的简称,是交换机网络流量镜像部署的简称。 **APM 的技术实现** APM 涉及到以下技术: - 应用服务器代理 - 网络协议监控 - 应用内部调用追踪 **NPM 的缺点** - NPM 流量没有走交换机,无法监控网络层问题。 - 只能监控网络层问题,无法深入应用层和代码层问题。 - 无法监控数据中心以外的数据。 **APM 的优点** - 针对 Java/.Net 等语言的监控 - 对特定语言和应用服务器的监控支持有限 - 适用于全覆盖数据中心,但需要满足条件 - 通过网络协议监控,可以更广泛地实现客户关注的效果

正文

概述

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)

与APM vs NPM相似的内容:

APM vs NPM

APM(Application Performance Monitoring)和 NPM(Network Performance Monitoring)的对比。

Skywalking APM监控系列(二、Mysql、Linux服务器与前端JS接入Skywalking监听)

前言 上篇我们介绍了Skywalking的基本概念与如何接入.Net Core项目,感兴趣可以去看看: Skywalking APM监控系列(一丶.NET5.0+接入Skywalking监听) 本篇我们主要讲解一下Skywalking如何接入mysql数据库监听与Linux服务器的监听 其实从Sky

Skywalking APM监控系列(一丶.NET5.0+接入Skywalking监听)

前言 新项目采用的abp vnext的微服务模块化架构,所以把应用的服务拆成了很多独立模块 在初期,我们通过日志还能跟踪到问题, 后期服务越来越多(大约扩充到了十几个),随着调用链路越来越深 ,问题也越来越能排查了. 往往入口报错之后,要跟好几个服务的日志 才能找到最终节点. 所以考虑引入Skywa

Kustomize 生产实战-注入监控 APM Agent

Kustomize 简介 Kubernetes 原生配置管理工具, 它自定义引入了一种无需模板的方式来定制应用程序配置,从而简化了对现成应用程序的使用。目前,在kubectl中内置了,通过 apply -k 即可使用。 Kustomize 遍历 Kubernetes 清单以添加、删除或更新配置选项,

企业应用可观测性利器!华为云CodeArts APM发布

摘要:近日,华为云全链路应用性能管理服务CodeArts APM全新上线,提供端到端的全链路性能管理服务,涵盖前端监控、应用性能监控,全面拥抱开源生态。 本文分享自华为云社区《企业应用可观测性利器!华为云CodeArts APM发布》,作者:华为云头条。 当前,企业数字化转型和业务互联网化逐渐加深,

.NET无侵入自动化探针原理和主流实现

## 前言 最近,我在微信公众号和博客园分享了一篇关于[.NET微服务系统迁移至.NET 6.0的故事](https://www.cnblogs.com/InCerry/p/microservice-migration-net-6.html)的文章,引起了许多读者的关注。其中,许多人对基于 Open

[转帖]JAVA⽣态的微服务⽆侵⼊链路追踪

https://v5.6-docs.rainbond.com/docs/v5.3/advanced-scenarios/devops/pinpoint/#pinpoint%E7%AE%80%E4%BB%8B 一. ⽆侵⼊链路追踪APM⼯具​ 应⽤性能管理(Application Performanc

【c#版本Openfeign】Net8 自带OpenFeign实现远程接口调用

引言 相信巨硬,我们便一直硬。Net版本到现在已经出了7了,8也已经在预览版了,相信在一个半月就会正式发布,其中也有很多拭目以待的新功能了,不仅仅有Apm和Tap的结合,TaskToAscynResult,以及UnsafeAccessor用来获取私有变量,性能比反射,EMIT更高,还有针对Async

使用C#编写.NET分析器-第二部分

## 译者注 这是在Datadog公司任职的Kevin Gosse大佬使用C#编写.NET分析器的系列文章之一,在国内只有很少很少的人了解和研究.NET分析器,它常被用于APM(应用性能诊断)、IDE、诊断工具中,比如Datadog的APM,Visual Studio的分析器以及Rider和Resh

使用C#编写.NET分析器(三)

## 译者注 这是在Datadog公司任职的Kevin Gosse大佬使用C#编写.NET分析器的系列文章之一,在国内只有很少很少的人了解和研究.NET分析器,它常被用于APM(应用性能诊断)、IDE、诊断工具中,比如Datadog的APM,Visual Studio的分析器以及Rider和Resh