Collector best practices

Distributed deployments

The AppMon Collector performs the byte-code modifications when instrumented applications start up. Therefore, the Agents need to send the byte code of your applications to the Collector. To keep start-up times low, it is necessary to deploy at least one Collector in every location/data center that is connected to an AppMon Server.

Hardware recommendations for a Collector box (for up to 100 Java / 25 .Net Agents):

Small AppMon Collectors
x86 Linux or Windows
1 Cores+ 1
1 GB RAM+ 2
(or comparable Solaris/AIX hardware)

Used network bandwidth: 50 MB (12 MB compressed)
Storage:
Install: 5 GB
Run-time data: 25 GB
1 AppMon Collectors (1 GB heap)

Hardware recommendations for a Collector box (for up to 150 Java / 50 .NET Agents):

Default AppMon Collectors3
x64 Linux or Windows
2 Cores+ 1
2 GB RAM+ 2
(or comparable Solaris/AIX hardware)

Used network bandwidth: 100 MB (25 MB compressed)
Storage:
Install: 5 GB
Run-time data: 45 GB
1 AppMon Collectors (2 GB heap)
1 AppMon Collector for monitoring plugins (1 GB heap)

Hardware recommendations for a Collector box (for up to 200 Java / 100 .Net Agents):

Medium AppMon Collectors
x64 Linux or Windows
2 Cores+ 1
4 GB RAM+ 2
(or comparable Solaris/AIX hardware)

Used network bandwidth: 100 MB (25 MB compressed)
Storage:
Install: 5 GB
Run-time data: 45 GB
1 AppMon Collectors (4 GB heap)
1 AppMon Collector for monitoring plugins (1 GB heap)

Hardware recommendations for a Collector box (for up to 400 Java / 250 .Net Agents):

Large AppMon Collectors
x64 Linux or Windows
4 Cores+ 1
8 GB RAM+ 2
(or comparable Solaris/AIX hardware)

Used network bandwidth: 100 MB (25 MB compressed)
Storage:
Install: 5 GB
Run-time data: 45 GB
1 AppMon Collectors (8 GB heap) 1 AppMon Collector for monitoring plugins (1 GB heap)

1 No virtual cores (Hyper-Threading), for Large Collector min. 2.2 GHz required.
2 Required memory for the Collector. If there are other processes running, then additional heap is required.
3 The Default Collector size for up to 150 Java / 50 .NET Agents is the shipped Collector size.

Collector sizing

The following deployment scenarios provide reasonable figures to plan Collector usage. You still must define Agent distribution and Infrastructure Monitoring Plugins over your Collectors.

Separate collector(s) from monitoring plugins

Plugins can affect the Collector's performance in unexpected ways and they do need memory. In addition, many Plugins are not officially supported by AppMon. To avoid any problems, you should never deploy Plugins on a Collector that serves Agents.

Connect Agents that run the same application to the same Collector to reduce memory usage on the Collector, but distribute the load over all of the Collectors that you are using. This ensures that you are not overloading a single Collector.

No firewall between agent and collectors

A firewall introduces latency in the calls between the Agent and Collector. This is often the reason for slow application start-up. The Agent needs to do several 10,000 round trips to the Collector at application start up. Even 1 ms firewall latency adds up to a noticeable time. Therefore, either use a real fast (in latency time) firewall or put the Collector into the same subnet as the Agents.

Note

The heap recommendations for the Collector (1 GB for a maximum of 100 Agents, 4 GB for a maximum of 200 Agents and 8 GB for a maximum of 400 Agents) in the deployment scenarios described here are based on the following assumptions:

  • Application Size: 25,000 loaded classes.
  • Instrumentation Depth: 10,000 instrumented.
  • Clustering: High Number of similar applications connected to a Collector.

Although these assumptions are satisfied in typical scenarios, there are situations in which the Collector needs more memory than is expected. In such situations, the Collector rejects a certain number of Agents due to insufficient heap size. In addition to assigning more heap, you could try to optimize Agent clustering by assigning identical applications to the same Agent Group and connecting them to the same Collector or by reducing instrumentation to resolve this problem.