APM vs NPM

This article was last updated on: February 7, 2024 pm

overview

APM: Short for Application Performance Monitoring, that is, Application Performance Monitoring.
NPM: Short for Network Performance Monitoring, that is, Network Performance Monitoring.

Technical implementation

  • APM: Install the agent on the application server
  • NPM: Switch network traffic mirroring

deploy

  • APM: Each application server requires an agent to be installed
  • NPM: The application of interest, i.e. IP plus port, must all mirror the switch traffic through which it passes

Supported technologies

  • APM: All apply Java .NET PHP nodejs frameworks
  • NPM: http, TCP and other network protocols

Monitor the magnitude

  • APM: All internal application call procedures, memory objects and threads are resolved on the application server.
  • NPM: Only involves the request of the protocol, such as the URL, and cannot be called in depth. It is also impossible to automate full tandem tracking of transactions; But there will be network performance of network devices.

shortcoming

NPM

  • Traffic that does not go through the switch, such as virtual machines on the same host, cannot be monitored
  • Monitoring is limited to the network level and does not provide insight into applications and code
  • If the network protocol is encrypted, the private key may be required for decryption, or it cannot be decrypted, or the decryption process performance consumption is large.
  • Data outside the data center cannot be monitored

APM

  • It mainly supports monitoring of JAVA/.Net and other languages, and cannot be monitored by specific languages (such as C) and specific application servers (such as Tuxedo).
  • Commercial APM is billed per node, which is difficult to achieve full coverage
  • Data center, if the technology stack does not support it, it cannot be fully monitored
  • Intrusive deployment

merit

NPM

  • Full data center coverage (of course, it is also conditional, but it is easier to achieve than APM)
  • Through the monitoring of relevant network protocols, the effect of customer attention can be achieved more widely
  • Complete and proven solutions for banking transactions (e.g. Tiandan BPC)
  • Deploy non-intrusive

APM

  • Can monitor data outside the data center (in fact, RUM is required for Real User Monitoring)
  • In-depth tracing of application performance issues (specific to methods/thread snapshots/memory snapshots/exceptions/logs/synchronous asynchronous calls, etc.)
  • User experience management (user operation/mobile app/browser) (also via RUM)

Applicable scenarios

APM

  • Focus more on application performance
  • Development/middleware O&M
  • Key application/middleware metrics need to be monitored and alerted
  • The system architecture is JAVA/.NET/php/node.js… (No C without tuxedo), automatic transaction correlation can be carried out, and the monitoring granularity will be very fine.
  • It is necessary to monitor the user experience outside the data center (such as user click operation data/mobile APP/browser-side data).

NPM

  • Business monitoring (typically e.g. number of bank transactions)
  • Pay more attention to network performance issues
  • The system architecture contains non-.NET/JAVA systems, such as Tuxedo
  • Intrusive deployments are not acceptable
  • Banks (with complete solutions, such as Tiandan BPC)

APM vs NPM
https://e-whisper.com/posts/1746/
Author
east4ming
Posted on
September 27, 2021
Licensed under