Today’s network-borne applications are built upon increasingly complex architectures. The applications by necessity have multiple components that together provide services to the end user.

These applications run on server platforms that may be operating on virtual-machine hypervisors, which in turn store data in storage systems that are interconnected by increasingly swift and complex multi-path network systems.

Joining up these dots in a clear, concise and easily understood manner is the most complete way to assess the performance of key applications and the underlying network as a whole.

Traditionally one would either capture packets from all over the network and infer the performance of the application based on the network and protocols carried upon it. With deep packet inspection, performance information can be gained by this approach; however there are many possible blind spots. For example the performance of the hosting platform(s) cannot be determined solely from examining the network. Similarly one might use an OSS tool to gather performance information from the server, such as the CPU load and memory utilisation, the network interface utilisation and other
raw-counter-based statistics.

From this you could deduce the performance of the application. You may even be able to extrapolate this data to predict future loads. The problem with these approaches is that you are relying on deduction or inference so you never really know with absolute certainty how the application is performing as well as being time consuming in correlating data from the two performance management systems, and finally, all of the collected information gives you an average figure based on
poll-interval, typically far from the use-case your users have in mind.

So how does AppInternals solve this problem?

AppInternals is Riverbed’s OSS tools focused around application delivery and user experience. It provides true application performance data and correlates this with network and platform information. AppInternals is able to not only gather information about the server which it is monitoring, but also measures the performance of the application itself, providing metrics for any Java or .NET applications. It also monitors database and web-servers providing metrics on processing times. Software Engineers can then tune the code appropriately.

Most importantly it provides complete traces for any transaction. This allows engineers to follow transactions from the end users machine through the web-servers and any application and database servers.

It then becomes normal practice when an end user contacts support with an issue, for the support team to find all of the user’s interactions with the networked service, and subsequently quickly identify where in the chain any errors were encountered. This may be items such as HTTP errors, database errors, and errors in the code. The Riverbed Central dashboards present all the network and application monitoring data in one place, connecting the network, the platform and the applications, minimising downtime, and optimising delivery of services.