Excellent!  It sounds like EventMachine may do exactly what I'm needing. 
That's great news.  Looks like I'll need to dig into it.  Thanks!

Yes, I will be monitoring the most common network services (HHTP/S, 
SMTP, POP3, DNS, IMAP, etc.) on remote systems.  I'll also want to track 
things like connect times and transaction response times  I haven't 
started coding the monitor classes yet, as I'm just now trying to 
formulate a design.  It sounds like you may have done some of the work 
for me!  If I understand it correctly, I should be able to build my 
monitor classes implementing your existing protocol handlers and create 
my own protocol handlers for those that don't exist.

To your latency question:  I hope I understand your question correctly. 
I think most of the latency will come from the network.  For example, if 
there are four monitors that need to be run in the current 60 second 
window, then I need to run them simultaneously.  If they are run in 
serial then monitors later in the queue could get stuck behind a long 
running monitor.  The polling server (the system running the monitors) 
can't get stuck on a single monitor for an extended period of time since 
that would cause all work to stop.  How would EventMachine handle this 
without running each active monitor in it's own worker thread?

One the issue of scaling: I would like to use a shared queue that would 
allow additional polling servers to be added for scaling out.  Any itial 
thoughts on how EventMachine can fit into this model?

I hope I'm not getting in over my head!  It seems pretty complex for 
such a simple mind. ;)

Thanks for all the help! - Don

-- 
Posted via http://www.ruby-forum.com/.