Today, information technology professionals often encounter a myriad of different problems and challenges during the operation of a computer network or network of networks. For example, these individual must often cope with network device failures and/or software application errors brought about by such things as configuration errors or other causes. Unfortunately for these individuals tracking down the sources of such problems can be tedious and difficult, in part because conventional technologies and methodologies for network troubleshooting tend to focus only on the network devices themselves, rather than on applications making use of the networks. That is, conventional network monitoring and other technologies are focused only on monitoring the actual network devices, such as routers, switches, etc., and not on applications making use of these devices.
Because of such shortcomings, traditional network monitoring methods provide little or no assistance when it comes to evaluating how problems with network devices or applications actually impact a user's experience. That is, the limited visibility offered by current network monitoring techniques, focused on a limited set of network-only metrics, translates into an inability for a troubleshooter to definitively resolve whether a poor user experience is due to problems in the network or in the network application.
Compounding this problem is the fact that individual network devices may assume different roles at various times and under different usage scenarios. For example, nodes such as employees' personal computers, email servers, web application servers, database servers, and file servers may all, at various times, act like clients (typically the node that initiates a connection) or servers (typically the node that responds to a request) in typical IP-based inter-nodal communications depending on the application(s) they are running. For example, a personal computer node can act as a client, by browsing and downloading web pages, while at the same time it can act as a server, by sending e-mail attachments. A web application server can act as a client by requesting information from a database server, while it can also act as a server by responding to application requests from personal computers that connect with it. Furthermore, while nodes are acting as both a server and client, they are often members of one or more logical groups.
Traditional network monitoring solutions group network traffic according to whether a network node is a “client” or a “server” but often fail to appreciate the dynamic nature of these labels. That is, the traditional device-centric monitoring methods do not distinguish between, for example, a personal computer acting as a client for some applications and a server for others and so the results provided by those methods are less useful than they otherwise might be. Moreover, these processes tend to be manually intensive and, hence, rapidly become unmanageable in the face of network reconfigurations and scaling. Therefore, new methods of network application performance monitoring are required.