AgileLoad Video Center

Using Distributed Monitors (Agent Based Monitoring) with Agile Load

A performance testing without monitoring leaves you half blind and unable to diagnose performance problems at the infrastructure level. Monitoring is vital to be able to make recommendations following a load test so here we address the need to monitor servers and infrastructure when we do not have access to them via a direct network connection. AgileLoad uses other AgileLoad installations to enable it to get around firewalls. AgileLoad tunnels monitoring data through the network or internet from the target location to the testers location.

Introduction of Agent-Based Monitoring

If you are watching this video, you probably got some monitoring challenges and that is probably because you go firewalls between you and your target host. So the way we got around that with AgileLoad is to introduce Agent-Based Monitoring, which enables you to tunnel monitoring information across the network or across the internet so that you don’t always use things like monitoring windows machines for example.

What you will need is a remote machine to monitor of course; admin access because you are going to need to install AgileLoad on to that remote machine. Now, the remote machine could be the server target itself if you want to put the AgileLoad Agent on there, it is very lightweight. Alternatively, it could be a machine sitting in the same LAN as the server that you want to monitor. So installing AgileLoad on it, you can just use the injector only setup, which is light still on this remote machine. I would probably recommend installing the full setup; simply because if you have some issues that you need to troubleshoot, it is better to have 2 AgileLoad instances, one on the target machine and of course the one that you are using on your desktop. Now between you and the target machine, there will probably be some firewall, which is why you are probably needing to do this in the first place so you need to open up port 15140 on any of the firewalls between any of the machines, so the firewall protecting your desktop and the firewall protecting the target data center. If you got any network address translation, then you need to setup port forwarding as well on your firewall.

Here is our application diagram. We got our database back here, application server and web server; we have seen this before in some of the other videos, and we got AgileLoad Center. Typically, AgileLoad Center would be controlling local injectors or collectors, which could even be on the same machine or on machines in the same LAN as AgileLoad. In this case, we are going to place an AgileLoad collector remotely, potentially on another LAN in which case there might be some complex networks in between host and that machine.

What we are going to need to make this work is the external IP address of the AgileLoad collector and the internal IP address, and we are going to go through that in the video just now.

Heading on over to our AgileLoad Test Center Machine, we are going to launch remote desktop connection to our target. This is the machine that we are going to use to monitoring, it might in fact be the server itself. Connecting up to that and now we got the desktop there, the remote desktop. I just got in to the test tray. AgileLoad Daemon is started. Right clicking and then choosing configure. You can see that we got the list of addressee. Internal address, this is a custom address; and the NAT is the external address, so the public IP address in this case because it is synonymous to an EZ2 server that we are using.

Add a remote windows performance monitor

Back at the test center machine or your desktop and looking in the repository, we are going to create a windows collector and then specify the username and password and so on that we are going to need to get permission to get the performance statistics. Now the host name, it is a local host. Now we are not using this machine that we are looking at now, we are using the machine that we just look at in the remote desktop and that is because we are going to send this template across to that remote agent to do the monitoring. I am not going to click test connection here because I can’t see that machine from here that is why I need my external agent. So I save it, I close it and I am going to go down to the job section and create a new job.

I will call this remote windows monitor. Double click and open it up. I cancel the box that pops up asking me to add scripts because we are not running a load test at this point, and I drag and drop in my remote server 1 windows monitor into the collector section. I am going to give it a friendly name, it is the operating system, so that seems like a good name to give it; and I need to target about the injector I am using, so it is the remote injector not this injector running here.

That must be started and configured in a similar way with internal and external IP addresses, but it is actually this injector. In fact the IP address is the same IP address we got from Google earlier on. So I populate that; and once we have done that, I am ready to run my job. So clicking play, it asked me to save it, so I confirm, yes. It checks the configurations and starts the job. It opens this HTTP view window, so we will close that because we are not doing anything with HTTP right now. This is for doing a load test, and we are going to shift across to the monitoring tab here, and we can see our windows folder is now ready for us to take a look at. So we double click on overview and we can see CPU, memory, and so on. There is nothing in there immediately because it posts every 30 seconds and then I am just showing you now through some of the tabs we got relating to the technology that we are monitoring and really the anomaly detector is something that is going to help you make sense of that.

Add a .net performance collector

The next thing I want to do is add another job on the fly, a .net collector. So it uses the same mechanism. We still have the same issues getting information across internets. So just give it that a name, in the same way that I did with the windows collector, double clicking and opening up. I gave it the host name, which again is local host or the internal IP address using the remote machine and I gave it the access credential. Again, I am not clicking test connection. I am just going to save this. Once I finished, I dragged and dropped it into my monitoring job. I am going to give it another friendly name, application server and start it. It then starts the job and then if we click across to the monitoring tab, we can now see an additional folder for .net. Double click on that, we can then get information relating to health of the .net processes running on our remote server. If I just drag down up a little bit, you should be able to see some graphs come through once it has done its firsts couple of posts. So that is it. We can stop them there if you want or stop the job and confirm that we are going to stop it and it pulls the results back from the remote machine and then the monitoring tab goes empty. We move across to the results tab and we can see our monitoring session is then stalled. So of course you would run this a lot longer and of course in parallel with a load test, and then these results, I mentioned before the anomaly detector, there are some videos on the anomaly detector, this can help you find bottlenecks once you finished your load test.

So the last thing that I want to show you is the Daemon that we got setup on here, which I am going to right click on and choose configure, and you will see we have the internal IP address of this machine and then the external IP address. Now, I need to change this down again because I used a dynamic IP address on this machine.

Remote monitoring Check List

AgileLoad on Remote Machine

Can be actual server or a machine on the same LAN as the target server you wish to monitor

Daemon must be running (green gazelle) -

Daemon must be configured with internal and external / public IP address

AgileLoad on your machine (TestCenter)

Daemon must be running (green gazelle)

Daemon must be configured with internal and external / public IP address

Collector / Monitor profile must specify ‘localhost’ or ‘127.0.0.1’ or the INTERNAL IP address of the machine that is to be monitored

Firewalls / routers

All firewalls must allow traffic through port 15140 (or if not using the default settings the port that you have configured).

If using network address translation (NAT) then firewalls must be configured to forward external traffic arriving on port 15140 to port 15140 on the internal address of the AgileLoad agent