As you use argus for some time, and add more and more things to be monitored, it is natural to wonder how well argus can handle the number of things you are throwing at it, or whether it is time to upgrade to a faster server.
As you monitor more and more, argus will use more memory and more cpu. Standard tools such as 'ps' and 'top' are useful for this. But you're already running the most advanced monitoring system in the world, why not have argus monitor itself?
Argus provides 2 interfaces to various bits of internal performance data:
Running the command argusctl status will display information about the running argus:
ARGUS/2.0 200 OK
status: running
version: 3.2
objects: 312
notifies: 294
services: 198
uptime: 0:28:40
idle: 92.47% 95.28% 95.44%
monrate: 12.77 10.21 10.40 per second
Most interesting are the percent idle (the above argus is doing very little work and quite idle), and the monrate, the number of tests argus is doing per second. These are both given as 1, 5, and 15 minute averages.
Argus also exports various data to itself as a Service, so you can do testing and graphing. Some useful examples:
Group "Myself" {
graph: yes
Service Self/idle {
title: Percent Idle
calc: ave-rate
scale: 0.01
# let someone know when it is time to upgrade h/w
minvalue: 20
messagedn: time to buy faster server
}
Service Self/tested {
title: Monitoring Rate
ylabel: tests per second
calc: ave-rate
}
Service Prog {
# how much memory is argus using?
# your ps may be different
command: ps -p $ARGUS_PID -o vsz | tail -1
uname: VSZ
title: Memory Use
ylabel: kBytes
}
}