Agent-based Vs Agent-less Monitoring Tool

Before discussing the difference between agent-based and agent-less monitoring tools, let’s try to understand what is an agent.

What is an agent?

An agent is a proprietary software application installed on the server whose performance needs to be monitored. The agent resides at the server end and gathers the stats like CPU, Memory utilization etc. Then it sends all these stats to the console (UI) for displaying the result.

Difference Between Agent-based and Agent-less Performance Monitoring Tools:

  • Proprietary Software:
    • Agent-based: Need to install on each server which is under monitoring
    • Agent-less: No need to install on each server
  • Central System:
    • Agent-based: Along with agents, there is one central system (machine) named Master or Data Collector. This machine communicates with all the agents and collects the data.
    • Agent-less: There is only one central system which directly communicates with the server (under monitoring) and collects the data.
  • Installation:
    • Agent-based: It requires the installation of a central system with the additional installation of agents on each server.
    • Agent-less: It requires the installation of a central system only.
  • Cost of Hardware:
    • Agent-based: It is costlier than an agent-less monitoring tool because it needs more infrastructure to support the agents and store huge data.
    • Agent-less: Less or no additional hardware is required. Hence infrastructure cost is low. 
  • License Cost:
    • Agent-based: Since they are having rich monitoring features, so license cost is high.
    • Agent-less: License cost is low; although some open-source agent-less monitoring tools are also available in the market. 
  • Maintainance:
    • Agent-based: Labour intensive and if the deployment process is not automated then it is more costly to install and maintain.
    • Agent-less: In case of a new release, the deployment can be easily done and it has a low maintenance cost.
  • Network Overhead:
    • Agent-based: Agent-based monitoring is bandwidth efficient because data is collected locally and only the processed final results are transported to the console. So in a way, it is one way Push mechanism.
    • Agent-less: It requires additional network traffic as the raw performance data is transported to a remote data collector and leads to two-way communication.
  • Server Overhead:
    • Agent-based: It has some server overhead (although it is low and depends on how frequently the data is being collected). The server overhead is because of agent activities. While collecting the local data, the agent consumes a CPU cycle as well as a low amount of memory. 
    • Agent-less: Server CPU cycle and memory are consumed as and when a polling request is received. Hence there is no permanent overhead on the target server.
  • Cycle Granularity:
    • Agent-based: It can show the low granularity graph (around 1 second) and hence less chance to lose the critical spike.
    • Agent-less: It has granularity higher than an agent-based tool, so the chances are high to lose the critical spike. 
  • Coverage and Analysis:
    • Agent-based: Some of the agent-based monitoring tools are loaded with the best profiling features and provide an in-depth analysis of the root cause. The span of monitoring of those tools is deeper (till code level) and broader (nearly all types of monitors).
    • Agent-less: Due to limited features, the monitoring coverage is less and analysis is restricted. It may require getting the help of server logs to identify the exact root cause of the issue. 
  • Knowledge: 
    • Agent-based: Required good skill to use all the features of the tool purposely.
    • Agent-less: Required basic knowledge of graph reading, monitoring and analysis.
  • Example:

You may be interested: